《PyTorch面试精华》


1 前言
    1.1  PyTorch安装

    1.2  显卡驱动的困惑

    1.3  CUDA安装注意事项

    1.4  cuDNN的介绍

    1.5  Pytorch Lightning介绍

    1.6  PyTorch学习之道

    1.7  PyTorch快速入门

    1.8  PyTorch调参之道

    1.9  PyTorch调参套件

    1.10  手动创建虚拟环境

2 深度学习之数学基础
    2.1  希腊字母解读

    2.2  梯度的物理意义

    2.3  图解梯度下降法

    2.4  图解梯度上升法

    2.5  自然梯度

    2.6  泰勒公式的介绍

    2.7  信息与信息熵

    2.8  重要性采样

    2.10  欧几里得范数

    2.11  特征值和特征向量

    2.12  似然函数的理解

    2.13  矩阵秩的深刻理解

3 PyTorch入门疑难点
4 PyTorch全局设置
    4.1  全局设置当前设备

    4.2  全局设置浮点精度

5 PyTorch GPU分布式训练
    5.1  PyTorch GPU基础操作

    5.2  DataParallel用法详解

    5.3  GPU分布式训练模型

    5.4  CUDA_VISIBLE_DEVICES

    5.5  device详细说明

    5.6  to(device)和.cuda()

    5.7  CUDA设备索引

    5.8  GPU设备索引

6 向量的基础与核心
    6.1  Tensor的组成与存储

    6.2  Tensor的grad属性

    6.4  Tensor的叠加

    6.5  禁用梯度计算

    6.6  向量的保存和加载

    6.7  参数向量

    6.8  叶子节点

    6.9  detach原理

    6.10  requires_grad属性

    6.11  Tensor与Numpy互换

    6.12  张量cat操作

    6.13  零维张量

    6.15  squeeze/unsqu...函数

    6.16  argmax和max的区别

    6.17  torch.as_tensor的应用

7 神经网络基础
    7.2  PyTorch计算图

    7.3  查看网络权重参数

    7.4  保存模型

    7.5  Adam相关面试题

    7.6  Train模式和Eval模式

    7.7  线性网络

    7.8  双线性网络

    7.9  惰性线性层

    7.10  PyTorch中的自动微分

    7.12  Dropout机制

    7.13  半精度训练

    7.14  Xavier初始化

    7.15  注意力机制

    7.16  Dataset数据处理

    7.17  StepLR学习率调度器

    7.18  词嵌入的理解

    7.19  TensorDataset的使用

    7.20  模型的保存与加载

    7.21  ModuleList和Sequential

    7.22  Batch Normalization介绍

8 计算机视觉基础知识
    8.1  通道的深刻理解

    8.2  1x1卷积的作用

    8.3  特征提取和可视化

    8.4  反卷积的推导

    8.5  理解卷积

    8.7  空洞卷积

    8.8  池化层的作用

    8.9  感受野与特征图

    8.10  NMS算法

    8.11  特征图尺寸计算

9 循环神经网络基础
    9.2  RNN的介绍

10 注意力机制
    10.1  位置编码的作用

    10.2  位置编码的种类

    10.4  Embedding本质理解

    10.6  Transformer VS CNN/RNN

    10.7  ELMo介绍

11 PyTorch归一化
    11.2  层归一化技术详解

12 激活函数相关内容
    12.1  激活函数简介

    12.2  万能逼近定理

    12.3  指数函数的学习

    12.4  Sigmoid函数的介绍

    12.5  Tanh函数的介绍

    12.6  Softmax函数的实现

    12.7  ReLU函数的介绍

    12.8  Leaky Relu函数的介绍

    12.9  ReLu与非线性的理解

    12.10  Parametric ReLU函数

    12.11  ELU函数介绍

    12.12  神经元死亡的问题

13 思考题的答案
    13.1  思考题的答案解密

在PyCharm中手动创建虚拟环境

创建时间:2026-05-08 更新时间:2026-05-08 阅读次数:1074 次

1、虚拟环境的作用

Python虚拟环境就像一个独立的“隔间”,让你能为不同的项目创建互不干扰的Python运行空间。其核心作用如下所示:

  • 避免依赖冲突:项目A需要用Django 1.0,项目B需要用Django 2.0,如果都装到电脑上会冲突。虚拟环境可以为每个项目单独安装,完美避免这个问题。

  • 保持全局环境干净:防止因乱装包导致操作系统依赖的Python环境出问题。

  • 保证项目可复现:通过导出依赖清单(requirements.txt),可以让团队成员或服务器一键安装完全相同的依赖,告别“在我电脑上是好的”这样的问题。

2、操作虚拟环境的常用命令

Python 3.3及以上版本自带venv模块,直接在终端里运行下面这些命令就行。

类别常用命令说明
1. 创建环境python -m venv .venv在当前目录下创建名为.venv的虚拟环境(.venv是常见的命名,你也可以用别的名字
2. 激活环境Windows: .venv\Scripts\activate
macOS/Linux: source .venv/bin/activate
激活后,终端提示符前会出现(.venv)标识,表示已进入环境
3. 安装包pip install 包名
(例如:pip install requests
在激活的环境里,用pip安装的包都只在这个环境内生效
4. 退出环境deactivate退出当前虚拟环境,回到系统默认的Python环境
5. 删除环境直接删除对应的文件夹即可因为没有注册表残留,所以直接删除文件夹是最干净彻底的方式

导出/安装依赖清单

生成依赖清单:pip freeze > requirements.txt

在新的环境中安装所有依赖:pip install -r requirements.txt

3、PyCharm 自动创建虚拟环境

4、PyCharm 手动创建虚拟环境

PyCharm 虽然在创建项目时尝试生成 venv 文件夹,但这个步骤可能因为权限、路径等原因失败了。既然 PyCharm 自动创建的虚拟环境没有生效,我们可以手动配置一个。步骤如下:

第一步:在项目根目录手动创建虚拟环境

打开 PyCharm 底部的 Terminal 终端

确认当前路径是你的项目目录 D:\python-workspace1\mytest1

执行以下命令手动创建虚拟环境:

python -m venv venv

这个命令会在你的项目目录下创建一个名为 venv 的文件夹,里面就是独立的虚拟环境。

第二步:在 PyCharm 中关联这个虚拟环境

虚拟环境文件夹创建好后,需要在 PyCharm 中把它设置为当前项目的解释器:

打开 File → Settings(Windows)或 PyCharm → Preferences(Mac)

左侧导航栏找到 Project: mytest1 → Python Interpreter

点击右上角的 ⚙️ 齿轮图标 → Add...(或 Add Interpreter)

在弹出的窗口中选择 Existing environment

点击 ... 浏览按钮,找到刚刚创建的虚拟环境中的 Python 可执行文件:

Windows 路径:D:\python-workspace1\mytest1\venv\Scripts\python.exe

选择好文件后点击 OK

第三步:验证配置是否成功

配置完成后,在 PyCharm 的 Python Interpreter 设置页面应该能看到:

解释器路径显示为 ...\mytest1\venv\Scripts\python.exe

下方列出的是虚拟环境中的包,初始时很少,只有 pip 和 setuptools。

本教程共117节,当前为第10节!
本教程最新修订时间为:2026-05-08 11:10:53