IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> [libtorch]common api -> 正文阅读

[人工智能][libtorch]common api

目录

tensor::Tensor

init tensor

tensor attribute

数据类型转换

基本操作???????

tensor::Tensor

init tensor

torch::Tensor b = torch::zeros({2,3});  // 2x3的全0张量
torch::Tensor b = torch::ones({2,3});   // 2x3的全1张量
torch::Tensor b = torch::eye(5);        // 5x5的张量,对角线为1,其余为0
torch::Tensor b = torch::full({2,3},-1);    // 2x3的全-1张量
torch::Tensor a = torch::full_like(b,2.5);  // b_shape的全2.5张量,数据类型同b
torch::Tensor a = torch::full_like(b.toType(kFloat),2.5); // b_shape的全2.5张量,dtype改变
torch::Tensor b = torch::tensor({1,2,3,4,5,6});   // 1-D constant张量
torch::Tensor b = torch::rand({2,3});   // 2x3的张量,数据符合均匀分布的随机数[0,1)之间
torch::Tensor b = torch::randn({2,3});  // 2x3的张量,数据符合标准正态分布,均值为0,方差为1
torch::Tensor b = torch::randint(0, 10, {2,3});  // 2x3的tensor,数据范围[0,10)之间的整数

//用数组初始化
int array[4] = {1,2,3,4,5,6};
auto b = torch::from_blob(array, {2,3}, torch::kInt);

//用vector迭代器初始化
std::vector<float> array = {1,2,3,4,5,6};
auto b = torch::from_blob(array.data(), {2,6}, torch::kFloat);

//用opencv::Mat初始化
cv2::Mat a = Mat::zeros(5,5,CV_32FC1);  // 5x5 全0
auto b = torch::from_blob(a.data, {1,1,5,5}, torch::kFloat);

//PS:torch::from_blob是浅拷贝,输出的tensor与传入的指针共享内存;
// 如果需要开辟新内存,调用clone函数来实现深拷贝
int array[4] = {1,2,3,4,5,6};
auto b = torch::from_blob(array, {2,3}, torch::kInt).clone();


tensor attribute

torch::Tensor b = torch::rand({2,3});

cout << b.sizes() << endl; ? //Tensor维度:[2,3]
cout << b.print() << endl; ? //Tensor维度+数据类型: [CPUFLoatType [2,3]]
cout << b << endl; ? ? ? ? ? //tensor内容
cout << b.is_cuda() << endl; //CPU or GPU:0
cout << a.dtype() << endl;   //数据类型:CPUFLoatType 
cout << a.ndimension() << endl;  //维度:2
cout << a.nbytes() << endl;    // 数据字节数:4*6=24
cout << a.sizes()[0] << endl;  // axis=0形状:2
cout << a.sizes()[1] << endl;  // axis=1形状:3

数据类型转换

// tensor convert to scaler
torch::Tensor a = torch::tensor({1,2,3,4});
int b = a[0].item<int>();

基本操作

// concat:张量拼接
torch::Tensor a1 = torch::rand({2,3});
torch::Tensor a2 = torch::rand({2,4});
torch::Tensor b = torch::cat({a1,a2}, 1);  //在axis=1拼接,outshape=2x7



// index:索引操作

//linespace(start,end,length):取值范围在[start,end]之间取length个数
torch::Tensor b = torch::linspace(1,75,75).reshape({3,5,5});
auto out = b.index({2, "..."});     // b[2][:][:]->shape=(5,5)
auto out = b.index({2, 3, "..."});  // b[2][3][:]->shape=(5,)
auto out = b.index({"...", 2, 3});  // b[:][2][3]->shape=(3,)
auto out = b.index({"...", 3});     // b[:][:][3]->shape=(3,5)
auto out = b.index({0, 0, 0});      // b[0][0][0]->scaler

//通过索引赋值
b.index_put_({0,0,0}, -1);
b.index_put_({"...", 1}, -2);


// at::slice(input,dim,start,end,step):张量切片,在axis轴上执行
torch::Tensor a = torch::linspace(1,75,75).reshape({3,5,5});
auto b = aten::slice(a, 2, 1, -1, 2);    //在axis=2轴[1,5)slice,outshape=(3,5,2)

//at::equal(tensor1,tensor2)
bool judge = at::equal(a, b);

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:35:19  更:2022-03-22 20:38:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 13:50:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码