pytorch cpu版本安装_小白学pytorch 01-安装C++/Python版本pytorch

这些日子,借着新版本 opencv4.0库,把以往工程学的图像处理知识都温习一遍;然后花了2个月左右写了一个“可视化算法平台”,将大部分的算法,都集成到了 平台里面。

最近决定好好整理、并认真学习一下 pytorch框架,

对于深度学习,我目前只是用 Yolov3和FasterRCNN等模型库,但是还没有去深入学习一个框架。最近正好有时间和心情,我计划三步走:

先熟练pytorch库,

然后学习构建深度学习模型,

最后就是优化现有的模型。

首先从 官网下载 pytorch.

f029434e544943918fd2c52e81f66643

pytorch C++版本

https://download.pytorch.org/libtorch/cu100/libtorch-win-shared-with-deps-latest.zip
567085378e134c92a28f42e4c3a81e99

pytorch python版本

pip3 install https://download.pytorch.org/whl/cu100/torch-1.1.0-cp37-cp37m-win_amd64.whlpip3 install https://download.pytorch.org/whl/cu100/torchvision-0.3.0-cp37-cp37m-win_amd64.whl

我比较喜欢用 C++写代码,毕竟写了10年了,容易用在高性能上。虽然写了3年python,但仍然热爱 C/C++,因为我可以看到底层代码。我正好可以用 python 和 C++对照着 翻译代码。

我编译pytorch的 demo,发现 visual studio 2015 有一堆bug. 该死的 C++17语法,导致很多代码无法编译。没办法,安装 visual studio 2017。仍然还有一堆bug.

我解决了一些重要的bug:

71410e8c255047dc986bcb7cb75a7d99

std不明确的bug

我直接用

::std:: 替换 std:: 解决

还有就是 using 语句 导致的一些 异常,可以用等价的 typedef语法解决。

……

然后就是学习 tutorial.

第一个demo,官网

https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py

import torchx = torch.empty(5, 3) #没初始化的 张量print(x)x = torch.rand(5, 3) #随机初始化的 张量print(x)x = torch.zeros(5, 3, dtype=torch.long) #初始化0的 张量print(x)x = torch.tensor([5.5, 3]) #直接从数据初始化张量print(x)x = x.new_ones(5, 3, dtype=torch.double) #复制x属性,初始化张量print(x)x = torch.randn_like(x, dtype=torch.float) # override dtypey = torch.rand(5, 3)print(x + y) #加法print(torch.add(x, y)) #第二种加法result = torch.empty(5, 3) #第三种加法torch.add(x, y, out=result)print(result)y.add_(x) #第四种, 就地加法,修改 yprint(y)print(x[:, 1]) #切片语法……

翻译成 C++,

 vector sizes; at::TensorOptions opts; at::Tensor t = torch::ones( at::IntArrayRef(sizes) ,opts);其他创建方法类似

C++支持的 创建方法:

ef9e3d77d3ca441d8e3cba9b3e44f573

张量创建方法

74ed11ec10e846659c12b4d0e14f7b05

张量操作算法

然后我用 可视化平台编译成几个插件,测试一下:

e576007b7e6247a1a7520b9463d32ac7

测试 rand 张量

2324b5d651cd478692d62c30a7177fc6

测试 算术 add

其中,我遇到一个坑,Qt 库对 slots 冲突:

2227e9f5774348aa96994390f1c4c415

Qt库冲突

我用很简单方法解决,就是 把 业务逻辑、算法全部写在 库里,解决冲突问题。

由于 对 pytorch不是很熟,凭借自己这些年对C++的理解和软件工程能力,我将好好学习、整理,把torch的功能用可视化平台,边学边集成。

万事开头难,迈出学习pytorch的第一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值