随笔分类 -  pytorch学习

2022.3.8开始学习
摘要:为了方便进行数据的操作,pytorch团队提供了一个torchvision.transforms包,我们可以用transforms进行以下操作: PIL.Image/numpy.ndarray与Tensor的相互转化; 归一化; 对PIL.Image进行裁剪、缩放等操作。 通常,在使用torchvi 阅读全文
posted @ 2022-03-09 15:48 Tomorrow1126 阅读(148) 评论(0) 推荐(0) 编辑
摘要:1.下采样是缩小图像,英文是subsampled或者downsampled;上采样是放大图像,英文是upsampling 2.池化层是当前卷积神经网络中常用组件之一,它最早见于LeNet一文,称之为Subsample。自AlexNet之后采用Pooling命名。池化层是模仿人的视觉系统对数据进行降维 阅读全文
posted @ 2022-03-09 15:23 Tomorrow1126 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-03-09 14:17 Tomorrow1126 阅读(36) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/qq_27825451/article/details/90550890这个链接超级详细! class NeuralNet(nn.Module): pytorch中其实一般没有特别明显的Layer和Module的区别,不管是自定义层、自定义块、自定义模型, 阅读全文
posted @ 2022-03-09 14:04 Tomorrow1126 阅读(163) 评论(0) 推荐(0) 编辑
摘要:Tensor总结 (1)Tensor 和 Numpy都是矩阵,区别是前者可以在GPU上运行,后者只能在CPU上; (2)Tensor和Numpy互相转化很方便,类型也比较兼容 (3)Tensor可以直接通过print显示数据类型,而Numpy不可以 阅读全文
posted @ 2022-03-09 11:42 Tomorrow1126 阅读(822) 评论(0) 推荐(0) 编辑
摘要:一、.to(device) 可以指定CPU 或者GPU device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 单GPU或者CPU model.to(device) #如果是多GPU if torch.cud 阅读全文
posted @ 2022-03-09 11:38 Tomorrow1126 阅读(378) 评论(0) 推荐(0) 编辑
摘要:torch.device代表将torch.Tensor分配到的设备的对象,有cpu和cuda两种,这里的cuda就是gpu,至于为什么不直接用gpu与cpu对应,是因为gpu的编程接口采用的是cuda print(torch.cuda.is_available()) #cuda是否可用; print 阅读全文
posted @ 2022-03-09 11:04 Tomorrow1126 阅读(318) 评论(0) 推荐(0) 编辑
摘要:在pytorch中,tensor有一个requires_grad参数,如果设置为True,则反向传播时,该tensor就会自动求导。tensor的requires_grad的属性默认为False,若一个节点(叶子变量:自己创建的tensor)requires_grad被设置为True,那么所有依赖它 阅读全文
posted @ 2022-03-09 10:52 Tomorrow1126 阅读(92) 评论(0) 推荐(0) 编辑
摘要:correct+=(predicted==labels).sum() 一、Python自带sum() sum(iterable[, start]):iterable——可迭代对象,如:list、tuple、set等;start——固定相加的参数,默认为0。 sum([0, 1, 2]) -- > 3 阅读全文
posted @ 2022-03-09 10:49 Tomorrow1126 阅读(674) 评论(0) 推荐(0) 编辑
摘要:一、_, predicted = torch.max(outputs.data, 1) 那么,这里的 下划线_ 表示什么意思? 首先,torch.max()这个函数返回的是两个值,第一个值是具体的value(我们用下划线_表示),第二个值是value所在的index(也就是predicted)。 那 阅读全文
posted @ 2022-03-09 10:34 Tomorrow1126 阅读(1017) 评论(0) 推荐(0) 编辑
摘要:1.detach():返回一个新的Variable,从当前计算图中分离下来的,但是仍指向原变量的存放位置,不同之处只是requires_grad为false,得到的这个Variable永远不需要计算其梯度,不具有grad。 即使之后重新将它的requires_grad置为true,它也不会具有梯度g 阅读全文
posted @ 2022-03-08 19:02 Tomorrow1126 阅读(583) 评论(0) 推荐(0) 编辑
摘要:https://pytorch123.com/ThirdSection/SaveModel/ 这个链接非常的详细! 1、#保存整个网络 torch.save(net, PATH) # 保存网络中的参数, 速度快,占空间少 torch.save(net.state_dict(),PATH) # #针对 阅读全文
posted @ 2022-03-08 17:57 Tomorrow1126 阅读(1292) 评论(0) 推荐(0) 编辑
摘要:修改resnet最后的全连接层输出大小: resnet = torchvision.models.resnet18(pretrained=True) for param in resnet.parameters(): param.requires_grad = False. #冻结所有层 resne 阅读全文
posted @ 2022-03-08 17:04 Tomorrow1126 阅读(140) 评论(0) 推荐(0) 编辑
摘要:一、torchvision主要包括一下几个包: vision.datasets : 几个常用视觉数据集,可以下载和加载,这里主要的高级用法就是可以看源码如何自己写自己的Dataset的子类vision.models : 流行的模型,例如 AlexNet, VGG, ResNet 和 Densenet 阅读全文
posted @ 2022-03-08 16:11 Tomorrow1126 阅读(436) 评论(0) 推荐(0) 编辑
摘要:1.均匀分布torch.rand(*sizes, out=None) → Tensor 返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义。 参数: sizes (int...) - 整数序列,定义了输出张量的形状; out (Tensor, opti 阅读全文
posted @ 2022-03-08 12:07 Tomorrow1126 阅读(3549) 评论(0) 推荐(0) 编辑
摘要:class torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, nesterov=False)[source] 实现随机梯度下降算法(momentum可选)。 Nesterov动量基于On the importa 阅读全文
posted @ 2022-03-08 12:02 Tomorrow1126 阅读(192) 评论(0) 推荐(0) 编辑
摘要:nn.Linear():用于设置网络中的全连接层,需要注意的是全连接层的输入与输出都是二维张量 一般形状为[batch_size, size],不同于卷积层要求输入输出是四维张量。其用法与形参说明如下: 阅读全文
posted @ 2022-03-08 11:53 Tomorrow1126 阅读(1154) 评论(0) 推荐(1) 编辑
摘要:1.零维张量,又叫做标量 2.一维张量,没有行和列的概念,只有长度 3.二维张量,行和列,几行几列 4.三维张量,行、列、深度 https://www.jianshu.com/p/f34457c222c5 阅读全文
posted @ 2022-03-08 11:27 Tomorrow1126 阅读(1105) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示