Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱喝水的木子
pytorch-doc-zh
提交
9504e889
P
pytorch-doc-zh
项目概览
爱喝水的木子
/
pytorch-doc-zh
与 Fork 源项目一致
Fork自
OpenDocCN / pytorch-doc-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pytorch-doc-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9504e889
编写于
3月 30, 2020
作者:
S
shunqiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
5 WRITING CUSTOM DATASETS, DATALOADERS AND TRANSFORMS
上级
d42c9cc4
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
19 addition
and
19 deletion
+19
-19
docs/1.4/5.md
docs/1.4/5.md
+19
-19
未找到文件。
docs/1.4/5.md
浏览文件 @
9504e889
...
...
@@ -8,7 +8,7 @@
**作者**
:
[
Sasank Chilamkurthy
](
https://chsasank.github.io
)
解决任何机器学习问题都需要花费大量精力来准备数据。 PyTorch 提供了许多工具来简化数据加载过程,并有望使代码更具可读性。 在本教程中,我们将了解如何从非
平凡
的数据集中加载和预处理/增强数据。
解决任何机器学习问题都需要花费大量精力来准备数据。 PyTorch 提供了许多工具来简化数据加载过程,并有望使代码更具可读性。 在本教程中,我们将了解如何从非
空
的数据集中加载和预处理/增强数据。
要运行本教程,请确保已安装以下软件包:
...
...
@@ -42,7 +42,7 @@ plt.ion() # interactive mode
Note
从
[
此处
](
https://download.pytorch.org/tutorial/faces.zip
)
下载数据集,
以使图像位
于名为“ data / faces /”的目录中。 该数据集实际上是通过对来自标记为“面部”的 imagenet 上的一些图像应用出色的
[
dlib 姿态估计
](
https://blog.dlib.net/2014/08/real-time-face-pose-estimation.html
)
生成的。
从
[
此处
](
https://download.pytorch.org/tutorial/faces.zip
)
下载数据集,
将图像存放
于名为“ data / faces /”的目录中。 该数据集实际上是通过对来自标记为“面部”的 imagenet 上的一些图像应用出色的
[
dlib 姿态估计
](
https://blog.dlib.net/2014/08/real-time-face-pose-estimation.html
)
生成的。
数据集带有一个带注释的 csv 文件,如下所示:
...
...
@@ -70,15 +70,15 @@ print('First 4 Landmarks: {}'.format(landmarks[:4]))
```
出:
输
出:
```
Image name: person-7.jpg
Landmarks shape: (68, 2)
First 4 Landmarks: [[32
\
. 65.]
[33
\
. 76.]
[34
\
. 86.]
[34
\
. 97.]]
First 4 Landmarks: [[32. 65.]
[33. 76.]
[34. 86.]
[34. 97.]]
```
...
...
@@ -176,7 +176,7 @@ for i in range(len(face_dataset)):
![
../_images/sphx_glr_data_loading_tutorial_002.png
](
img/80c0f612ddf710842d4cc31ee3c78da3.jpg
)
Out
:
输出
:
```
0 (324, 215, 3) (68, 2)
...
...
@@ -186,15 +186,15 @@ Out:
```
##
变身
##
Transforms 变换
从上面可以看到的一个问题是样本的大小不同。 大多数神经网络期望图像的大小固定。 因此,我们将需要编写一些
前置
代码。 让我们创建三个转换:
从上面可以看到的一个问题是样本的大小不同。 大多数神经网络期望图像的大小固定。 因此,我们将需要编写一些
预处理
代码。 让我们创建三个转换:
*
`Rescale`
:缩放图像
*
`RandomCrop`
:从图像中随机裁剪。 这是数据
扩充
。
*
`ToTensor`
:将 numpy 图像转换为
torch图像(
我们需要交换轴)。
*
`RandomCrop`
:从图像中随机裁剪。 这是数据
增强
。
*
`ToTensor`
:将 numpy 图像转换为
torch 图像(
我们需要交换轴)。
我们会将它们编写为可调用的类,而不是简单的函数,这样就不必每次调用转换时都传递其参数。 为此,我们只需要实现
`__call__`
方法,如果需要,可以实现
`__init__`
方法。 然后我们可以使用这样的变换:
我们会将它们编写为可调用的类,而不是简单的函数,这样就不必每次调用转换时都传递其参数。 为此,我们只需要实现
`__call__`
方法,如果需要,
还
可以实现
`__init__`
方法。 然后我们可以使用这样的变换:
```
tsfm = Transform(params)
...
...
@@ -322,7 +322,7 @@ plt.show()
*
从文件中即时读取图像
*
转换应用于读取的图像
*
由于其中一种转换是随机的,因此
在采样时会增加数据
*
由于其中一种转换是随机的,因此
数据是在采样时进行增强
我们可以像以前一样使用
`for i in range`
循环遍历创建的数据集。
...
...
@@ -345,7 +345,7 @@ for i in range(len(transformed_dataset)):
```
Out:
输出:
```
0 torch.Size([3, 224, 224]) torch.Size([68, 2])
...
...
@@ -358,10 +358,10 @@ Out:
但是,通过使用简单的
`for`
循环迭代数据,我们失去了很多功能。 特别是,我们错过了:
*
批量处理数据
*
整理
数据
*
打乱
数据
*
使用
`multiprocessing`
工作程序并行加载数据。
`torch.utils.data.DataLoader`
是提供所有这些功能的迭代器。 下面使用的参数应该清楚。 感兴趣的一个参数是
`collate_fn`
。 您可以使用
`collate_fn`
指定需要
精确分批的样品。 但是,默认排序规则
在大多数情况下都可以正常工作。
`torch.utils.data.DataLoader`
是提供所有这些功能的迭代器。 下面使用的参数应该清楚。 感兴趣的一个参数是
`collate_fn`
。 您可以使用
`collate_fn`
指定需要
如何精确地分批样品。 但是,默认精度
在大多数情况下都可以正常工作。
```
dataloader = DataLoader(transformed_dataset, batch_size=4,
...
...
@@ -403,7 +403,7 @@ for i_batch, sample_batched in enumerate(dataloader):
![
../_images/sphx_glr_data_loading_tutorial_004.png
](
img/f12c0231a67af28c3057e0ed3fa7f993.jpg
)
Out:
输出:
```
0 torch.Size([4, 3, 224, 224]) torch.Size([4, 68, 2])
...
...
@@ -451,7 +451,7 @@ dataset_loader = torch.utils.data.DataLoader(hymenoptera_dataset,
```
有关训练代码的示例,请参见
[
计算机视觉转
移
学习教程
](
transfer_learning_tutorial.html
)
。
有关训练代码的示例,请参见
[
计算机视觉转
换
学习教程
](
transfer_learning_tutorial.html
)
。
**脚本的总运行时间:**
(0 分钟 58.611 秒)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录