###### tags: `8月勉強会` # Tensor2Tensorがすごい --- ## Tensor2Tensorとは DLのモデルとデータセットを集めたライブラリ Google Brainチームが中心に開発したOSS(非公式) 比較的新しいモデルを****簡単に****試せる。 --- ## データセットの種類 - 会話応答 - 画像分類 - 画像生成 - 言語モデル - 音声認識 - 感情分析 - 要約 - 翻訳 ->幅広いタスクを選択できる! --- ## 変数定義 ```bash= USR_DIR=$HOME/t2t_usr/my_problem PROBLEM=my_problem HPARAMS=transformer_base_single_gpu MODEL=transformer DATA_DIR=$HOME/t2t_data TMP_DIR=/tmp/t2t_datagen TRAIN_DIR=$HOME/t2t_train/$PROBLEM/$MODEL-$HPARAMS mkdir -p $DATA_DIR $TMP_DIR $TRAIN_DIR ``` --- ## データ生成 ```bash= t2t-datagen \ --t2t_usr_dir=$USR_DIR \ --data_dir=$DATA_DIR \ --tmp_dir=$TMP_DIR \ --problem=$PROBLEM \ --t2t_usr_dir=$USR_DIR ``` :::info USR_DIRに新しいデータセットを追加 [translate_ende.py](https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/data_generators/translate_ende.py) [README.md](https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/data_generators/README.md) ::: --- ## トレーニング ```bash= t2t-trainer \ --data_dir=$DATA_DIR \ --problem=$PROBLEM \ --model=$MODEL \ --hparams_set=$HPARAMS \ --output_dir=$TRAIN_DIR \ --t2t_usr_dir=$USR_DIR ``` :::info ハイパーパラメーターを調整したい場合は、`--train_steps=10000`のように引数を設定します。[common_hparams.py](https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/layers/common_hparams.py)を参照してください。 ::: :::info `t2t-trainer --registry_help`で登録されているモデルやパラメーターを確認できます。 ::: --- ## 推論(対話モード) ```bash= BEAM_SIZE=4 ALPHA=0.6 t2t-decoder \ --data_dir=$DATA_DIR \ --problem=$PROBLEM \ --model=$MODEL \ --hparams_set=$HPARAMS \ --output_dir=$TRAIN_DIR \ --decode_hparams="beam_size=$BEAM_SIZE,alpha=$ALPHA" \ --decode_interactive=true \ --t2t_usr_dir=$USR_DIR ``` --- ## t2t_usrのディレクトリ ``` t2t_data t2t_train t2t_usr . └── my_problem ├── __init__.py ├── __init__.pyc ├── __pycache__ │ ├── __init__.cpython-36.pyc │ └── my_problem.cpython-36.pyc ├── my_problem.py ├── my_problem.pyc └── my_problem.tsv ``` --- [Tensor2Tensorを使って独自データでseq2seqしてみる](https://www.madopro.net/entry/t2t_seq2seq) :::info `my_problem.py`の場合、`__init__.py`には、 ```python= from . import my_problem ``` を追加。`__pycache__`は、python3環境実行時に生成されます。 ::: --- ## サービング Tensor2TensorをGoogle ML EngineでAPI化するのは難しいです。 --- [tensor2tensorの翻訳モデルをサーバ化して実行](http://datanerd.hateblo.jp/entry/2019/08/08/114515) ```bash= DATA_DIR=$HOME/t2t_data OUTPUT_DIR=$HOME/t2t_train t2t-exporter --data_dir=$DATA_DIR \ --problem=my_problem \ --model=transformer \ --hparams_set=transformer_base_single_gpu \ --output_dir=$OUTPUT_DIR \ --decode_hparams="beam_size=4,alpha=0.6" \ --t2t_usr_dir=$USR_DIR ``` ```bash= tensorflow_model_server \ --port=9000 \ --model_name=my_model \ --model_base_path=/root/work/mt/model2/training_result2/export/ & ``` ## [Google AI Platformについて](https://hackmd.io/@T7k0V7TMQFelvJKKdo3pww/ai-platform)