pytorch学习笔记(二) 其他机制
来源:互联网 发布:python 3.6.2 和2.7 编辑:程序博客网 时间:2024/06/03 10:33
broadcast机制
pytroch中的tensor和numpy中的ndarray一样是支持broadcast的。支持原则是:
1.两个tensor都至少有一维
2.从最后一维开始,要么其中一个tensor的维数等于1,要么两个维数相同。
CUDA语法
pytorch可以通过一行代码实现数据在GPU和CPU之间的切换,并且在网络训练过程中,你可以随时将数据从GPU中拿出来进行操作,包括打印之类的,比tf要方便一些。例如:
x = torch.cuda.FloatTensor(1)# x.get_device() == 0y = torch.FloatTensor(1).cuda()# y.get_device() == 0with torch.cuda.device(1): # allocates a tensor on GPU 1 a = torch.cuda.FloatTensor(1) # transfers a tensor from CPU to GPU 1 b = torch.FloatTensor(1).cuda() # a.get_device() == b.get_device() == 1 c = a + b # c.get_device() == 1 z = x + y # z.get_device() == 0 # even within a context, you can give a GPU id to the .cuda call d = torch.randn(2).cuda(2) # d.get_device() == 2pytoch可以允许用户指定特定的GPU来创建tensor,一旦创建就只能在当前设备下使用,跨GPU的操作目前是不允许的。
在多GPU环境中,充分利用GPU性能可以使用nn.DataParallel来将大的batch切成几份,分别送到不同GPU中的模型中进行训练,若你的batch只有1,却仍然要使用多GPU的话,目前来说是没有办法将一个模型运行在几个GPU上的。
序列化语法
pytorch中存储模型也非常简单。有两种方法:
1.只存储模型参数。这种方法得到的文件更小,再随后导入模型时需要使用与之前相同的模型参数来构建网络然后初始化参数。
torch.save(the_model.state_dict(), PATH)
2.存储全部模型,包括计算图结构。the_model = TheModelClass(*args, **kwargs)the_model.load_state_dict(torch.load(PATH))
torch.save(the_model, PATH)
the_model = torch.load(PATH)
阅读全文
0 0
- pytorch学习笔记(二) 其他机制
- Pytorch学习笔记(二)
- pytorch学习笔记(二):gradient
- pytorch学习笔记(二):gradient
- pytorch学习笔记(二):gradient
- pytorch学习笔记(二):gradient
- pytorch 学习笔记(一)
- pytorch 学习笔记(一)
- pytorch 学习笔记(一)
- pytorch学习笔记
- pytorch 学习笔记(一)
- Pytorch学习笔记
- pytorch学习笔记
- PyTorch 学习笔记
- 莫烦PyTorch学习笔记(二)——回归
- pytorch学习笔记(1)--pytorch张量
- Pytorch学习笔记(一)
- Pytorch学习笔记(三)
- 高级命令行文本处理cut,sed,awk
- Parted分区
- JS插件(1)--- autocomplete 异步加载下拉数据
- Codeforces Round #442(Div.2) B.Nikita and string(线性DP)
- 深度学习与神经网络-吴恩达(Part2Week3)-超参数调试、Batch正则化和程序框架
- pytorch学习笔记(二) 其他机制
- 欧拉函数 codeforces 776E
- 第八周项目3 对矩阵压缩存储的实现与应用(2)
- TensorFlow-3-Basic Models
- FCC算法:四、Find the Longest Word in a String -- 找出最长单词
- Python----运算符, 切片
- Kafka 实现的几个技术细节讨论
- IEEE 802.3av 10Gbits EPON 中文翻译(二)
- 存储过程 函数 触发器的区别