【复现代码——环境配置】

目录

  • 一、复现代码举例
  • 二、创建环境——选择一个Python版本
    • 2.1 创建基本环境
      • 2.1.1 基于AutoDL
      • 2.1.2 基于PyCharm
    • 2.2 终端激活环境
    • 2.3 退出环境
    • 2.4 删除环境
  • 三、PyTorch安装
    • 3.1 查看cuda
    • 3.2 安装PyTorch
  • 四、其他依赖安装
    • 4.1 tensorboardX
    • 4.2 matplotlib
    • 4.3 medpy
    • 4.4 visdom
    • 4.5 pandas
    • 4.6 imageio
    • 4.7 torchsummary
    • 4.8 cv2
  • 五、不同PyTorch版本的问题
    • 5.1 【程序错误】loss.backward()
      • 5.1.1 问题
      • 5.1.2 原因
      • 5.1.3 解决方法
    • 5.2 【程序错误】计算损失时的one-hot问题
      • 5.2.1 问题
      • 5.2.2 原因
      • 5.2.3 解决方法
    • 5.3 【程序错误】THC/THC.h编译终止
      • 5.3.1 问题
      • 5.3.2 原因
      • 5.3.3 解决方法
  • 参考博客

一、复现代码举例

我们在复现其他baseline的时候,要看代码的环境要求,例如:

# Environment Setup
Python 3.7.13
CUDA 11.1
Pytorch 1.10.1
torchvision 0.11.2

注: 以上的环境是必须要按照作者要求的安装,如果换其他的版本,就可能会出错。而其他依赖可以直接pip安装,无版本要求。

二、创建环境——选择一个Python版本

为了方便环境管理,我们是基于工程来创建这个工程的环境。

2.1 创建基本环境

2.1.1 基于AutoDL

conda create -n hra37 python=3.7.13

2.1.2 基于PyCharm

  • 打开一个工程;
  • 创建基本环境:File -> Settings -> Project -> Python Intepreter -> Conda Environment -> 点 **+ ** ->New environment -> 指定Python版本和修改环境名字
    在这里插入图片描述
    安装时出现错误:
    在这里插入图片描述

排查错误:

  • 查看镜像源是清华还是中科大:
conda config --show channels

显示如下:(显示为中科大)
在这里插入图片描述

  • 用终端创建环境,需要cd到anaconda3/bin下在安装:
    在这里插入图片描述
conda create -p /home/wanghui/anaconda3/envs/HRA-UNET -y python=3.7.13

依然出现问题。哎,改成AutoDL,成功。

2.2 终端激活环境

conda activate hra37

2.3 退出环境

conda deactivate

2.4 删除环境

conda remove -n hra37 --all  # hra37是我想删除的环境名

三、PyTorch安装

3.1 查看cuda

安装PyTorch必须找到对应的cuda,所以先查看自己的服务器CUDA。

nvidia-smi

我这个服务器的cuda 12.2,可向下兼容。

3.2 安装PyTorch

官网以前的版本,复制、终端运行

pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html

注: 这里可选择conda安装,也可以pip安装,我一般选择pip 安装,conda 安装有时候不成功。

四、其他依赖安装

4.1 tensorboardX

pip install tensorboardX

4.2 matplotlib

pip install matplotlib

4.3 medpy

  • 必须先安装SimpleITK,且指定版本:
pip install SimpleITK==1.2.4
  • 安装medpy:
pip install medpy

4.4 visdom

pip install visdom

4.5 pandas

pip install pandas

4.6 imageio

pip install imageio

4.7 torchsummary

pip install torchsummary

4.8 cv2

清华镜像:(快)

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

以上,安装完代码需要的所有依赖,就可以训练或是测试了。

五、不同PyTorch版本的问题

5.1 【程序错误】loss.backward()

5.1.1 问题

RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [256]] is at version 4; expected version 3 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).

5.1.2 原因

  • 第一次出现问题是复现代码时,出现的问题;
  • 第二次是加分布式训练DP时。
  • 看了网上的各种方法,试过各种方法,最后发现,就是PyTorch版本的问题。

5.1.3 解决方法

目前解决的问题是用 PyTorch 1.7.0,Pytorch 1.10.1 也可以。Pytorch 1.13.0、2.0.0不可以。

5.2 【程序错误】计算损失时的one-hot问题

5.2.1 问题

RuntimeError: 1only batches of spatial targets supported (3D tensors) but got targets of size: : [2, 10, 256, 256]

5.2.2 原因

在Pytorch中,“不需要”对标签进行one-hot编码,且需要将通道这一维给压缩了。即:

  • 预测值:(256,256,10)
  • 标签值:(256,256)
    即可以直接进行计算损失。
    其中,标签中的值为对应的类别数。

如下所示,我们可以进行损失的计算了。但是较新的pytorch版本才支持,实测pytorch1.10.2支持。

torch.size([2, 10, 256 ,256])
torch.size([2, 256 ,256])

5.2.3 解决方法

预测值: torch.Size([8, 2, 513, 513])
标签值: torch.Size([8, 513, 513, 3])

需要将标签转换下,然后去掉通道维度,如下:

使用label=torch.argmax(label, dim=1) ,其中dim=1表示通道维度,亲测有效!!!!!

5.3 【程序错误】THC/THC.h编译终止

5.3.1 问题

#include <THC/THC.h>
          ^~~~~~~~~~~
compilation terminated.
error: command '/usr/local/cuda/bin/nvcc' failed with exit code 1

5.3.2 原因

Pytorch 1.11版本后,THC/THC.h失效了。

5.3.3 解决方法

换一个Pytorch 版本。Pytorch 1.10.1可用。

参考博客

[1] 【程序错误】RuntimeError: one of the variables needed for gradient computation
[2] 【完美解决】RuntimeError: one of the variables needed for gradient computation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/569260.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

stable-diffusion-webui安装与使用过程中的遇到的error合集

stable-diffusion-webui1.9.2踩坑安装 1. 安装过程1.1 stable-diffusion-webui1.2 在win11或win10系统安装&#xff0c;需修改两个启动脚本1.2.1 修改webui-user.bat1.2.2 修改webui.bat 1.3 双击 webui-user.bat 启动脚本1.3.1 no module xformers. Processing without on fre…

实体书营销:“三三裂变”,实操细节分享……

实体书营销:“三三裂变”,实操细节分享 一、实验结果 “三三裂变”的实验,结果比较好。就是我们大概有300人报名,但实际行动的只有109人,大概有103人都完成了三个人的目标,也就是说我们通过109人裂变了475人,利润率是1:4.5左右,整个裂变的效率还是可以的,也就是说: …

阿赵UE学习笔记——30、HUD简单介绍

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎&#xff0c;这次来学习一下HUD的基础使用。 一、 什么是HUD HUD(Head-Up Display)&#xff0c;也就是俗称的抬头显示。很多其他领域里面有用到这个术语&#xff0c;比如开车的朋友可能会接触过&#xf…

后端工程师——Java工程师岗位要求

在国内,Java 程序员是后端开发工程师中最大的一部分群体,其市场需求量也是居高不下,C++ 程序员也是热门岗位之一,此二者的比较也常是热点话题,例如新学者常困惑的问题之一 —— 后端开发学 Java 好还是学 C++ 好。读完本文后,我们可以从自身情况、未来的发展,岗位需求量…

适用于手机蓝牙的热敏晶体FA1612AS

EPSON推出的一款1612小尺寸无源热敏晶体:FA1612AS。FA1612AS的额定频率为38.4Mhz的晶体单元&#xff0c;采用无铅材料&#xff0c;符合ROHS标准&#xff0c;内置热敏电阻&#xff0c;可用于移动电话&#xff0c;蓝牙等。热敏晶体FA1612AS的产品特性:额定频率:38.4MHZ外部尺寸规…

上海亚商投顾:沪指缩量调整 有色、煤炭等周期股集体大跌

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量调整&#xff0c;午后一度跌近1%&#xff0c;黄白二线走势分化&#xff0c;微盘股指数涨超3%。军…

SpringBoot 启动控制台 --banner.txt实现打印炫酷控制台图案

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 分析源代码&#xff0c;banner.txt实现打印控制台 控制台图案生成网址&#xff1a;Ascii艺术字实现个性化Spring Boot启动banner图案&#xff0c;轻松修改更换banner.txt文件内容&#xff0c;收集了丰富…

ASP.NET Core 3 高级编程(第8版) 学习笔记 04

第 19 章主要介绍 Restful Service 的相关知识。Restful Service 的核心内容是&#xff1a;&#xff08;1&#xff09;HTTP 请求或 HTTP 动词&#xff0c;用 HTTP 请求表达不同的操作&#xff0c;最好遵守惯例。&#xff08;2&#xff09;资源&#xff0c;通过 PATH 结合 paylo…

C语言学习/复习31--简单通讯录功能的实现/结构体的运用/strcmp函数的运用/memset函数

0、分文件/结构体定义初始化/成员变量的访问/结构体地址传参/switch/for()/do while()/数组中元素的添加与删除/assert/const/宏/字符与内存函数 一、结构体运用---通讯录 1.基本功能 2.项目文件 二.具体操作方法 1.test.c文件 包含菜单与输入界面 2.contact.h头文件 …

中霖教育:二建考试哪些地区查社保?

想要报考二级建造师考试的同学都知道&#xff0c;在个别省份报名参加二建是需要核查社保信息的&#xff0c;也有一些省份对社保不做强制要求。 以下这几个省份查社保&#xff0c;如果不满足条件可以避开这几个省份&#xff0c;具体规定可参考当地发布的二建考试公告。 山东、…

阿里云官方综合优惠平台,官方云小站平台最新优惠政策汇总

阿里云官方云小站平台是阿里云为用户提供的优惠聚集地&#xff0c;这里不仅有丰富的优惠活动&#xff0c;还有不定期发布的云产品通用代金券。本文为您详细介绍阿里云官方综合优惠平台——官方云小站2024年的最新优惠政策&#xff0c;帮助您以更优惠的价格享受到高品质的云服务…

影响肉类口感的关键指标:肉嫩度的深度解析与检测方法

影响肉类口感的关键指标&#xff1a;肉嫩度的深度解析与检测方法 一、引言&#xff1a;肉类嫩度与食用体验 在饮食文化中&#xff0c;肉类的嫩度一直被视为影响口感的重要因素。对于消费者而言&#xff0c;嫩滑多汁的肉质往往能带来更好的食用体验。因此&#xff0c;准确评估…

如何在官网查看Qt5的所有模块?

2024年4月23日&#xff0c;周二上午 如果你不想一步步来的话&#xff0c;可以直接去这个Qt官方链接 https://doc.qt.io/qt-5/qtmodules.html 第一步&#xff1a;去到Qt官网 https://www.qt.io/ 第二步&#xff1a;点击文档链接 第三步&#xff1a;选择文档中的“Qt5” 第四步…

探索ChatGPT在提高人脸识别与软性生物识准确性的表现与可解释性

概述 从GPT-1到GPT-3&#xff0c;OpenAI的模型不断进步&#xff0c;推动了自然语言处理技术的发展。这些模型在处理语言任务方面展现出了强大的能力&#xff0c;包括文本生成、翻译、问答等。 然而&#xff0c;当涉及到面部识别和生物特征估计等任务时&#xff0c;这些基于文…

(007)Blender 根据顶点组分离模型

1.选中模型&#xff0c;并且进入【3D视图】【编辑模式】&#xff1a; 2.选择顶点组&#xff1a; 3.分离选中项&#xff1a;

齐护K210系列教程(四)_串口输出

串口输出打印数据 文章目录 串口输出打印数据1&#xff0c;什么是串口通信2&#xff0c;串口通常的应用3&#xff0c;AIstart的串口编程3-1 打印数据输出3-2 打印数据输出与输入 4&#xff0c;课程资源 1&#xff0c;什么是串口通信 在设计程序的过程中&#xff0c;经常要查看…

【中邦兴业】如何进行气流流型测试?一篇文章告诉你

气流流型&#xff0c;作为反应无菌操作的关键测试&#xff0c;其测试方法和结果是否合理直接关系到无菌保障水平是否达到要求。一个科学的气流流型设计&#xff0c;能够正确反应关键区域和关键操作下的气流流动是否符合要求&#xff0c;能否有效减少产品微生物的污染风险。如今…

Redis系列:内存淘汰策略

1 前言 通过前面的一些文章我们知道&#xff0c;Redis的各项能力是基于内存实现的&#xff0c;相对其他的持久化存储&#xff08;如MySQL、File等&#xff0c;数据持久化在磁盘上&#xff09;&#xff0c;性能会高很多&#xff0c;这也是高速缓存的一个优势。 但是问题来了&am…

【预测】小米汽车电子电气架构的猜想

文章目录 前言 整车EEA 硬件平台 软件平台 总结 参考资料 前言 见《【Review】小米汽车发布会》 整车EEA 小米汽车整车电子电气架构方面的信息&#xff0c;小米官方并没有对外介绍&#xff0c;但是从近日流出的整车BOM和供应商列表中看到&#xff0c;车上各种控制器一个都…

地下停车场FM覆盖系统技术方案

一、整体思路 根据我公司现场勘查与交流结果&#xff0c;建议采用数字选频模拟拉远的方式进行组网&#xff0c;建议采用我公司研发的一体化直放站&#xff0c;该直放站采用直放站与天线一体化设计&#xff0c;大大降低安装施工工作量&#xff0c;减少布线量&#xff0c;减少维护…