diff --git a/TensorFlow/built-in/recommendation/DIEN_ID0109_for_TensorFlow/README.md b/TensorFlow/built-in/recommendation/DIEN_ID0109_for_TensorFlow/README.md
index c690b6b5332c4638e3c0b864af5a9126c14ff701..19106617a7959682666d3ed86c70646032c51f19 100644
--- a/TensorFlow/built-in/recommendation/DIEN_ID0109_for_TensorFlow/README.md
+++ b/TensorFlow/built-in/recommendation/DIEN_ID0109_for_TensorFlow/README.md
@@ -1,14 +1,111 @@
-# Deep Interest Evolution Network for Click-Through Rate Prediction
-https://arxiv.org/abs/1809.03672
-## prepare data
-### method 1
-You can get the data from amazon website and process it using the script
+- [基本信息](#基本信息.md)
+- [概述](#概述.md)
+- [训练环境准备](#训练环境准备.md)
+- [快速上手](#快速上手.md)
+- [迁移学习指导](#迁移学习指导.md)
+- [高级参考](#高级参考.md)
+
+
基本信息
+
+**发布者(Publisher):Huawei**
+
+**应用领域(Application Domain):Recommendation**
+
+**版本(Version):1.1**
+
+**修改时间(Modified) :2022.04.08**
+
+**大小(Size)**_**:220Kb**
+
+**框架(Framework):TensorFlow 1.15.0**
+
+**模型格式(Model Format):ckpt**
+
+**精度(Precision):Mixed**
+
+**处理器(Processor):昇腾910**
+
+**应用级别(Categories):Research**
+
+**描述(Description):基于TensorFlow框架的DIEN网络训练代码**
+
+- 参考论文:
+
+ https://arxiv.org/abs/1809.03672
+
+- 参考实现:
+
+ https://github.com/mouna99/dien
+
+- 适配昇腾 AI 处理器的实现:
+
+ https://gitee.com/ascend/ModelZoo-TensorFlow/tree/master/TensorFlow/built-in/recommendation/DIEN_ID0109_for_TensorFlow
+
+- 通过Git获取对应commit\_id的代码方法如下:
+
+ ```
+ git clone {repository_url} # 克隆仓库的代码
+ cd {repository_name} # 切换到模型的代码仓目录
+ git checkout {branch} # 切换到对应分支
+ git reset --hard {commit_id} # 代码设置到对应的commit_id
+ cd {code_path} # 切换到模型代码所在路径,若仓库下只有该模型,则无需切换
+ ```
+
+## 默认配置
+- 网络结构
+
+ - 学习率为0.001
+ - 优化器:adam
+ - 单卡batchsize:128
+ - 总step数为25400
+
+- 训练超参(单卡):
+ - Batch size: 128
+ - Learning rate\(LR\): 0.0001
+ - Train epochs:1
+ - Trainsteps:25400
+
+## 支持特性
+
+| 特性列表 | 是否支持 |
+| ---------- | -------- |
+| 分布式训练 | 否 |
+| 混合精度 | 是 |
+| 数据并行 | 否 |
+
+
+## 混合精度训练
+
+昇腾910 AI处理器提供自动混合精度功能,可以针对全网中float32数据类型的算子,按照内置的优化策略,自动将部分float32的算子降低精度到float16,从而在精度损失很小的情况下提升系统性能并减少内存使用。
+
+## 开启混合精度
+相关代码示例。
+
+```
+config_proto = tf.ConfigProto(allow_soft_placement=True)
+ custom_op = config_proto.graph_options.rewrite_options.custom_optimizers.add()
+ custom_op.name = 'NpuOptimizer'
+ custom_op.parameter_map["use_off_line"].b = True
+ custom_op.parameter_map["precision_mode"].s = tf.compat.as_bytes("allow_mix_precision")
+ config_proto.graph_options.rewrite_options.remapping = RewriterConfig.OFF
+ session_config = npu_config_proto(config_proto=config_proto)
```
-sh prepare_data.sh
+训练环境准备
+
+- 硬件环境和运行环境准备请参见《[CANN软件安装指南](https://support.huawei.com/enterprise/zh/ascend-computing/cann-pid-251168373?category=installation-update)》
+- 运行以下命令安装依赖。
```
-### method 2 (recommended)
-Because getting and processing the data is time consuming,so we had processed it and upload it for you. You can unzip it to use directly.
+pip3 install requirements.txt
```
+说明:依赖配置文件requirements.txt文件位于模型的根目录
+
+
+快速上手
+
+## 数据集准备
+
+1. 可以从"参考实现"中的源码链接里下载数据集
+2. 下载好数据集后可以解压到本地目录下
tar -jxvf data.tar.gz
mv data/* .
tar -jxvf data1.tar.gz
@@ -16,23 +113,61 @@ mv data1/* .
tar -jxvf data2.tar.gz
mv data2/* .
```
-When you see the files below, you can do the next work.
-- cat_voc.pkl
-- mid_voc.pkl
-- uid_voc.pkl
-- local_train_splitByUser
-- local_test_splitByUser
-- reviews-info
-- item-info
-## train model
+## 模型训练
+- 单击“立即下载”,并选择合适的下载方式下载源码包。
+- 开始训练。
+
+ 1. 启动训练之前,首先要配置程序运行相关环境变量。
+
+ 环境变量配置信息参见:
+
+ [Ascend 910训练平台环境变量设置](https://gitee.com/ascend/modelzoo/wikis/Ascend%20910%E8%AE%AD%E7%BB%83%E5%B9%B3%E5%8F%B0%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E8%AE%BE%E7%BD%AE?sort_id=3148819)
+
+
+- 单卡训练
+ 以数据集放在/data为例
+ ```
+ cd test
+ bash train_performance_1p.sh --data_path=/data (功能和性能)
+ bash train_full_1p.sh --data_path=/data (全量) ## 当前full脚本尚未调通
+ ```
+
+迁移学习指导
+
+- 数据集准备。
+
+ 1. 获取数据。
+ 请参见“快速上手”中的数据集准备
+
+- 模型训练
+
+ 请参考“快速上手”章节
+
+高级参考
+
+## 脚本和示例代码
+
+ ├── README.md //说明文档
+ ├── requirements.txt //依赖
+ ├── script //模型结构
+ │ ├──data_iterator.py
+ │ ├──Dice.py
+ │ ├──train.py
+ │ ├──model.py
+ ├── test
+ | |—— train_full_1p.sh //单卡训练脚本
+ | |—— train_performance_1p.sh //单卡训练脚本
+
+## 脚本参数
+
```
-python train.py train [model name]
+batch_size 训练batch_size
+learning_rate 初始学习率
+train_epochs 总训练epoch数
+
```
-The model blelow had been supported:
-- DNN
-- PNN
-- Wide (Wide&Deep NN)
-- DIN (https://arxiv.org/abs/1706.06978)
-- DIEN (https://arxiv.org/pdf/1809.03672.pdf)
-
-Note: we use tensorflow 1.4.
+
+## 训练过程
+
+通过“模型训练”中的训练指令启动单卡训练。
+将训练脚本(train_full_1p.sh)中的data_path设置为训练数据集的路径。具体的流程参见“模型训练”的示例。
\ No newline at end of file
diff --git a/TensorFlow2/built-in/nlp/BertLarge_ID0634_for_TensorFlow2.X/ReadMe.md b/TensorFlow2/built-in/nlp/BertLarge_ID0634_for_TensorFlow2.X/ReadMe.md
index e9281c0fbace9c0a683a6afd0f8fff4805da7516..762b1b60f76d498b1eaeff8047263a6b4f56098b 100644
--- a/TensorFlow2/built-in/nlp/BertLarge_ID0634_for_TensorFlow2.X/ReadMe.md
+++ b/TensorFlow2/built-in/nlp/BertLarge_ID0634_for_TensorFlow2.X/ReadMe.md
@@ -16,7 +16,7 @@
**大小(Size):210KB**
-**框架(Framework):TensorFlow_2.4.1**
+**框架(Framework):TensorFlow_2.6.0**
**模型格式(Model Format):ckpt**
@@ -60,14 +60,14 @@ BERT模型的全称是:BidirectionalEncoder **Representations** from Transform
- 24-layer, 1024-hidden, 16-heads, 340M parameters
- 训练超参(单卡):
- - Batch size: 16
+ - Batch size: 24
- max_predictions_per_seq: 76
- max_seq_length: 512
- Learning rate\(LR\): 0.000058711
- Weight decay: 0.01
- beta_1: 0.91063
- beta_2: 0.96497
- - Train epoch: 12
+ - Train epoch: 32
## 支持特性
@@ -87,7 +87,7 @@ BERT模型的全称是:BidirectionalEncoder **Representations** from Transform
拉起脚本中,传入--precision_mode='allow_mix_precision'
```
- ./train_performance_1p_16bs.sh --help
+ ./train_performance_1p_24bs.sh --help
parameter explain:
--precision_mode precision mode(allow_fp32_to_fp16/force_fp16/must_keep_origin_dtype/allow_mix_precision)
@@ -166,7 +166,7 @@ npu_device.global_options().precision_mode=FLAGS.precision_mode
## 模型训练
- 下载训练脚本。
-- 检查scripts/目录下是否有存在8卡IP的json配置文件“rank_table_8p.json"。
+- 检查并修改configs/目录下8卡IP的json配置文件“rank_table_8p.json"。
```
{
@@ -235,15 +235,15 @@ npu_device.global_options().precision_mode=FLAGS.precision_mode
2. 单卡训练
- 2. 1单卡训练指令(脚本位于BertLarge_TF2.x_for_Tensorflow/test/train_full_1p_16bs.sh),请确保下面例子中的“--data_path”修改为用户的tfrecord的路径,这里选择将tfrecord文件夹放在home目录下。
+ 2.1 单卡训练指令(脚本位于BertLarge_TF2.x_for_Tensorflow/test/train_performance_1p_24bs.sh),请确保下面例子中的“--data_path”修改为用户的tfrecord的路径,这里选择将tfrecord文件夹放在home目录下。
- bash test/train_full_1p_16bs.sh --data_path=/home/tfrecord --precision_mode='allow_mix_precision'
+ bash test/train_performance_1p_24bs.sh --data_path=/home/tfrecord --precision_mode=allow_mix_precision
3. 8卡训练
- 3.1 8卡训练指令(脚本位于BertLarge_TF2.x_for_Tensorflow/test/train_full_8p_128bs.sh),请确保下面例子中的“--data_path”修改为用户的tfrecord的路径。
+ 3.1 8卡训练指令(脚本位于BertLarge_TF2.x_for_Tensorflow/test/train_performance_8p_192bs.sh),请确保下面例子中的“--data_path”修改为用户的tfrecord的路径。
- bash test/train_full_8p_128bs.sh --data_path=/home/tfrecord --precision_mode='allow_mix_precision'
+ bash test/train_performance_8p_192bs.sh --data_path=/home/tfrecord --precision_mode=allow_mix_precision
@@ -260,8 +260,8 @@ npu_device.global_options().precision_mode=FLAGS.precision_mode
| |--bert_config.json
| |--rank_table_8p.json
|--test #训练脚本目录
-| |--train_full_1p_16bs.sh
-| |--train_full_8p_64bs.sh
+| |--train_performance_1p_24bs.sh
+| |--train_performance_8p_192bs.sh
| |--......
```
@@ -300,3 +300,4 @@ npu_device.global_options().precision_mode=FLAGS.precision_mode
+