PyTorch
文章平均质量分 80
沉住气CD
这个作者很懒,什么都没留下…
展开
-
5. PyTorch——数据处理模块
在PyTorch中,数据加载可通过自定义的数据集对象。数据集对象被抽象为类,实现自定义的数据集需要继承Dataset,并实现两个Python魔法方法:这里以Kaggle经典挑战赛"Dogs vs. Cat"的数据为例。"Dogs vs. Cats"是一个分类问题,判断一张图片是狗还是猫,其所有图片都存放在一个文件夹下,根据文件名的前缀判断是狗还是猫。这里返回的数据不适合实际使用,因其具有如下两方面问题:针对上述问题,PyTorch提供了torchvision1。它是一个视觉工具包,提供了很多视觉图像原创 2023-12-12 20:46:28 · 314 阅读 · 0 评论 -
4.PyTorch——优化器
一种是修改optimizer.param_groups中对应的学习率,另一种是更简单也是较为推荐的做法——新建优化器,由于optimizer十分轻量级,构建开销很小,故而可以构建新的optimizer。但是后者对于使用动量的优化器(如Adam),会丢失动量等状态信息,可能会造成损失函数的收敛出现震荡等情况。,并实现了自己的优化步骤。下面就以最基本的优化方法——随机梯度下降法(SGD)举例说明。中,其设计十分灵活,能够很方便的扩展成自定义的优化方法。PyTorch将深度学习中常用的优化方法全部封装在。原创 2023-12-08 14:48:56 · 321 阅读 · 1 评论 -
3.PyTorch——常用神经网络层
图像相关层主要包括卷积层(Conv)、池化层(Pool)等,这些层在实际使用中可分为一维(1D)、二维(2D)、三维(3D),池化方式又分为平均池化(AvgPool)、最大值池化(MaxPool)、自适应池化(AdaptiveAvgPool)等。除了这里的使用,图像的卷积操作还有各种变体,具体可以参照此处动图[^2]介绍。RNN和RNNCell层的区别在于前者一次能够处理整个序列,而后者一次只处理序列中一个时间点的数据,前者封装更完备更易于使用,后者更具灵活性。池化层:可视为一种特殊的卷积层,用来下采样。原创 2023-12-07 17:32:15 · 420 阅读 · 0 评论 -
2. PyTorch——Tensor和Numpy
tensor分为头信息区(Tensor)和存储区(Storage),信息区主要保存着tensor的形状(size)、步长(stride)、数据类型(type)等信息,而真正的数据则保存成连续数组。由于Numpy历史悠久,支持丰富的操作,所以当遇到Tensor不支持的操作时,可先转成Numpy数组,处理后再转回tensor,其转换开销很小。一般来说一个tensor有着与之相对应的storage, storage是在data之上封装的接口,便于使用,而不同tensor的头信息一般不同,但却可能使用相同的数据。原创 2023-12-07 14:30:52 · 353 阅读 · 0 评论 -
1.PyTorch数据结构Tensor常用操作
HalfTensor是专门为GPU版本设计的,同样的元素个数,显存占用只有FloatTensor的一半,所以可以极大缓解GPU显存不足的问题,但由于HalfTensor所能表示的数值大小和精度有限。函数新建tensor是最复杂多变的方式,它既可以接收一个list,并根据list的数据新建tensor,也能根据指定的形状新建tensor,还能传入其他的tensor,下面举几个例子。不会修改自身的数据,返回的新tensor与源tensor共享内存,也即更改其中的一个,另外一个也会跟着改变。原创 2023-12-07 14:27:57 · 223 阅读 · 1 评论