Windows系统配置pytorch环境,Jupyter notebook编辑器安装使用(深度学习本地篇)

news2025/2/11 14:22:11

如今现在好一点的笔记本都自带英伟达独立显卡,对于一些简单的深度学习项目,是不需要连接服务器的,甚至数据量不大的话,cpu也足够进行训练学习。我把电脑上一些以前的笔记整理一下,记录起来,方便自己35岁事业更进一步之后(失业之后)重新复习。因为实在不想动脑子去记这些东西,也不想每次换个电脑,或者到一个地方,就要满世界的找bug,翻一堆入门教程。

windows系统配置深度学习框架pytorch环境。

https://www.anaconda.com/download,官网下载最新版本。

1、anaconda安装和配置。

下载的时候注意两点,一点是安装的时候是选择just for me,这会涉及到权限问题,如果不慎选了for all user也没问题。另一点是跳过下载visual studio(因为不需要,而且visual studio占C盘太大了,而且只占c盘)

配置好后,加入三个环境变量,其中“D:\Anaconda”是我的自定义安装目录
在这里插入图片描述
为什么要用anaocnda创建虚拟python环境呢?
由于不同项目的下载使用的python包不一样,如果使用anaconda提供的全局环境下载的包用于所有python项目中,项目大了会出兼容问题。于是anaconda软件提供了一个创建不同python环境的功能,这些环境统称为虚拟环境,每个环境都可以自己指定python解释器的版本,所有虚拟环境之间相互隔离。

下载好anaconda,在win系统左下角找到anaconda poweshell prompt打开,这是anaconda的shell。或者cmd命令也可以(因为添加了环境变量),刚开始会进入一个默认创建的虚拟环境base。
在这里插入图片描述
只有在这个环境下才有权限创建其他的虚拟环境,不过一般不会去用这个base默认环境做项目。

如何使用虚拟环境呢?
就是运行代码之前,在选择python解释器的时候,我们选择conda环境下的自己创建的虚拟环境中的python.exe解释器。一般目录是…/anaconda3/envs/虚拟环境名称/pythonx.x.x.exe。无论是在vscode或者pycharm编辑器都是这样。另外,一个虚拟环境可应用于一个或者几个项目。

以下是一些常用conda命令:
conda env list 查看虚拟环境信息,带*是当前环境

conda config --show //查看conda的配置信息

conda create -n pytorch python=3.9.15 //意思创建一个名为pytorch 的环境,用的python是3.9.15版本

conda activate base //切换回base环境,用来切换环境

conda deactivate //退出此环境

conda remove --name pytorch --all //删除我的pytorch虚拟环境

conda install 包名 //下载包

conda uninstall 包名 //卸载

conda list // 当前虚拟环境都有哪些包

conda install --name pytorch numpy -y (这里的pytorch是指我创建的环境名,记住这条命令有时候很方便,在一些普通的terminal 中不能使用conda activate 命令,但却可以用其他命令的话,可以用这个命令下包)

我们一般用conda工具来管理创建和管理虚拟环境(conda工具也可以下载python工具包,但是它里面工具包的库不是很全,往往后面需要用pip下载)

假设我们要使用虚拟环境来做一个项目啊,并且项目是用python3.9.15版本。

1、左下角win图标,找到打开Anaconda prompt,默认是在base虚拟环境下,先创建一个虚拟环境,输入命令:
conda create -n pytorch python=3.9.15 //创建一个名为pytorch 的环境,指定python是3.9.15版本

输入y确定下载即可,然后它会自动下载依赖,包括python3.9.15解释程序
2、然后输入 conda activate pytorch 激活环境

PS:但是呢,然后,你如果输入命令conda config --show查看参数conda的各种参数!!!
你会发现里面envs_dir与pkgs_dir两个参数,二者指示你的环境信息,还有各种包安装路径在哪里。
然后你会发现一种情况,就是你新建的环境出现在电脑的C/Users/Windows 10/.conda/下面,而不是说在你自定义的安装anaocnda的envs目录下面。

我很讨厌任何占用我C盘的程序。由此,必须把它安装anaocnda的envs目录改成首要选项(我的是在D盘)才行。

具体操作:
首先删掉之前新建的环境,在命令行界面用命令conda remove --name pytorch --all删掉我之前创建的环境,然后在C/Users/用户名(一般为Window 1 0)下面有个文件.condarc,打开,然后在文件最后面加入你anaconda下的envs的路径 (以下为示例):

envs_dirs:
- D://Anaconda//env
pkgs_dirs:
- D://Anaconda//env

(我这里是 - D://Anaconda//envs ,注意斜杠),然后保存:
在这里插入图片描述
如图:
在这里插入图片描述
PS:pip3下载现在也是有虚拟环境约束的,我的practice虚拟环境用pip3下载的包在( D:\Anaconda\envs\practice\Lib\site-packages)类似的路径当中;所以conda下载不了的包,不会有依赖不兼容或者冲突的问题,直接用pip或者pip3下载吧。

2、pytorch安装和使用。

第一步、先看自己电脑有没有独立显卡硬件:
操作:任务打开管理器(或者在windwos的设备管理器也可以查看自己显卡的型号),显示更多信息,点击性能这里,像我这种远古机器显示带AMD字样的,就是不能加速的,有nvidia字样的就是可以加速的:
c08024584177c52022.png)
然后执行pytorch官网https://pytorch.org/中对应命令(选择好windows,conda下载方式等等,conda下不了就换pip),等待完成即可安装pytorch框架。因为我没有伟英达的独显GPU,只有联想自带的独显没用,所以运算平台这一项我就选CPU
在这里插入图片描述
对于有英伟达显卡的,我用GPT问了一下,他的回答是这样滴:
先安装英伟达显卡驱动的步骤如下:

访问英伟达官网https://www.nvidia.cn,根据你的显卡型号找到对应的驱动下载页面。

下载适用于你系统版本和显卡型号的最新驱动程序安装包。

解压下载的驱动安装包。

关闭所有其他程序。

右键点击解压后的安装文件,选择“使用管理员权限运行”。

在驱动安装向导中,点击“下一步”采用默认安装选项即可。

安装程序会自动卸载旧版本驱动,并安装新驱动。

安装完成后会提示你重启计算机,以使新驱动生效。

重启后,英伟达控制面板和其他功能将自动加载,此时驱动安装成功。

可以在cmd种,用 nvidia-smi 来查看自己显卡支持的最高cuda是什么版本,右上角的信息就是。
在这里插入图片描述

需要注意的是,每次升级驱动版本前需要卸载旧版本。另外,如果遇到任何问题,可以尝试使用英伟达驱动清除工具卸载后再安装驱动。

然后,再进入pytorch官网找到支持pytorch框架的cuda(针对某个GPU而做的驱动)驱动的conda或者pip命令。

然后打开命令行界面,激活自己创建的虚拟环境,在自己的虚拟环境下输入官网推荐的命令,下载cuda所需要的包。

下完之后,就用conda list或者pip list看下一下有没有torch包,或者键入python,进入Python解释器,执行import torch 再执行print(torch)两行代码,有返回信息就说明安装成功了。

Jupyter notebook的使用

这东西就是python一行输入一行输出的超级升级版。很方便用来教学和可视化分析代码过程,还能插入markdown代码。上课的作业估计都是用这个形式,实际上就是一个本地的网页进程而已,有浏览器就能使用。

每个环境都需要单独下载相应的工具包来才能使用jupyter notebook。
安装jupyter,首先用conda activate conda_name进入自己的conda_name虚拟环境中,然后执行下面的命令:

conda install nb_conda_kernels

(这个命令似乎是针对3.9以上的有效,里面是包含了下载新的jupyter notebook软件的)

启动jupyter,执行命令:

jupyter notebook

结果是弹出一个黑框。这个黑框不要关,这就相当于一个打开一个软件进程,关了的话jupyter进程也关掉了,然后这个进程会自动打开你的默认浏览器访问一个本地路径,进入到jupyter notebook编辑器界面。

(也有不顺利的时候,有时候输入命令jupyter notebook浏览器不会自动打开,可能是你浏览器的设置问题,直接手动复制那个黑框中http的路径自己在浏览器打开就可以。还有就是执行jupyter notebook 开启应用,然后你手动输入http路径,但是提示需要token,在弹出来的黑框中,有显示的token是什么,复制粘贴进去即可。最好是执行jupyter notebook之前在命令行中cd D:切换到你的项目的本地路径,不然他自动打开的目录是你的用户目录,当然也可以花时间去更改默认的打开目录,jupyter notebook切换默认的目录。
黑框:
在这里插入图片描述
浏览器中的jupyter,这里默认打开了目录C:\Users\Windows 10
然后按箭头提示,编辑前选择好你的虚拟环境的解释器新建编辑文件,后缀是ipynb:
在这里插入图片描述
jupyter可以写代码,还有markdown文本等等,还有命令行(这里按shift加enter即可运行或者显示当前行单元):
例如:
在这里插入图片描述
非常好用!

缺点就是没有专业编辑器的那种代码补全和提示,但跟vs code搭配会非常好用,可以弥补这点,而且vs code很轻便。操作是只需要在vscode中下载jupyter插件就可以打开和编辑ipynb文件了

但我觉得选择pycharm也还可以,因为pycharm集成的某个功能更齐全,他的远程连接还可以用本地的解释器跑,只要熟悉了来回切换很方便。

但pycahrm太大了,功能太多,有时候乱点了哪里我也不清楚,我实在是不太喜欢这种不确定性太多的感觉,一方面想用pycharm,一方面又不想用它。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

12/25 分析算法时间复杂度的基本方法

分析算法时间复杂度的基本方法: 若f(n)是m次多项式,则T(n)O() 忽略所有低次幂和最高次幂的系数,体现出增长率的含义! 1.找出语句频度最大的那条语句作为基本语…

Django(三)

1.快速上手 确保app已注册 【settings.py】 编写URL和视图函数对应关系 【urls.py】 编写视图函数 【views.py】 启动django项目 命令行启动python manage.py runserverPycharm启动 1.1 再写一个页面 2. templates模板

案例163:基于微信小程序的校园二手交易平台系统设计与开发

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

doris数据模型,06-Aggregate(聚合模型)

聚合模型的特点 将表中的列分为Key和Value。 Key是数据的维度列,比如时间,地区等等。key相同时会发生聚合。 Value是数据的指标列,比如点击量,花费等等。 每个指标列还会有自己的聚合函数,如:sum&#xff…

React学习计划-React16--React基础(六)路由

路由 一、版本5路由 1. react-router-dom 2. 路由的使用 1. 基础使用 安装&#xff1a;yarn add react-router-dom5明确好界面中的导航区、展示区导航区Link标签包裹 <Link to"/home">Home</Link>展示区写在Route标签进行匹配 <Route path/home …

Wi-Fi、蓝牙、ZigBee等多类型无线连接方式的安全物联网网关设计

随着物联网和云计算技术的飞速发展.物联网终端的数量越来越多&#xff0c;终端的连接方式也更趋多样化&#xff0c;比如 Wi-Fi蓝牙和 ZigBee 等。现有的物联网网关大多仅支持一种或者几种终端的接人方式。无法满足终端异构性的需求。同时&#xff0c;现有的物联网网关与终端设备…

2024 年网络安全展望:未来是什么?

为了建立强大的网络安全计划&#xff0c;组织必须首先了解整体威胁环境不断变化的性质。 人工智能在成为安全团队的帮助之前&#xff0c;将为网络犯罪分子带来巨大的福音。 网络犯罪分子和不良行为者将受益于先进人工智能工具的广泛部署&#xff0c;然后他们的目标才能建立人…

在x64上构建智能家居(home assistant) (六) 安装Node-RED Companion Integration

点击HACS 搜索node-red 右侧单击后点击安装 安装完成后, 选设备

手机蓝牙在物联网超市中的应用

超市一站式购物已进入城市的千家万户。然而人们在选购时却采用直接翻阅商品的方式&#xff0c;既不方便又不卫生甚至大大缩短食品类商品保质期&#xff0c;也给超市商品管理造成很大难度。物联网(The Internet of things)基于射频识别(RFID)、红外感应等技术&#xff0c;把物品…

路由器常见故障分析及处理方法!

对当前的大多数网络来说&#xff0c;无论是实现网络互连还是访问Internet&#xff0c;路由器是不可或缺的。 由于路由器的重要性&#xff0c;对它的管理就成了维护人员的日常工作中重要的一部分&#xff0c;而路由器的故障分析和排除也是令许多维护人员极为困扰的问题之一。 路…

助力打造清洁环境,基于轻量级YOLOv8开发构建公共场景下垃圾堆放垃圾桶溢出检测识别系统

公共社区环境生活垃圾基本上是我们每个人每天几乎都无法避免的一个问题&#xff0c;公共环境下垃圾投放点都会有固定的值班时间&#xff0c;但是考虑到实际扔垃圾的无规律性&#xff0c;往往会出现在无人值守的时段内垃圾堆放垃圾桶溢出等问题&#xff0c;有些容易扩散的垃圾比…

【AI故事】灵感的源泉还是知识的盗窃?

灵感的源泉还是知识的盗窃&#xff1f; ——ChatGPT Robot在一个漆黑的夜晚&#xff0c;年轻的作家艾米丽坐在书桌前&#xff0c;手里紧握着一支笔&#xff0c;思绪万千。她一直在寻找创作的灵感&#xff0c;但却毫无头绪。 突然&#xff0c;她听到了一声巨响&#xff0c;仿佛…

pycharm连接虚拟机

前言&#xff1a;我们默认用户已经在虚拟机上安装好了spark等相关集群和生态&#xff0c;是可以在虚拟机中运行相关的操作&#xff0c;比如mapper&#xff0c;reducer操作&#xff0c;rdd&#xff0c;dataframe等等杂七杂八的东西的(主要我也没太明白)。本人是学校老师带着装的…

基于STM32和MQ-2传感器的物联网友好型烟雾报警系统

基于STM32和MQ-2传感器的物联网友好型烟雾报警系统是一种用于检测室内烟雾并及时报警的智能设备。本系统利用STM32微控制器作为主控制单元&#xff0c;通过MQ-2传感器实时监测室内烟雾浓度&#xff0c;并通过无线通信模块将数据传输到云端服务器&#xff0c;实现远程监控和报警…

nodejs微信小程序+python+PHP的旅游景点推荐系统-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Django-REST-Framework 如何快速生成Swagger, ReDoc格式的 REST API 文档

1、API 接口文档的几种规范格式 前后端分离项目中&#xff0c;使用规范、便捷的API接口文档工具&#xff0c;可以有效提高团队工作效率。 标准化的API文档的益处&#xff1a; 允许开发人员以交互式的方式查看、测试API接口&#xff0c;以方便使用将所有可暴露的API接口进行分…

Android---Kotlin 学习009

继承 在 java 里如果一个类没有被 final 关键字修饰&#xff0c;那么它都是可以被继承的。而在 kotlin 中&#xff0c;类默认都是封闭的&#xff0c;要让某个类开放继承&#xff0c;必须使用 open 关键字修饰它&#xff0c;否则会编译报错。此外在子类中&#xff0c;如果要复写…

Vim 到底原来可以配置得如此漂亮!

高考志愿、考研保研、职业规划、简历优化&#xff0c;欢迎加入《猴哥成长营》&#xff01; https://www.yuque.com/jackpop/ulig5a/srnochggbsa2eltw?singleDoc 上大学时&#xff0c;特别喜欢折腾&#xff0c;不厌其烦。 对于Linux、vim这些&#xff0c;可以一遍又一遍的进行…

关于Sneaky DogeRAT特洛伊木马病毒网络攻击的动态情报

一、基本内容 作为复杂恶意软件活动的一部分&#xff0c;一种名为DogeRAT的新开源远程访问特洛伊木马&#xff08;RAT&#xff09;主要针对位于印度的安卓用户发动了网络安全攻击。该恶意软件通过分享Opera Mini、OpenAI ChatGOT以及YouTube、Netfilx和Instagram的高级版本等合…

Java中synchronized锁升级过程是什么样的

参考文章一 参考文章二 参考文章三 在Java中&#xff0c;对象锁的状态是为了减少同步操作的开销而设计的&#xff0c;主要包括无锁、偏向锁、轻量级锁和重量级锁几个级别。锁的状态会随着竞争情况的不同而升级&#xff0c;但是不会降级。以下是锁状态的一般升级过程&#xff1…