Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
course
提交
f64b879f
C
course
项目概览
MindSpore
/
course
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
course
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f64b879f
编写于
5月 25, 2020
作者:
Z
zhengnengjin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify document
上级
028f3a13
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
13 deletion
+9
-13
experiment_3/3-Computer_Vision.md
experiment_3/3-Computer_Vision.md
+1
-6
experiment_4/4-Natural_Language_Processing.md
experiment_4/4-Natural_Language_Processing.md
+8
-7
未找到文件。
experiment_3/3-Computer_Vision.md
浏览文件 @
f64b879f
<h1
style=
"text-align:center"
>
计算机视觉应用
</h1>
## 实验介绍
本实验主要介绍使用MindSpore在CIFAR10数据集上训练ResNet50。本实验建议使用MindSpore model_zoo中提供的ResNet50。
...
...
@@ -72,11 +71,7 @@ experiment_3
## 实验步骤
参考MindSpore官网
[
计算机视觉应用
](
https://www.mindspore.cn/tutorial/zh-CN/0.1.0-alpha/advanced_use/computer_vision_application.html
)
教程,使用MindSpore在CIFAR10数据集上训练ResNet50,并进行验证。建议:
-
使用单卡训练即可;
-
理解并熟悉教程中涉及的源码;
-
使用MindSpore model_zoo中提供的ResNet50。
参考MindSpore官网
[
在云上使用MindSpore
](
https://www.mindspore.cn/tutorial/zh-CN/0.2.0-alpha/advanced_use/use_on_the_cloud.html
)
### 代码梳理
...
...
experiment_4/4-Natural_Language_Processing.md
浏览文件 @
f64b879f
...
...
@@ -3,7 +3,7 @@
## 实验介绍
本实验主要介绍使用MindSpore开发和训练
[
BERT
](
https://arxiv.org/pdf/1810.04805.pdf
)
模型。建议先了解MindSpore
官网上
model_zoo上的BERT模型。
本实验主要介绍使用MindSpore开发和训练
[
BERT
](
https://arxiv.org/pdf/1810.04805.pdf
)
模型。建议先了解MindSpore
model_zoo上的BERT模型。
## 实验目的
...
...
@@ -43,9 +43,9 @@
### 数据集准备
**预训练(pretrain)数据集**
:下载
[
zhwiki数据集
](
https://dumps.wikimedia.org/zhwiki
)
,使用
[
WikiExtractor
](
https://github.com/attardi/wi
l
kiextractor)进行预处理,然后使用
[
google-research/bert:create_pretraining_data.py
](
https://github.com/google-research/bert/blob/master/create_pretraining_data.py
)
将数据转为TFRecord格式;
**预训练(pretrain)数据集**
:下载
[
zhwiki数据集
](
https://dumps.wikimedia.org/zhwiki
)
,使用
[
WikiExtractor
](
https://github.com/attardi/wikiextractor
)
进行预处理,然后使用
[
google-research/bert:create_pretraining_data.py
](
https://github.com/google-research/bert/blob/master/create_pretraining_data.py
)
将数据转为TFRecord格式;
zhwiki为中文维基百科数据集,需要将其处理为具有上下文关系的句子对,然后基于词典vocab.txt对每个句子对进行token化,
然
后存储为特定数据格式(如Json、TFRecord、MindRecord)。
zhwiki为中文维基百科数据集,需要将其处理为具有上下文关系的句子对,然后基于词典vocab.txt对每个句子对进行token化,
最
后存储为特定数据格式(如Json、TFRecord、MindRecord)。
**微调(finetune)数据集**
:使用
[
CLUEbenchmark/CLUEPretrainedModels中的脚本
](
https://github.com/CLUEbenchmark/CLUEPretrainedModels/blob/master/baselines/models/bert/run_classifier_tnews.sh
)
下载、处理TNEWS数据集,并将数据转为TFRecord格式。
...
...
@@ -92,11 +92,11 @@ BERT(Bidirectional Encoder Representations from Transformers),即基于Tra
-
Transformer是一种注意力(Attention)机制,用来学习文本中单词上下文之间的关系;
-
双向是指通过Masked Language Model(MLM)方法,随机的掩盖掉句子中的某些单词,然后利用前后未掩盖的信息来预测掩盖的单词;
更多BERT的介绍可以参考
[
Link
](
https://www.jianshu.com/p/d110d0c13063
)
[
BERT
](
https://github.com/google-research/bert
)
模型包含由不同隐含层数(number hidden layers)和隐含层单元数(hidden size)构成的不同版本。
更多BERT的介绍可以参考
[
Link
](
https://www.jianshu.com/p/d110d0c13063
)
### 预训练BERT
[
BERT
](
https://github.com/google-research/bert
)
模型包含由不同隐含层数(number hidden layers)和隐含层单元数(hidden size)构成的不同版本。
通常情况下使用Bert需要预训练(pretrain)和微调(fine-tune)两个阶段。预训练BERT模型通常需要在大数据集上多卡并行训练多天。本实验先以部分zhwiki数据集为例展示预训练的过程。
通常情况下使用Bert需要预训练(pretrain)和微调(fine-tune)两个阶段。预训练BERT模型通常需要在大数据集上多卡并行训练多天。本实验先以部分zhwiki数据集为例展示预训练的过程。
BERT预训练阶段包含两个任务(两个输出):
...
...
@@ -108,7 +108,8 @@ BERT预训练阶段包含两个任务(两个输出):
model_zoo:Bert_NEZHA中包含两个模块:
-
`bert_for_pre_training.py`
:包含
`GetMaskedLMOutput`
,
`GetNextSentenceOutput`
,
`BertPreTraining`
,
`BertPretrainingLoss`
,
`BertNetworkWithLoss`
,
`BertTrainOneStepCell`
,
`BertTrainOneStepWithLossScaleCell`
;
-
`bert_model.py`
:包含
`BertModel`
依赖的
-
`bert_model.py`
:包含
`BertModel`
机器依赖的
`EmbeddingLookup`
,
`EmbeddingPostprocessor`
和
`BertTransformer`
(
`BertAttention->BertSelfAttention->BertEncoderCell`
)
`GetMaskedLMOutput`
接在BERT基础模型的后面,用于获取Mask LM的输出,
...
...
@@ -161,7 +162,7 @@ class BertNetworkWithLoss(nn.Cell):
`BertTrainOneStepCell`
在
`BertNetworkWithLoss`
上加上了反向传播和梯度更新(优化器),接收数据输入,更新模型权重。
`BertTrainOneStepWithLossScaleCell`
在此基础上引入了损失缩放(Loss Scaling)。损失缩放是为了应对反向传播过程中梯度数值较小,计算时(如采用FP16)会被当做0处理,所以先对Loss做一个放大,然后再对梯度进行缩小。
`bert_model.py`
中
`BertModel`
接收数据输入,经过
`
Embedding
Lookup`
,
`EmbeddingPostprocessor`
,
`BertTransformer`
和
`Dense`
计算后得到输出。
`bert_model.py`
中
`BertModel`
接收数据输入,经过
`Lookup`
,
`EmbeddingPostprocessor`
,
`BertTransformer`
和
`Dense`
计算后得到输出。

...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录