Python一点基础would be nice,但用的不多. 所以咱们就用完全傻瓜式写指南。
让能读懂语文的小学生就能上手学会。
源码: https://github.com/pytorch/pytorch 202405版本:2.3
各种级别的教程: https://github.com/pytorch/tutorials 还有 https://pytorch.org/tutorials/
初级: https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html 60分钟
Beginner Tutorials
-
blitz/* and deep_learning_60min_blitz.rst
Deep Learning with PyTorch: A 60 Minute Blitz
https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html -
former_torches/* and former_torchies_tutorial.rst
PyTorch for Former Torch Users
https://pytorch.org/tutorials/beginner/former_torchies_tutorial.html -
examples_/ and pytorch_with_examples.rst
Learning PyTorch with Examples
https://pytorch.org/tutorials/beginner/pytorch_with_examples.html -
transfer_learning_tutorial.py
Transfer Learning Tutorial
https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html -
nlp/* and deep_learning_nlp_tutorial.rst
Deep Learning for NLP with Pytorch
https://pytorch.org/tutorials/beginner/deep_learning_nlp_tutorial.html -
transformer_translation.py
Language Translation with Transformers
https://pytorch.org/tutorials/beginner/translation_transformer.html
中级:
Intermediate tutorials
-
tensorboard_tutorial.py
Classifying Names with a Character-Level RNN
https://pytorch.org/tutorials/intermediate/tensorboard_tutorial.html -
char_rnn_classification_tutorial.py
Classifying Names with a Character-Level RNN
https://pytorch.org/tutorials/intermediate/char_rnn_classification_tutorial.html -
char_rnn_generation_tutorial.py
Generating Names with a Character-Level RNN
https://pytorch.org/tutorials/intermediate/char_rnn_generation_tutorial.html -
seq2seq_translation_tutorial.py
Translation with a Sequence to Sequence Network and Attention
https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html -
reinforcement_q_learning.py
Reinforcement Learning (DQN) Tutorial
https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html -
dist_tuto.rst
Writing Distributed Applications with PyTorch
https://pytorch.org/tutorials/intermediate/dist_tuto.html -
spatial_transformer_tutorial
Spatial Transformer Networks Tutorial
https://pytorch.org/tutorials/intermediate/spatial_transformer_tutorial.html -
flask_rest_api_tutorial.py
Deploying PyTorch and Building a REST API using Flask
https://pytorch.org/tutorials/intermediate/flask_rest_api_tutorial.html -
nvfuser_intro_tutorial.py
Introduction to nvFuser
https://pytorch.org/tutorials/intermediate/nvfuser_intro_tutorial.html
高级:
Advanced Tutorials
-
neural_style_tutorial.py
Neural Transfer with PyTorch
https://pytorch.org/tutorials/advanced/neural_style_tutorial.html -
numpy_extensions_tutorial.py
Creating Extensions Using numpy and scipy
https://pytorch.org/tutorials/advanced/numpy_extensions_tutorial.html -
c_extension.rst
Custom C Extensions for PyTorch
https://pytorch.org/tutorials/advanced/c_extension.html -
super_resolution_with_onnxruntime.py
Exporting a Model from PyTorch to ONNX and Running it using ONNXRuntime
https://pytorch.org/tutorials/advanced/super_resolution_with_onnxruntime.html
深度学习的小学生指南
第一课:你好,电脑朋友!
目标:让小朋友对电脑和编程产生兴趣,学会一些基本的Python语法。
引起兴趣的方法:
- 故事导入:讲一个电脑和小朋友一起冒险的故事。
- 互动小游戏:让小朋友在电脑上试一试简单的指令,看到即时的结果。
课程内容:
- 你好,电脑!
- 目标:学会打开Python和输入基本指令。
- 材料:电脑,安装好Python的编辑器(如IDLE,Jupyter Notebook)。
故事:
小朋友们,你们有没有想过,电脑其实是一个很聪明的朋友?它能帮我们做很多有趣的事情,比如讲故事、画画、玩游戏。今天,我们要和电脑成为好朋友,让它帮我们做一个小小的魔法!
具体交互步骤:
- 认识Python:
- 引导:“你看到这个图标了吗?它是我们的魔法书。我们点击它,打开我们的魔法书(Python编辑器)。”
-
演示:演示如何打开Python编辑器。说:“看,这就是我们的魔法书。”
-
说第一个咒语:
- 引导:“现在,我们要对电脑说‘你好’。我们在这行字的地方输入
print("Hello, world!")
。小朋友,你也试试看!” - 等待小朋友输入。如果小朋友遇到困难,耐心指导。
-
解释:“这个咒语的意思是,电脑,请帮我说‘Hello, world!’。”
-
看魔法发生:
- 引导:“现在我们按回车键,看看会发生什么。”
- 小朋友按回车后,看到屏幕上显示
Hello, world!
。 - 赞扬:“太棒了!你成功地对电脑施展了你的第一个魔法!”
小游戏:
- 魔法咒语比赛:
- 引导:“我们再试试让电脑说别的话,比如
print("I love ice cream!")
。谁能想出最有趣的句子?” - 互动:让小朋友轮流输入不同的句子,大家一起看结果。
课程小结:
- 复习:“今天我们学会了怎么打开Python,怎么让电脑帮我们说话。我们用的是
print()
这个咒语。” - 小任务:“回家后,试着用
print()
让电脑说你最喜欢的一句话,并和家人分享。”
激励方式:
- 奖状:“每个小朋友完成任务后,可以得到一张‘魔法编程小达人’奖状。”
第二课:数字魔法师
目标:学习基本的数学运算。
引起兴趣的方法:
- 故事延续:电脑朋友今天要教我们一些数字魔法。
- 互动小游戏:通过简单的加减乘除运算,进行趣味比赛。
课程内容:
- 数字魔法:
- “我们的电脑朋友不仅会说话,还会做数学题哦!今天我们要学会怎么用电脑做加减乘除。”
具体交互步骤:
- 简单加法:
- 引导:“我们来试试加法。输入
print(5 + 3)
。你能试试吗?” - 等待小朋友输入。如果有困难,耐心指导。
-
解释:“这个咒语的意思是,电脑,请帮我算5加3是多少。”
-
更多运算:
- 引导:“我们再试试其他运算,输入
print(10 - 2)
,print(4 * 2)
,print(8 / 2)
。” - 解释:“
+
是加,-
是减,*
是乘,/
是除。每次我们用print()
都是在对电脑说,帮我算这个。”
小游戏:
- 数学小魔法比赛:
- 引导:“现在我们来比赛,看看谁能最快用Python算出这些题目:
print(7 + 3)
,print(9 - 4)
,print(6 * 2)
,print(8 / 2)
。” - 互动:小朋友们轮流输入,看谁最快完成。
课程小结:
- 复习:“今天我们学会了用Python做简单的加减乘除运算。我们用的是
print()
这个咒语。” - 小任务:“回家后,试着用Python做几道数学题,并和家人分享。”
激励方式:
- 徽章:“完成任务后,可以得到一个‘数字魔法师’徽章。”
通过这些具体的交互步骤,我们可以让小朋友们更容易理解和操作,让学习编程变得有趣和有成就感。
nn.Sequential
是 PyTorch 中的一个容器模块,它按照模块在构造函数中传入的顺序,依次包含多个子模块(可以是层、激活函数、dropout等)。在nn.Sequential中,数据会按照定义的顺序依次通过这些子模块。