PyTorch学习笔记及问题处理
1、torch.nn.state_dict():
返回一个字典,保存着module的所有状态(state)。
parameters和persistent_buffers都会包含在字典中,字典的key就是parameter和buffer的names。
例子:
import torch
from torch.autograd import Variable
import torch.nn as nn class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.conv2 = nn.Linear(1, 2)
self.vari = Variable(torch.rand([1]))
self.par = nn.Parameter(torch.rand([1]))
self.register_buffer("buffer", torch.randn([2,3])) model = Model()
print(model.state_dict().keys())
odict_keys(['par', 'buffer', 'conv2.weight', 'conv2.bias'])
字典迭代形式{<class 'str'>:<class 'torch.Tensor'>, ... }
2、@与*的区别
@表示用tensor进行矩阵相乘;
*表示用tensor进行矩阵逐元素相乘;
3、沿着指定的维度重复tensor

4、交叉熵
  CrossEntropyLoss()是softmax和负对数损失的结合;
  如果用 nn.BCELoss()计算二进制交叉熵, 需要先将logit经sigmoid()层激活再送入nn.BCELoss()计算损失。
5、pytorch: can't optimize a non-leaf Tensor
需要先把Tensor放入到GPU中,然后再设置Tensor.requires_grad=True。
6. 类别标签转换one-hot编码
# one_hot = torch.zeros(batch_size, class_num).scatter_(1, label.long().view(batch_size, 1), 1.)
one_hot = torch.nn.functional.one_hot(label, class_num)
7. RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation
简单来说,需要将x += 1 这种改成 x = x+1;
原因:x+=1的值会直接在原值上面做更新,是inplace=True的情况,而后一种是先让x+1然后赋值给x,属于inplace=False。
8. Pytorch: Trying to backward through the graph a second time, but the buffers have already been freed
loss.backward()改成loss.backward(retain_graph=True)
PyTorch学习笔记及问题处理的更多相关文章
- Pytorch学习笔记(二)---- 神经网络搭建
		
记录如何用Pytorch搭建LeNet-5,大体步骤包括:网络的搭建->前向传播->定义Loss和Optimizer->训练 # -*- coding: utf-8 -*- # Al ...
 - Pytorch学习笔记(一)---- 基础语法
		
书上内容太多太杂,看完容易忘记,特此记录方便日后查看,所有基础语法以代码形式呈现,代码和注释均来源与书本和案例的整理. # -*- coding: utf-8 -*- # All codes and ...
 - 【pytorch】pytorch学习笔记(一)
		
原文地址:https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html 什么是pytorch? pytorch是一个基于p ...
 - 【深度学习】Pytorch 学习笔记
		
目录 Pytorch Leture 05: Linear Rregression in the Pytorch Way Logistic Regression 逻辑回归 - 二分类 Lecture07 ...
 - Pytorch学习笔记(一)——简介
		
一.Tensor Tensor是Pytorch中重要的数据结构,可以认为是一个高维数组.Tensor可以是一个标量.一维数组(向量).二维数组(矩阵)或者高维数组等.Tensor和numpy的ndar ...
 - [PyTorch 学习笔记] 1.3 张量操作与线性回归
		
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/linear_regression.py 张量的操作 拼 ...
 - [PyTorch 学习笔记] 1.1 PyTorch 简介与安装
		
PyTorch 的诞生 2017 年 1 月,FAIR(Facebook AI Research)发布了 PyTorch.PyTorch 是在 Torch 基础上用 python 语言重新打造的一款深 ...
 - [PyTorch 学习笔记] 1.4 计算图与动态图机制
		
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/computational_graph.py 计算图 深 ...
 - [PyTorch 学习笔记] 2.2 图片预处理 transforms 模块机制
		
PyTorch 的数据增强 我们在安装PyTorch时,还安装了torchvision,这是一个计算机视觉工具包.有 3 个主要的模块: torchvision.transforms: 里面包括常用的 ...
 - [PyTorch 学习笔记] 3.1 模型创建步骤与 nn.Module
		
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson3/module_containers.py 这篇文章来看下 ...
 
随机推荐
- python Scrapy 从零开始学习笔记(二)
			
在之前的文章中我们简单了解了一下Scrapy 框架和安装及目录的介绍,本章我们将根据 scrapy 框架实现博客园首页博客的爬取及数据处理. 我们先在自定义的目录中通过命令行来构建一个 scrapy ...
 - 对于Javaweb初学者的一些坑。#Javaweb
			
1.在配置好Tomcat之后 ,编译阶段发现报错 这种对于我个人来说一般有两种情况: ①在编写代码时(比如servlet)发现爆红,一般是maven的依赖没有导入,这个时候在xml文件中导入需要的包的 ...
 - goroutine调度源码阅读笔记
			
以下为本人阅读goroutine调度源码随手记的笔记,现在还是一个个知识点的形式,暂时还没整理,先发到这里,一点点更新: 1). runq [256]guintptr P 的runable队列最大 ...
 - PHP mt_srand() 函数
			
实例 播种随机数生成器: <?phpmt_srand(mktime());echo(mt_rand());?>高佣联盟 www.cgewang.com 定义和用法 mt_srand() 函 ...
 - IdentityServer4 (1) 客户端授权模式(Client Credentials)
			
写在前面 1.源码(.Net Core 2.2) git地址:https://github.com/yizhaoxian/CoreIdentityServer4Demo.git 2.相关章节 2.1. ...
 - Docker初探之Windows篇
			
一.什么是Docker? Docker是一个开源的应用容器引擎,可以轻松地为任何应用创建一个轻量级.可移植.自给自足的容器.开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括虚拟机和其他平 ...
 - CI4框架应用六 - 控制器应用
			
这节我们来分析一下控制器的应用,我们看到系统提供的控制器都是继承自一个BaseController,我们来分析一下这个BaseController的作用 use CodeIgniter\Control ...
 - @Repository注解和@Mapper注解区别
			
@Reponsitory注解 @Reponsitory使用后,在启动类上需要添加@MapperScan("xxx.xxx.xxx.mapper")注解 @Mapper注解 @Map ...
 - Bystack跨链技术源码解读
			
Bystack是由比原链团队提出的一主多侧链架构的BaaS平台.其将区块链应用分为三层架构:底层账本层,侧链扩展层,业务适配层.底层账本层为Layer1,即为目前比较成熟的采用POW共识的Bytom公 ...
 - JavaFX桌面应用开发系列文章
			
~ JavaFX桌面应用开发系列文章汇总篇 ~ JavaFX桌面应用开发-HelloWorld JavaFX布局神器-SceneBuilder JavaFX让UI更美观-CSS样式 JavaFX桌面应 ...