《pytorch handle book》实践1

1. 安装pytorch  https://blog.csdn.net/maidabu/article/details/81606536

我电脑配置:linux4.4.0-142-generic, gcc4.8.4, ubuntu14.04.1; 安了geforce GTX970,驱动430.14, cuda8.0.61(与nvidai-smi获得的cuda version 10.2不一致,why?), cudnn6.0.21;装了anaconda,配置了环境python27==python2.7,并设置pip清华源,pip install numpy,scipy...

在1.2 pytorch环境搭建这一节中看到:在1.2版本以后,pytorch只支持cuda 9.2以上了,所以需要对cuda进行升级,目前测试大部分显卡都可以用。但是,我想将我的cuda版本升级,https://blog.csdn.net/zywvvd/article/details/100121899https://blog.csdn.net/dudu815110/article/details/87167518 发现最新版pytorch1.3需要cuda9.2,或10.1,但cuda9 cuda9.2 不支持ubuntu14.04,cuda 10支持14.04.5, 所以我需要重装系统到16.04.5,再安装驱动、cuda10、对应的cudnn等之后的环境配置一系列操作,这样理解对吗?比较麻烦,我就先安装pytorch 0.4版本学习初步的知识。

以下操作在环境python27中进行。

1.1 更新pip

到pip官网https://pip.pypa.io/en/stable/installing/ 按照步骤:

>> curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
>> python get-pip.py

1.2 安装pytorch

直接从链接http://download.pytorch.org/whl/cu80/torch-0.4.1-cp27-cp27mu-linux_x86_64.whl上下载

然后执行 sudo pip install torch-0.4.1-cp27-cp27mu-linux_x86_64.whl

报错:sudo: pip: command not found  参考https://www.cnblogs.com/zhongyehai/p/10683560.html

>> vi ~/.bashrc

添加内容:alias sudo='sudo env PATH=$PATH'

>> source ~/.bashrc

再执行sudo pip install torch-0.4.1-cp27-cp27mu-linux_x86_64.whl,成功安装。

1.3 安装torchvision

sudo pip install torchvision

1.4 测试,打开python  https://blog.csdn.net/weixin_40393064/article/details/78378300

>> import torch

>> import torchvision

没有报错即可。

但按照handle book1.2中的验证:

>>import torch
>>torch.__version__

'1.3.1',这是因为我在安装torchvision时,系统根据torchvision的版本自动卸载并安装了匹配的pytorch版本。不是说cuda版本不支持了1.3以上吗,why?

2. 张量tensors

tensors与Numpy中的ndarrays类似,但pytorch中tensors可用GPU计算。

from __future__ import print_function
import torch

2.1创建张量

(1)创建5*3矩阵,不初始化/随机初始化/0填充:

x = torch.empty/rand/zeros(5, 3)

(2)用现有数据[5.5,3]初始化

x = torch.tensor([5.5, 3])

(3)根据现有的张量创建张量。 这些方法将重用输入张量的属性,例如, dtype,除非设置新的值进行覆盖

x = x.new_ones(5, 3, dtype=torch.double)  
x = torch.randn_like(x, dtype=torch.float) # 覆盖 dtype! # 对象的size 是相同的,只是值和类型发生了变化

(4)使用size方法与Numpy的shape属性返回的相同,张量也支持shape属性

print(x.size())  # torch.Size([5, 3]),``torch.Size`` 返回值是 tuple类型, 所以它支持tuple类型的所有操作.

2.2 操作

以加法为例

(1)

y = torch.rand(5, 3)
print(x + y)

(2)

print(torch.add(x, y))

(3)

result = torch.empty(5, 3)
torch.add(x, y, out=result)

(4)

# adds x to y
y.add_(x) #任何 以``_`` 结尾的操作都会用结果替换原变量. 例如: ``x.copy_(y)``, ``x.t_()``, 都会改变 ``x``.

2.3 索引

使用与NumPy索引方式相同的操作来进行对张量的操作

print(x[:, 1])#输出x第2列元素

2.4 torch.view: 可以改变张量的维度和大小

与Numpy的reshape类似

x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8)  #  size -1 从其他维度推断,4*4/8=2
print(x.size(), y.size(), z.size())
#torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])

2.5 一个元素的张量,使用.item()来得到Python数据类型的数值

x = torch.randn(1)
print(x) #x = torch.randn(1)
print(x)
print(x.item())
print(x.item())

没有保存很生气了

为什么点击undo会把我所有新编辑的东西都去掉,这个编辑器有问题。不想用了。。。

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值