目录
- [1. tensor](#1. tensor)
- [2. 数据类型](#2. 数据类型)
- [3. 数据类型的创建和使用](#3. 数据类型的创建和使用)
-
- [3.1 数据类型check](#3.1 数据类型check)
- [3.2 Dimension为0的tensor](#3.2 Dimension为0的tensor)
- [3.2 Dimension为1的tensor](#3.2 Dimension为1的tensor)
- [3.3 Dimension为2的tensor](#3.3 Dimension为2的tensor)
- [3.4 Dimension为3的tensor](#3.4 Dimension为3的tensor)
- [3.5 Dimension为4的tensor](#3.5 Dimension为4的tensor)
1. tensor
下图为python数据类型与pytorch的对应关系
在pytorch中是没有string类型的,如果要使用string类型,需要借助两种手段:
- one-hot
▪ [0, 1, 0, 0, ...] - Embedding
Word2vec
glove
详见:万字长文经典-再论Embedding 技术
2. 数据类型
从图中可以看出pytorch数据类型是分cpu和GPU的,gpu是在torch后加一个cuda,他们是完全不同的数据
这里经常使用的数据类型是FloatTensor和ByteTensor
3. 数据类型的创建和使用
3.1 数据类型check
torch.randn是生成随机初始化的2行3列的tensor数据
python
a = torch.randn(2, 3)
print(a)
tensor([[ 0.4406, 0.4335, -1.6466],
[-0.1927, 0.4834, 1.0126]])
3.2 Dimension为0的tensor
Dimension为0的tensor多用来表示loss的值
.shape是个成员,返回torch.Size([])表示0维,.size()是成员函数返回结果与.shape一样
3.2 Dimension为1的tensor
一维tensor多用于bias和线性数据输入,如下图:
3.3 Dimension为2的tensor
当线性输入,一次输入多张图片时使用2维tensor,比如:使用minist数据集做手写数字识别,表示为[n, 784] n表示一次输入几张图片。
3.4 Dimension为3的tensor
3维多用于RNN,NLP文字处理,[10,20,100] 表示20个句子每个句子10个单词,单词用100向量表示。
3.5 Dimension为4的tensor
4维多用于CNN卷积循环神经网络,[b,c,h,w]分别表示为[batch, channel, height, weight]