Pytorch
文章平均质量分 50
neu_eddata_yjzhang
-
【PYTORCH】RuntimeError: torch.cuda.FloatTensor is not enabled.
这个错误的原因是你在安装了cpu版本的pytorch上运行GPU版本的pytorch的代码。解决方法:将出错位置的".cuda()"换成".cpu()"原创 2021-12-29 15:42:59 · 1530 阅读 · 0 评论 -
【问题记录】json.decoder.JSONDecodeError:Extra data: line xxx column xxx(char xxxx)
这个报错一般都出现在解析的json文件格式不对,有特殊字符或者一次性读取的文件过大。(个人认为第一种情况更有可能,因为我的文件数据量就有十多万条,正常打开也没问题)一开始,我想使用如下命令打开json格式的文件 with open(data_path) as fp_data: raw_problems = json.load(fp_data)但是会保存json解码过程出现错误,Extra data: line 8 column 1(char 190)。这个原创 2021-12-28 10:45:03 · 4411 阅读 · 2 评论 -
【PYTORCH】RuntimeError: one of the variables needed for gradient computation has been
此次实验的环境为pytorch=1.4.0。这个错误的原因在于pytorch的自动求导机制,在求loss的时候,由于我的loss写成了loss = loss_0 + loss_1这样可能可能对pytorch的自动求导机制造成了迷惑,于是我将上面一句话改成下述代码后,程序就可以正常执行了,但是具体的效果是否和上面等同,目前还不确定。loss = loss_0.backward() + loss_1.backward() ...原创 2021-12-28 10:17:37 · 1496 阅读 · 4 评论 -
【PYTORCH】Pytorch0.4.0安装教程与GPU配置大合集(含测试代码)
1.查看pytorch是否存在以及pytorch的版本import torchprint(torch.__version__)2.查看cuda是否可用print(torch.cuda.is_available())3.查看cuda版本print(torch.version.cuda)4.查看当前工作的GPUprint(torch.cuda.current_device())5.查看gpu的数目print(torch.cuda.device...原创 2021-12-25 20:20:14 · 7896 阅读 · 0 评论 -
【PYTORCH】Expected object of type torch.xxxTensor but found type torch.cuda.xxxTensor(torch0.4.0)
上图是错误的全部内容,其中对我们修改bug有用的部分是从图中我们可以看到,我们所希望的layer(x,mask)的第二个参数”mask“应该为torch.ByteTensor类型而不是现在的torch.cuda.ByteTensor类型。所以我们应该将mask的类型强制转化为torch.ByteTensor。即通过修改mask的type来完成,具体操作如下:layer(x,mask.type(torch.ByteTensor))....原创 2021-12-25 19:58:09 · 758 阅读 · 0 评论 -
【Pytorch】Pytorch的PackedSequence()类
其官方文档如下:PackedSequence — PyTorch 1.10.0 documentation其解释为:将一个填充过的变长序列压紧。其参数分别为:data:要压紧的张量batch_sizes:源张量的维度信息。batch_first:是否坚持批次优先实验结果如下:import numpy as npimport torchfrom torch.nn.utils.rnn import pack_padded_sequence,pad_packed_seq.原创 2021-12-13 15:29:44 · 1276 阅读 · 0 评论 -
【Pytorch】TORCH.TENSOR.VIEW()方法和reshape()方法
其官方文档给出的解释如下:其解释为:返回一个和原张量具有相同数据元素但是不同形状的新张量,并且返回的新张量必须和原张量具有相同的元素数量。下面举例实现:我们可以看到B是一个共含有16个元素的结构为4*4的张量,我们可以通过view()方法获取其改变结构后的张量,但view()方法结果并不改变他本身的结构,只是做一个输出罢了,同reshape不一样,reshape会改变它的结构。...原创 2021-12-12 14:43:22 · 925 阅读 · 0 评论 -
【Pytorch】基于MNIST数据集并利用Pytorch实现基于线性层的自编码模型(附源码)
本文主要介绍类似于全连接神经网络的自编码模型,即网络中编码层和解码曾都使用线性层包含不同数量的神经元来表示。针对手写字体数据集,利用自编码模型对数据降维和重构。 在本文构建的网络中,输入层和输出层都有784个神经元,对应着一张手写图片的784个像素,即在使用图象是将28*28的图像转化为1*784的向量。在进行编码的过程中,神经元的数量从512个逐渐减少到3个,主要是便于降维后数据分布情况的可视化,并分析手写字体经过编码后在空间的分布规律。在解码器中神经元的数量逐渐增加,会...原创 2021-12-11 15:16:01 · 1342 阅读 · 0 评论 -
【Pytorch】torchvision.utils.make_grid()方法
其官方文档给出的解释如下:该方法可以用来直接将数据结构[batch,channel.height,width]形式的图像转化为图像矩阵,便于将多张图像进行可视化。其具体的应用可以参考我的另一篇博客《【Pytorch】利用Pytorch实现基于线性层的自编码模型》...原创 2021-12-11 14:27:00 · 2142 阅读 · 0 评论 -
【Pytorch】利用Pytorch+GRU实现情感分类(附源码)
在这个实验中,数据的预处理过程以及网络的初始化及模型的训练等过程同前文《利用Pytorch+LSTM实现中文新闻分类》,具体这里就不再重复解释了。如果有读者在对数据集的预处理过程中有疑问,请参考我的其他博客,里面对这些方法均有我的一些个人体会,这里直接贴上源码。## 导入本章所需要的模块import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.metrics import accuracy_原创 2021-12-11 10:16:20 · 2798 阅读 · 1 评论 -
【环境配置】使用xshell和xftp或MacOS搭建基于Ubuntu18.04_64x86_64非图形界面的Anaconda3+Cuda11.3.1+Cudnn8.2.1+Pytorch1.10环境
1.在服务器上新建一个个人用户,并为其设置sudo权限。概念: sudo权限就是root把本来只能超级用户执行的命令赋予普通用户执行,sudo的操作对象是系统命令。实现步骤:首先打开服务器终端,在终端中依次输入以下三个命令。su root #切换到超级管理员,输入后会要求输入超级管理员密码。adduser #自定义的用户名vi /etc/sudoers接着修改 /etc/sudoers文件的内容,在可以执行特权指令的用户中将自定义的用户添加进去,并为其开启可以执行全部...原创 2021-12-09 19:57:29 · 2383 阅读 · 1 评论 -
【Pytorch】利用Pytorch+LSTM实现中文新闻分类(附源码)
1.数据的预处理首先将文件读取出来并利用chinese_pre()函数对中文文本数据进行预处理,去除一些不需要的字符,分词,去停用词,等操作。然后将预处理后的结果保存为新的文件。接着利用map函数将“体育”、“娱乐”等中文标签转化为数字标签。并存入文件。其中re.sub()、jieba.cut()。map()函数等说明文档在下方链接re.sub()用法的详细介绍_jack的博客-CSDN博客_re subjieba源码解析(二):jieba.cut - AloisWei - 博客...原创 2021-12-09 17:26:05 · 2967 阅读 · 15 评论 -
【Pytorch】利用Pytorch+RNN实现基于MNIST数据集的手写字体分类(附源码)
1.在导入数据进行数据准备工作可以直接从torchvision库的datset模块导入MNIST手写字体的训练数据集和测试集,然后使用Data.DataLoader()函数将两个数据集定义为数据加载器。其中用到torchvision.datasets.XXXXX()函数解释为:从指定的路径下获取数据集,其中train参数用于控制所提取的是训练集还是测试集。download参数用于控制是否从互联网上下载数据集。transform参数则用于将输入的图片进行转换(本文将其转化为张量),tar...原创 2021-12-09 15:06:24 · 1329 阅读 · 2 评论 -
【Pytorch】Tensor.repeat()方法
使用张量的.repeat()方法,可以将张量看作一个整体,然后根据指定的形状进行重复填充,得到新的张量。原创 2021-12-09 13:47:55 · 1726 阅读 · 0 评论 -
【Pytorch】torch.manual_seed()函数
在Pytorch中可以通过相关随机数来生成张量,并且可以指定生成随机数的分布函数等。在生成随机数之前,可以使用torch.manual_seed(seed)函数,用于指定生成随机数的种子,用于保证生成的随机数是可重复出现的。说明:无论我们运行多少次上述代码,其运行结果都是一样的。这是因为我们通过torch.manual_seed(seed)函数固定了每次生成的张量。这样一来,当每次我们修改模型后重新测试模型效果时就可以通过该方法保证每次运行时的参数一致,这样就可以消除由参数的改变而对测试结果所带来.原创 2021-12-07 16:04:34 · 978 阅读 · 0 评论 -
【Torchtext】Torchtext.Vocab、Torchtext.data.BucketIterator、build_vocab函数以及Torchtext.vocab.Vectors
1.Vocab函数其官方文档定义为:Defines a vocabulary object that will be used to numericalize a field.(定义将用于对字段进行数值化的词汇表对象。)2.BucketIterator函数其官方文档定义为:Defines an iterator that batches examples of similar lengths together.(定义一个迭代器,该迭代器将相似长度的示例批处理在一起。)3.实验结果..原创 2021-12-08 10:44:53 · 5475 阅读 · 1 评论