关于pytorch我就不多说了,它也是著名的深度学习框架。网上的风评也是倾向于pytorch的(相比于tensorflow),初学的haul编译器还是推荐pycharm或者jupyter。
首先来了解一下pytorch的基本单位Tensor。
from __future__ import print_function
import torch
x = torch.Tensor(5, 3)
print(x)
会生成一个5X3的矩阵,如果没有赋值的话,矩阵还是有数值的,不是空的。
x = torch.rand(5, 3)
print(x)
生成以个5X3的随机矩阵
print(x.size())
返回矩阵的数据类型,尺寸。和numpy的用法很像
基本操作
y = torch.rand(5, 3)
#第一种加法
print(x + y)
#利用add函数的加法
print(torch.add(x, y))
其实来个函数达到的效果是一样的。
result = torch.Tensor(5, 3)
torch.add(x, y, out=result)
print(result)
还可以指定输出到某个向量。
y.add_(x)
print(y)
此时的add函数会永久改变y的值,pytorch的很多函数都是这样,加一个”_”就会导致变量的值永久改变。
x= torch.randn(4, 4)
y = x.view(16)
z = x.view(2, 8)
print(x.size(), y.size(), z.size())
pytorch的view函数效果和numpy的reshape函数效果一样,改变矩阵的尺寸。
import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)
这里的from_numpy函数可以把numpy数据类型转化为tensor数据类型,对我来说这个函数是我觉得用处很大的。