文章目录
-
-
- 1. 什么是张量 (Tensor),它与 NumPy 数组有什么区别?
- 2. 如何创建一个随机初始化的张量?
- 3. 自动求导是如何工作的?
- 4. 如何保存和加载模型?
- 5. 数据预处理有哪些常用的方法?
- 6. DataLoader 是什么作用?
- 7. 损失函数的作用是什么?如何定义自定义损失函数?
- 8. Optimizer 的主要职责是什么?
- 9. 如何冻结某些层不参与训练?
- 10. Dropout 层的功能是什么?
- 11. Batch Normalization 的工作原理是什么?
- 12. 如何调试模型中的错误?
- 13. CUDA 设备上的运算需要注意哪些事项?
- 14. 学习率调度器的意义是什么?
- 15. TensorBoard 可以用来做什么?
- 16. RNN/LSTM/GRU 的应用场景有哪些?
- 17. Transformer 架构的特点是什么?
- 18. 训练过程中遇到内存不足怎么办?
- 19. 过拟合的表现形式及其解决方案有哪些?
- 20. 怎样评估分类模型的效果?
-
PyTorch 是一个开源的机器学习库,主要用于进行计算机视觉(CV)、自然语言处理(NLP)、语音识别等领域的研究和开发;PyTorch 以其灵活性和易用性而闻名,特别适合于深度学习研究和开发。
1. 什么是张量 (Tensor),它与 NumPy 数组有什么区别?
张量是 PyTorch 中的核心数据结构,用于表示多维数组。虽然张量类似于 NumPy 数组,但它具有更强大的功能,比如支持 GPU 加速计算和自动求导机制。
import torch
tensor = torch.tensor([[1, 2], [3, 4]])
print(tensor)
2. 如何创建一个随机初始化的张量?
可以使用 torch.rand
或其他类似的函数来生成随机张量。
random_tensor = torch.rand(3, 3) # 创建一个形状为 (3, 3) 的随机张量
print(random_tensor)
3. 自动求导是如何工作的?
PyTorch 提供了一个名为 Autograd 的模块,能够通过跟踪操作记录并构建动态计算图,从而实现梯度的自动计算。当调用 .backward()
方法时,会触发反向传播过程。
x = torch.tensor([2.0], requires_grad=True)
y = x ** 2 + 3 * x + 1
y.backward()
print(x.grad) # 输出梯度 dy/dx
4. 如何保存和加载模型?
可以通过 torch.save
和 torch.load
来分别保存和加载模型的状态字典或整个模型对象。
# 保存模型参数
torch.save