使用pytorch时所遇到的问题总结

1、ubuntu vscode切换虚拟环境

  在ubuntu系统上,配置工作区文件夹所使用的虚拟环境。之前笔者误以为只需要在vscode内置的终端上将虚拟环境切换过来即可,后来发现得通过配置vscode的解释器(interpreter)具体方法如下:

  选中需要配置的文件夹,然后点击vscode左下角的写有“Python ***”的位置(或者使用快捷键“ctrl+shift+p”)--》选择文件夹--》从解释器列表中选择要用的解释器。完成设置后,会在文件夹下面多出一个名为“.vscode”的文件夹,其中会多出一个名为“settings.json”的文件,经过设置后该文件内会多出一个条目来指向虚拟环境中的python的路径,例如:python.pythonPath:"/home/lh/anaconda3/envs/pytorch/bin/python"。

2、使用DataLoader时报错:raise RuntimeError('already started')

  出错位置在使用DataLoader时,将参数“num_workers”设置为大于0的值了,推测原因是没有打开多线程功能,解决方法为将num_workers设置为0。

3、pytorch中使用TensorBoard

  问题(1): Import Error:TensorBoard logging requires TensorBoard with Python summary writer installed

  这是由于当前的环境中没有安装TensorBoard。如果电脑上安装有anaconda,那么直接使用命令“conda install tensorboard”即可。

  问题(2):调出tensorboard界面

  当在程序中调用SummaryWriter之后,在控制台中会给出如下信息:

  其中需要注意的是“--port 41889”。然后我们在控制台中输入命令“tensorboard --logdir='log' --port=41889”,--logdir用来指向之前所指定的日志目录,--port就是之前控制台中给出的端口号。输入指令后,控制台中会给出一个网址,打开该网址就可以在浏览器中打开tensorboard界面了。

4、pytorch使用dataloader时,报出“TypeError:default_collect:batch must contain tensors, numpy arrays, numbers,dicts or lists; found <class 'PIL.Image.Image'>”

  这是因为在创建torchvision.Dataset对象的时候没有将数据库内的图像转为torch张量,在创建数据库对象的时候将参数transform进行如下设置就可以了:transform=transform.ToTensor()。

5、RuntimeError:Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same

  这是由于传入模型的数据是放在CPU内存中的,而模型本身被放置在GPU内存中了。因此只需要将输入的数据放置到GPU内存中就可以解决问该问题了。

6、pytorch,同名函数后面加一个'_',例如:'clamp()'与'clamp_()'

  一般来说,如果函数后带了一个下划线,就意味着在改变当前张量的值的同时返回一个修改后的副本;如果不带下划线,那么就只返回修改后的副本,而不改变原来张量的值。例如:

import torch
a=torch.rand(3)
print('a:{}'.format(a))
print("clamp效果:")
b=a.clamp(0, 0.5)
print('b:{}'.format(b))
print('a:{}'.format(a))
print("clamp_效果:")
b=a.clamp_(0, 0.5)
print('b:{}'.format(b))
print('a:{}'.format(a))

  结果为如下图,可见张量a在调用clamp_函数后其本身的值也会发生改变,但是调用clamp的时候则只会返回一个修改后的副本。

 7、python中(1)与(1,)的区别

  ‘(1)’这种写法得到的是一个int类型的数据,而‘(1, )’得到的是一个turple类型的数据。验证如下:

使用pytorch时所遇到的问题总结的更多相关文章

  1. (原)ubuntu上编译PANet/Detectron.pytorch时-std=c99的错误

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/10494787.html 在ubuntu上编译PANet/Detectron.pytorch时,总提示 ...

  2. 在导入pytorch时libmkl_intel_lp64.so找不到

    安装或者更新完pytorch后,运行不了,显示错误: (base) xu@xusu:~$ python Python (default, Dec , ::) [GCC ] :: Anaconda, I ...

  3. Pytorch里的CrossEntropyLoss详解

    在使用Pytorch时经常碰见这些函数cross_entropy,CrossEntropyLoss, log_softmax, softmax.看得我头大,所以整理本文以备日后查阅. 首先要知道上面提 ...

  4. pytorch 从入门到实战

    一.安装 按照 http://pytorch.org 官网上的说明来做,遇到了几个坑.记录如下: 1.用 conda 安装 pytorch 时,下载安装包非常慢,无法忍受. 解决办法:用蓝灯FQ,将蓝 ...

  5. pytorch 安装

    安装pytorch时,官网不能选择版本.原以为是浏览器问题,换了几个浏览器都不行. 后来FQ之后,就能选择版本了. sudo pip install torch torchvision

  6. PyTorch如何构建深度学习模型?

    简介 每过一段时间,就会有一个深度学习库被开发,这些深度学习库往往可以改变深度学习领域的景观.Pytorch就是这样一个库. 在过去的一段时间里,我研究了Pytorch,我惊叹于它的操作简易.Pyto ...

  7. Pytorch 使用不同版本的 cuda

    由于课题的原因,笔者主要通过 Pytorch 框架进行深度学习相关的学习和实验.在运行和学习网络上的 Pytorch 应用代码的过程中,不少项目会标注作者在运行和实验时所使用的 Pytorch 和 c ...

  8. TensorFlow or PyTorch

    既然你已经读到了这篇文章,我就断定你已经开始了你的深度学习之旅了,并且对人造神经网络的研究已经有一段时间了:或者也许你正打算开始你的学习之旅.无论是哪一种情况,你都是因为发现你陷入了困惑中,才找到了这 ...

  9. 如何使用Pytorch迅速实现Mnist数据及分类器

    一段时间没有更新博文,想着也该写两篇文章玩玩了.而从一个简单的例子作为开端是一个比较不错的选择.本文章会手把手地教读者构建一个简单的Mnist(Fashion-Mnist同理)的分类器,并且会使用相对 ...

随机推荐

  1. jvaa之初始化块

    1.初始化块的作用:对java对象进行初始化: 2.程序的执行顺序:声明成员变量的默认值-->显示初始化,多个初始化块依次被执行(同级别下按先后顺序执行)-->构造器在对成员进行赋值操作. ...

  2. VS出现未加载wntdll.pdb的解决办法

    无缘无故出现了未加载wntdll.pdb的的错误,不知道原因是什么,但找到了解决方法.在调试中选择选项,然后选择调试->符号,勾选Microsoft符号服务器,确定.重新生成项目时会有各种加载, ...

  3. HBase删除数据的原理

    转自:https://blog.csdn.net/cenjianteng/article/details/96645447 -------------------------------------- ...

  4. javaWeb核心技术第六篇之BootStrap

    概述: Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. 作用: 开发响应式的页面 响应式:就是一个网站能够兼容多个终端 节约开发 ...

  5. JS基础语法---函数作为参数使用---回调函数

    1. 函数可以作为参数使用, 如果一个函数作为参数, 那么我们说这个参数(函数)可以叫回调函数 2. 只要是看到一个函数作为参数使用了, 那就是回调函数 function sayHi(fn) { co ...

  6. HBuilderx 模拟器调试设置

    模拟器名称    连接默认端口夜神安卓模拟器夜神安卓模拟器     62001逍遥安卓模拟器逍遥安卓模拟器     21503BlueStacks(蓝叠安卓模拟器)BlueStacks(蓝叠安卓模拟器 ...

  7. 【转】java中使用WebSocket

    传统的请求,都是从客服端到服务端,表现在web应用上就是,消息都只能由浏览器发起请求,调用客户端的方法. webSocket可以从服务器端推送消息给浏览器. 使用场景: 当客户端发起缴费请求时,由服务 ...

  8. python创建文件夹

    import os filePath = 'D:\12345' # 判断文件夹是否存在,不存在则创建文件夹if not os.path.exists(filePath): os.makedirs(fi ...

  9. Hive表的几种存储格式

    Hive的文件存储格式: textFile textFile为默认格式 存储方式:行存储 缺点:磁盘开销大:数据解析开销大:压缩的text文件,hive无法进行合并和拆分 sequencefile 二 ...

  10. Linux系统学习 二、测评-身份鉴别1

    身份鉴别 1)对登陆操作系统和数据库系统的用户进行身份表示和鉴别 1.密码文件中的口令字段是否不为空 2.检查各个用户主目录下的.rhosts文件 3.查看/etc/hosts.equiv 学习: 1 ...