这里要实现 Meta-SR 中的元放大部分中的多维操作,比如:torch.cat,torch.arange,torch.matmul,torch.Transpose,Tensor.view,Tensor.permute 等。
matmul 是多维矩阵乘法,和二维乘法差不多,只不过是多乘几次。
permute比较复杂,可以转化为多个二维交换 Transpose。其它的哪些就比较简单了。
定义多维张量:
#define MAX维度 6
class 张量
{
bool new0;// 由new 创建的
public:
int num; //维数
int * value; //各维大小
float * data; //连续数据
//构造函数
张量(int inum);
张量(int inum,int inew0);
~张量();
int size();//总大小
int size(int n);//某维大小
bool 需用delete();//new
};
int 张量::size()
{
if(this->value==NULL)
return -1;
int size=1;//总大小
for(int i=0;i<this->num;i++)
{
size *=this->value[i];
}
return size;
}
int 张量::size(int n)
{
if(this->value==NULL)
return -1;
if(n>=this->num)
return -1;
return this->value[n];
}
张量::张量(int inum): num(inum)
{
value=NULL;
data=NULL;
new0=false;
}
张量::张量(int inum,int inew): num(inum)//动态创建调用
{
value=NULL;
data=NULL;
new0=true;
}
张量::~张量()
{
if(v

本文介绍了在C++中实现Meta-SR元放大部分的多维操作,如torch.cat、torch.arange、torch.matmul、torch.Transpose和Tensor.view、Tensor.permute等。特别是重点讨论了permute的复杂性和如何转化为二维transpose,并展示了不同超分辨率重建的效果图。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



