(未完)
Transformer论文及框架分析:机器翻译Transformer框架分析笔记 | Attention is all you need
本文代码来源Github:kyubyong/transformer/tf1.2_legacy
作者已更新较新版本tensorflow对应的transformer代码,本笔记基于老代码
做笔记使用
代码 | 介绍 |
---|---|
hyperhparams.py | 超参数设定 |
prepro.py | 生成字典 |
data_load.py | 格式化数据,生成batch |
modules.py | 网络模型 |
train.py | 训练 |
eval.py | 评估 |
代码1:hyperparams.py 定义超参数文件
# -*- coding: utf-8 -*-
#/usr/bin/python2
'''
June 2017 by kyubyong park.
kbpark.linguist@gmail.com.
https://www.github.com/kyubyong/transformer
'''
class Hyperparams: #超参数
'''Hyperparameters'''
# data 训练集与测试集
source_train = 'corpora/train.tags.de-en.de'
target_train = 'corpora/train.tags.de-en.en'
source_test = 'corpora/IWSLT16.TED.tst2014.de-en.de.xml'
target_test = 'corpora/IWSLT16.TED.tst2014.de-en.en.xml'
# training
#batch_size调参重点
#mini-batch gradient decent,小批的梯度下降,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。
batch_size = 32 # alias = N 在实际机翻训练过程中batch_size一般设置从4000—8000不等,要具体情况具体分析
lr = 0.0001 # learning rate. In paper, learning rate is adjusted to the global step.
# 在实际训练中,一般动态设置学习率,从大到小以达到细分精度找到“最优解”
logdir = 'logdir' # log directory
# model
maxlen = 10 # alias = T. 单词最大长度,实习训练中忽略此项的限制
# Feel free to increase this if you are ambitious.
#min_cnt调参
min_cnt = 20 # words whose occurred less than min_cn