![](https://img-blog.csdnimg.cn/226d8e9545d844b59c1b3fad0506e393.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Pytorch知识
文章平均质量分 50
Pytorch简单技能分享
知识推荐号
学习、技能、读书、科研分享
展开
-
神经网络的卷积操作中不同的卷积核和不同的填充获得同样的输出
所有卷积过程的步长 stride 均设置为1,根据上式计算得到的补0数目分别为0,1,2,3。下面的代码对计算进行了验证,运行后将输出4行torch.Size([1,3,300,400]),证明卷积后输出特征图维度和输入相同。根据卷积的计算方式可知,为了保证输入和输出特征图的长宽一致,可以使用步长为1的卷积,所以SH和SW 均设置为1。上面的公式总结了 Conv2d 的输入和输出特征图的长宽尺寸计算关系,根据需求选择不同的参数搭配。代表输出特征图的通道数。KH 代表卷积核的长度、KW 代表卷积核的宽度。原创 2024-06-21 19:56:40 · 892 阅读 · 0 评论 -
神经网络中图片的多分类,如何计算与目标索引图的损失
在PyTorch中,交叉熵损失函数通常用于nn.CrossEntropyLoss,它 combines nn.LogSoftmax and nn.NLLLoss in one single class. 当你使用nn.CrossEntropyLoss时,你不需要在模型的输出层加nn.Softmax,因为nn.CrossEntropyLoss已经包含了这个操作。在这个例子中,outputs是模型输出的未经softmax的原始值,而targets是与outputs形状相同的。,因为它代表的是类别的索引。原创 2024-05-18 21:29:21 · 305 阅读 · 0 评论 -
深度学习中读取索引图并转成tensor
在Python中,你可以使用像PIL(Python Imaging Library)或者cv2(OpenCV)这样的库来读取索引图(即图像分割的标签图),然后使用torch将NumPy数组转换成PyTorch的Tensor。请确保你的索引图像是正确的格式,并且其中的类别标签是连续的整数,这样它们就可以作为索引来使用。如果你的索引图像使用了不同的颜色来表示不同的类别,你可能需要额外的逻辑来将颜色映射到类别索引上。原创 2024-05-18 21:24:47 · 260 阅读 · 0 评论 -
深度学习中将图片使用transforms.ToTensor()转换后,如何转回来
在上面的代码中,to_tensor用于将PIL图片转换为PyTorch tensor,同时会对图片的像素值进行归一化处理,使其位于[0, 1]区间。to_pil则用于将PyTorch tensor转换回PIL图片,同时会将像素值从[0, 1]区间反归一化到原来的[0, 255]区间。请注意,在进行转换时,如果你对tensor进行了一些处理,比如归一化、标准化或者其他一些变换,那么你可能需要在转换回PIL图片之前对tensor进行相应的逆变换,以确保图片的数据显示正确。原创 2024-05-18 21:23:19 · 245 阅读 · 0 评论 -
【查看tensor的数据类型】
这段代码中,tensor.dtype将会输出tensor的数据类型。例如,如果你创建的是一个默认类型的tensor(即torch.FloatTensor),那么默认情况下它会打印出torch.float32。在Python中,你可以使用torch.Tensor对象的dtype属性来查看tensor的数据类型。dtype属性会返回一个torch.dtype对象,该对象描述了tensor中元素的数据类型。请注意,转换数据类型可能会导致数值精度的丢失,因此在进行类型转换时需要谨慎处理。原创 2024-05-18 21:22:05 · 336 阅读 · 0 评论 -
【神经网络输出10通道的tensor形状为(10, 512, 512),找出10通道中的最大值的通道序号,生成一个形状为(1, 512, 512)的张量,根据张量的序号存成索引图映射不同的颜色】】
要根据10通道中的最大值的通道序号生成一个索引图,并且将不同的通道序号映射到不同的颜色,你可以使用Python的图像处理库Pillow。首先,我们需要找出每个位置的最大值通道序号,然后使用这个序号来创建一个索引图,并映射不同的颜色。查看索引图与数值一致:max_channel_indices_np。创建一个颜色映射字典,用于将通道序号映射到不同的颜色。使用Pillow库创建一个索引图,并应用颜色映射。使用torch.max函数找到最大值及其索引。用PS软件打开可以看到它是索引图但是有上色。原创 2024-05-18 18:19:02 · 190 阅读 · 0 评论 -
【torch中计算tensor的按某个维度的最大值】
如果你需要计算整个张量的最大值,可以直接调用torch.max(tensor),它将返回张量中的最大值和其索引。注意,返回的索引是沿着指定的维度,对于整个张量,索引是一个标量,因为它只有一个最大值。max_columns 是一个包含每列最大值的张量,column_indices 是对应每列最大值的索引。max_rows 是一个包含每行最大值的张量,row_indices 是对应每行最大值的索引。max_all 是整个张量中的最大值,all_indices 是它在张量中的索引。原创 2024-05-18 11:07:38 · 345 阅读 · 0 评论 -
关于在PyTorch中使用cudnn.benchmark= True
当cudnn.benchmark = True时,cuDNN会进行基准测试来找出最优的算法。在PyTorch中,cudnn.benchmark = True是一个参数,用于启用或禁用cuDNN的基准测试模式。在上述代码中,我们首先导入了torch库,然后设置了torch.backends.cudnn.benchmark为True,这就会开启cuDNN的基准测试模式。:在某些情况下,开启基准测试模式可能会导致GPU使用率下降,因为cuDNN需要更多的时间来找出最优的算法。原创 2023-12-03 20:27:59 · 882 阅读 · 0 评论 -
【VS Code 使用tensorboard功能技巧】
在虚拟环境终端中进入到logs的上级目录,输入启动指令(如下),点击生成的链接即可查看结果。在VS Code里执行以上代码,就会在生成的logs文件夹里保存相关文件。(3)展示单/多张张图像——add_image/add_images。启动成功后,弹出tensorboard页面,查看数据、图表。scalars: 精确度,学习率,损失曲线;(2)画线——add_scalaar。安装上面的库后,在代码中点击启动,(4)画模型——add_graph。(5)存放不同文件夹,对比参数。弹出选择log日志文件夹,原创 2023-10-07 18:11:35 · 7776 阅读 · 5 评论 -
1-Pytorch初始化张量和张量的类型
5 构建张量时用dtype明确其类型,或者用type。4 从Numpy数组ndarray创建张量。6 等价转换int64和float32。3 创建float型张量。原创 2023-09-09 16:06:55 · 519 阅读 · 0 评论 -
2-Pytorch创建随机值张量
tensor.shape返回张量的形状,与tensor.size()方法等价,tensor.dtype返回当前张量的类型。8 将张量移动到显存,使用tensor.to()方法将张量移动到GPU上。2 使用torch.rand()创建0-1均匀分布的随机数。3 使用torch.randn()创建正态分布的随机数。9 更稳妥的移动显存方法,无论是否有GPU都能保证运行。4 使用torch.zeros()创建全0张量。5 使用torch.ones()创建全1张量。6 从另一个张量创建新的张量。原创 2023-09-10 16:59:15 · 470 阅读 · 1 评论 -
3-Pytorch张量的运算、形状改变、自动微分
张量的算数运算包括:abs(绝对值)、cunsum(累加)、divide(除)、floor_divide(整除)、mean(均值)、min(最小值)、max(最大值)、multiply(乘)等,矩阵转置常用(tensor.T)和矩阵乘法用(matmul或@)使用torch.from_numpy()方法将ndarray转成张量,使用tensor.numpy()方法得到对应的ndarray数组,它们共用相同内存。改变张量的形状用tensor.view()方法,相当于numpy中的reshape方法。原创 2023-09-13 16:49:14 · 278 阅读 · 0 评论 -
【关于torch中的多线程num_works设置相关问题】
这里是以Mnist数据集为例,BATCH_SIZE = 100,循环不同的num_works,计算一轮训练的耗时。(其他数据更换train_set、train_loader 的参数即可)可以看出,BATCH_SIZE = 100,最佳的num_works = 5时间最短。原创 2023-04-07 15:10:46 · 1857 阅读 · 0 评论 -
【torch加载数据集并显示】
【torch加载数据集并显示】原创 2023-03-21 22:21:57 · 222 阅读 · 0 评论 -
【torch激活函数集锦】
torch激活函数集锦原创 2023-03-18 20:03:13 · 212 阅读 · 0 评论 -
【torch张量】
参考:https://blog.csdn.net/xholes/article/details/81667211张量数据类型: 9种。原创 2023-03-19 17:25:37 · 518 阅读 · 0 评论 -
【torch保存神经网络模型并加载和测试】
使用方式二加载模型,不需要网络结构,预测的代码如下,预测结果为1,属于第二类。用这种方式保存模型,原创 2023-04-04 17:02:24 · 911 阅读 · 0 评论 -
【使用torchvision中的make_grid实现多张图片拼成一张图】
读取图片可以采用OpenCV2或者PIL,再合并图片矩阵,输出(照片数,通道,高,宽)的tensor张量。使用make_grid函数输出一张图片(照片数,通道,高,宽)的tensor张量tensor张量。注意:以下代码由Jupyter Notebook 实现。读取4张lena的照片,拼成4*4图片。这种做法的缺点是,不能设定图片间隔。原创 2023-03-22 16:08:34 · 541 阅读 · 0 评论 -
【tensorboard使用技巧】
在使用torch跑完一个程序,保存的训练日志想要用tensorboard打开时,出现:tensorboard ValueError: Duplicate plugins for name projector的问题。原创 2023-04-06 11:32:51 · 204 阅读 · 0 评论 -
【torch实现鸢尾花识别、手写数字识别】
2.3 使用torchvision加载MNIST数据集。注:以下内容由Jupyter Notebook实现。2.2 生成网络架构,转到GPU中。2.5 模型加载与保存。2.4 开始训练网络。原创 2023-03-23 12:04:07 · 314 阅读 · 0 评论 -
【torch版-卷积神经网络(Convolutional Neural Networks)实现Mnist手写数字分类】
class LeNet(nn . Module) : '''这是一个使用PyTorch编写的LeNet模型的初始化函数。LeNet是一种经典的卷积神经网络, 由Yann LeCun等人在1998年提出。它包含了两个卷积层和三个全连接层, 用于对图像进行分类。该模型的初始化函数包含了模型中需要使用的各种网络层的定义。其中, super(LeNet, self).init()用于调用父类的初始化函数,原创 2023-03-25 12:23:09 · 141 阅读 · 0 评论 -
计算图片的均值和方差用图片的归一化取值
注意:使用这种方法的前提是进行了数据批量化操作,需要使用神经网络库,torch,DataLoader。此方法可以计算3通道和一个通道的均值和方差。原创 2023-08-12 19:11:58 · 384 阅读 · 0 评论