【随笔记】Win11、RTX3070、CUDA117的深度学习机器学习环境配置

news/2025/2/19 9:14:58/

文章目录

  • 一、创建深度学习 Conda 虚拟环境
  • 二、安装 Pytorch-Gpu
  • 三、安装 PyTorch Geometric
  • 四、安装 Sklearn
  • 五、Jupyter 配置
    • 5.1 将虚拟环境加入内核
    • 5.2 插件配置
    • 5.3 主题、字体、字号配置


假设你已经安装了Anaconda3(最新Anaconda3的安装配置及使用教程(详细过程))

假设你已经配置好了cuda和cudann环境(pytorch gpu版本的最全安装教程,含环境配置、CUDA(百度云下载)安装程序失败解决方案)


一、创建深度学习 Conda 虚拟环境

在base环境下,创建python版本为3.9.16的,名为dl_pytorch的虚拟环境

conda create --name dl_pytorch python=3.9.16

在这里插入图片描述
在这里插入图片描述
进入dl_pytorch环境

conda activate dl_pytorch

查看环境中的python版本

python

最后按ctrl+z退出python

在这里插入图片描述

到这里,深度学习的虚拟环境就初步搭建好啦!


二、安装 Pytorch-Gpu

去这个网站下载Pytorch相关的轮子(我试了很多方法,其他方法安装完后GPU总是不可用,用轮子安装一次成功!):https://download.pytorch.org/whl/torch_stable.html

在这里插入图片描述

下载好轮子之后,在虚拟环境中按照顺序执行下面的命令安装(注意换成你的轮子路径 pip install 你的.whl文件地址

下面是我安装时候的命令(仅供参考):

pip install D:\WSKH\Package\Python\pytorch\torch-1.13.1+cu117-cp39-cp39-win_amd64.whl
pip install D:\WSKH\Package\Python\pytorch\torchvision-0.14.1+cu117-cp39-cp39-win_amd64.whl
pip install D:\WSKH\Package\Python\pytorch\torchaudio-0.13.1+cu117-cp39-cp39-win_amd64.whl

在这里插入图片描述

安装完成,进行测试

python
import torch
torch.cuda.is_available()
torch.cuda.get_device_name(0)
torch.rand(3, 3).cuda()

在这里插入图片描述

如果显示和上图一样,那么你也大功告成了!

三、安装 PyTorch Geometric

注意: 千万不要直接pip install 去安装这个库!!!否则很可能会有问题!!!

进入这个GitHub网址: https://github.com/pyg-team/pytorch_geometric

进入页面后往下滑,找到如下图所示的字样,点击here
在这里插入图片描述

选择你电脑中已经安装的torch版本(一定要和你已经安装的torch版本一致),我安装的是torch-1.13.1+cu117,所以就选下图红框中的了

在这里插入图片描述

怎么查看torch版本?

pip show torch

在这里插入图片描述

选择完正确的torch版本后,会进入下面的界面,一共有4个不同的.whl文件,每一种选一个符合你的版本下载即可

例如:torch_cluster-1.5.9-cp36-cp36m-win_amd64.whl 指的是python为3.6的windows版本

在这里插入图片描述
我的电脑是windows的,前面创建的环境的python版本为3.9.16,所以我下载的四个包如下图所示:

在这里插入图片描述

下载好之后,直接pip install 你的.whl文件地址

下面是我安装时候的命令(仅供参考):

pip install D:\WSKH\Package\Python\pyg\torch_cluster-1.6.0+pt113cu117-cp39-cp39-win_amd64.whl
pip install D:\WSKH\Package\Python\pyg\torch_scatter-2.1.0+pt113cu117-cp39-cp39-win_amd64.whl
pip install D:\WSKH\Package\Python\pyg\torch_sparse-0.6.16+pt113cu117-cp39-cp39-win_amd64.whl
pip install D:\WSKH\Package\Python\pyg\torch_spline_conv-1.2.1+pt113cu117-cp39-cp39-win_amd64.whl

最后,一定要等上面四步完成之后,再执行下面的操作

pip install torch-geometric

在这里插入图片描述
在这里插入图片描述

至此,Pyg 安装完毕!下面进行测试(下面的代码需要安装 networkx 和matplotlib 库,这两个库直接 conda install 安装即可):

conda installl matplotlib
conda install networkx
import os
from torch_geometric.datasets import KarateClub
from torch_geometric.utils import to_networkx
import networkx as nx
import matplotlib.pyplot as plt# 画图函数
def visualize_graph(G, color):plt.figure(figsize=(7, 7))plt.xticks([])plt.yticks([])nx.draw_networkx(G, pos=nx.spring_layout(G, seed=42), with_labels=False,node_color=color, cmap="Set2")plt.show()# 画点函数
def visualize_embedding(h, color, epoch=None, loss=None):plt.figure(figsize=(7, 7))plt.xticks([])plt.yticks([])h = h.detach().cpu().numpyplt.scatter(h[:, 0], h[:, 1], s=140, c=color, cmap="Set2")if epoch is not None and loss is not None:plt.xlabel(f'Epoch:{epoch},Loss:{loss.item():.4f}', fontsize=16)plt.show()if __name__ == '__main__':# 不加这个可能会报错os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'dataset = KarateClub()print(f'Dataset:{dataset}:')print('=' * 30)print(f'Number of graphs:{len(dataset)}')print(f'Number of features:{dataset.num_features}')print(f'Number of classes:{dataset.num_classes}')print('=' * 30)data = dataset[0]# train_mask = [True,False,...] :代表第1个点是有标签的,第2个点是没标签的,方便后面LOSS的计算print(data)  # Data(x=[节点数, 特征数], edge_index=[2, 边的条数], y=[节点数], train_mask=[节点数])G = to_networkx(data, to_undirected=True)visualize_graph(G, color=data.y)

输出:

Dataset:KarateClub():
==============================
Number of graphs:1
Number of features:34
Number of classes:4
==============================
Data(x=[34, 34], edge_index=[2, 156], y=[34], train_mask=[34])

在这里插入图片描述


四、安装 Sklearn

conda install scikit-learn

安装完后,执行 pip show scikit-learn 查看版本

在这里插入图片描述


五、Jupyter 配置

5.1 将虚拟环境加入内核

在 base 环境安装 nb_conda_kernels(这里可以用conda安装,我试了ok)

conda install nb_conda_kernels

进入 dl_pytorch 虚拟环境,安装 ipykernel(注意:这里我是pip安装,网上大部分教程都是conda安装,但是我实际操作下来,每次conda安装完,再conda info、install等都会报错,试了七八次都是这样,所以最后尝试了pip,结果就成功了)

pip install ipykernel

然后启动 jupyter,就能看到 conda 虚拟环境了

在这里插入图片描述

5.2 插件配置

具体操作可以参考博客:

  • 推荐10个好用到爆的Jupyter Notebook插件,让你效率飞起
  • Jupyter Notebook的16个超棒插件!

不过需要注意的是,操作都在 base 环境下进行,并且pip install最好改成 conda install,实在不行再 pip install

5.3 主题、字体、字号配置

参考博客:

  • Jupyter Notebook如何修改主题、字体、字号?分分钟搞定!!!

注意:如果你没有C:\Users\user.jupyter\custom\custom.css文件夹,自己手动创建一个就好。

分享一下我的 custom.css

/* Body */
/* #notebook-container {width: 60%
} *//* Markdown */
div#notebook {font-family: san francisco, "PingFangSC-Medium", "Microsoft YaHei";line-height: 20px;-webkit-font-smoothing: antialiased !important;
}/* Markdown - h2 */
div#notebook h2 {color: #007aff;
}/* Markdown - quote */
div#notebook blockquote{background-color: #f8f8f8;color: #505050;padding: 8.5px;margin: 0.5em -0.5em 0.5em -0.4em;
}/* Markdown - code in paragraph */
div#notebook p code, div#notebook li code {font-family: Consolas, "PingFangSC-Medium", "Microsoft YaHei";font-size: 1em !important;color: #111111;border: 0.5px solid #cfcfcf;border-radius: 2px;background-color: #f7f7f7;padding: .1em .2em;margin: 0px 2px;
}/* Markdown - code */
div.text_cell_render pre {border: 1px solid #cfcfcf;border-radius: 2px;background: #f7f7f7;line-height: 1.21429em;padding: 8.5px;margin: 0.5em -0.5em 0.5em -0.4em;
}
div.text_cell_render code {background: #f7f7f7;
}/* Code */
div.CodeMirror pre {font-family: Consolas, "PingFangSC-Medium", "Microsoft YaHei";font-size: 11pt;line-height: 140%;-webkit-font-smoothing: antialiased !important;
}/*这里修改的是Code里的方字大小*/
pre.CodeMirror-line{font-family: Consolas, "PingFangSC-Medium", "Microsoft YaHei" !important;font-size: 16px !important;line-height: 140%;} /* Code - output */
div.output pre {font-family: Consolas, "PingFangSC-Medium", "Microsoft YaHei";line-height: 20px;-webkit-font-smoothing: antialiased !important;
}/* Code - comment */
span.cm-comment {font-family: Consolas, "PingFangSC-Medium", "Microsoft YaHei" !important;font-style: normal !important;
}/* Code - highlighting (grade3)*/
.cm-s-ipython .CodeMirror-cursor {border-left: 1px solid #ff711a !important;
}
.cm-s-ipython span.cm-comment {color: #8d8d8d;font-style: italic;
}
.cm-s-ipython span.cm-atom {color: #055be0;
}
.cm-s-ipython span.cm-number {color: #ff8132;
}
.cm-s-ipython span.cm-property {color: #303030;
}
.cm-s-ipython span.cm-attribute {color: #303030;
}
.cm-s-ipython span.cm-keyword {color: #713bc5;font-weight: bold;
}
.cm-s-ipython span.cm-string {color: #009e07;
}
.cm-s-ipython span.cm-meta {color: #aa22ff;
}
.cm-s-ipython span.cm-operator {color: #055be0;
}
.cm-s-ipython span.cm-builtin {color: #e22978;
}
.cm-s-ipython span.cm-variable {color: #303030;
}
.cm-s-ipython span.cm-variable-2 {color: #de143d;
}
.cm-s-ipython span.cm-variable-3 {color: #aa22ff;
}
.cm-s-ipython span.cm-def {color: #e22978;font-weight: bold;
}
.cm-s-ipython span.cm-error {background: rgba(191, 97, 106, .40);
}
.cm-s-ipython span.cm-tag {color: #e22978;
}
.cm-s-ipython span.cm-link {color: #ff8132;
}
.cm-s-ipython span.cm-storage {color: #055be0;
}
.cm-s-ipython span.cm-entity {color: #e22978;
}
.cm-s-ipython span.cm-quote {color: #009e07;
}
div.CodeMirror span.CodeMirror-matchingbracket {color: #1c1c1c;background-color: rgba(30, 112, 199, .30);
}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #1c1c1c;background: rgba(191, 97, 106, .40) !important;
}
.cm-s-default .cm-hr {color: #055be0;
}

最终效果

在这里插入图片描述


http://www.ppmy.cn/news/41424.html

相关文章

Bayesian Rstan学习资料推荐

RStan 官方文档:RStan 官方文档是学习 RStan 的起点。它提供了详细的安装说明、基本用法和示例。 RStan 文档: https://mc-stan.org/rstan/ RStan User’s Guide: https://mc-stan.org/docs/2_27/rstan-guide/index.html Stan 用户指南:Stan 用户指南详…

代码随想录Day50

昨天因为准备面试所以咕咕了一天。今天继续学习动规算法,尽管背包问题已经结束但其中的各类思想仍需要进一步理解。 198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房…

异步编程

异步编程 一、FutureTask应用&源码分析 1.1 FutureTask介绍 FutureTask是一个可以取消异步任务的类。FutureTask对Future做的一个基本实现。可以调用方法区开始和取消一个任务。 一般是配合Callable去使用。 异步任务启动之后,可以获取一个绑定当前异步任务的FutureT…

【kubernetes云原生】k8s资源管理命令与Namespace使用详解

目录 一、前言 二、k8s概述 三、k8s常用操作管理命令 3.1 kubectl 命令用法 3.2 常用控制台管理命令演示 3.2.1 获取全部节点信息 3.2.2 获取当前集群下全部pod 3.2.3 查看某个pod信息 3.2.4 获取当前集群下的所有namespace信息 3.2.5 查看当前集群下已创建的资源 3…

Spring Boot 3.0系列【26】应用篇之参数校验

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.5 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 1. 概述2. Bean Validation3. 常用注解4. 入门案例5. 分组校验6. 自定义校验注解6.1 原生注解6.2 实现验证器接口6.3 创建…

中间表示- 控制流图

基本概念 基本块:是语句的一个序列,从第一条执行到最后一条 不能从中间进入,不能从中间退出,即跳转指令只能出现在最后 控制流图:控制流图是一个有向图G(V,E) 节点V:是基本块边E:…

入职字节跳动后,才知道年薪 40w 的测试工程师有这么多?

最近脉脉职言区有一条讨论火了: “哪家互联网公司薪资最‘厉害’?” 下面的评论多为字节跳动,还炸出了很多年薪 40w、50w的 90 后们。 我只想问一句,现在的年轻人都这么有钱了吗? 前几天有个朋友跟我说&#xff0c…

详细讲讲Java线程的状态

TERMINATED状态 是什么状态? 在Java线程的生命周期中,TERMINATED状态是线程的最终状态,表示线程已经执行完毕并已经退出。当一个线程完成了它的工作,或者因为异常而提前结束时,它会进入TERMINATED状态。此时线程不再执…