最近大佬们重新对动手学习深度学习进行修改,加入了pytorch实现的方式,今天发布了最新版,正在完善中,将自己今天的学习笔记记录在此,由于全英文的内容,自己翻译可能不太对,请多多指教!
#!H:\pytorch
# -*- coding:utf-8 -*-
#Author: Tangzhao
#content:pytorch
# 数据操作
# 导入pytorch
import torch
# 多维数组代表多维的数值,一维数组代表一个矢量,二维数组表示一个矩阵,超过两位的数组我们称为张量(tensors)
# 首先我们创建一个以0开头的行向量,包括12个元素,默认的数据类型为float,一个新的数组存储在主存中,并基于cpu的计算
x = torch.arange(12) # arange(x) 创建一个x以内的张量
print(x) # tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
# 获取张量的形状可以用x.shape
print(x.shape) # torch.Size([12])
# total number of elements in an ndarray
print(x.size())
# 改变张量的形状
x1 = x.reshape((3,4)) # 括号内的数据为需要得到的数据形状,第二维可以不用写,用-1表示,它会默认随着第一维的变化而变化
print(x1)
"""
tensor([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
"""
x2 = x.reshape((3,-1))
print(x2)
"""
tensor([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
"""
# 空方法获取一块内存并返回一个矩阵,而不必费心更改其任何项的值。这非常高效,但我们必须小心,因为条目可能取任意值,包括非常大的值!
x3 = torch.empty(2,3) # 得到的是一个任意的值,可能为0,也可能为很大的数
print(x3)
"""
tensor([[0., 0., 0.],
[0., 0., 0.]])
"""
# want our matrices initialized either with zeros, ones, some other constant
x4 = torch.zeros(2,3,4)
print(x4)
"""
tensor([[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]],
[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])
"""
x5