FewRel解析
4716 ワード
一、データセット解析
glove.5B.50d.json
word to vector変換テーブル
訓練集jsonと検証セットval.json
word_vec_file_name: Json file storing word vectors in the following format [ {‘word’: ‘the’, ‘vec’: [0.418, 0.24968, …]}, {‘word’: ‘,’, ‘vec’: [0.013441, 0.23682, …]}, … ]
max_length: The length that all the sentences need to be extend to.
case_sensitive:Whether the data processing is case-sensitive(大文字と小文字を区別するかどうか)、default as False.
reprocess: Do the pre-processing whether there exist pre-processed files, default as False.
cuda: Use cuda or not, default as True.
二、オブジェクトインスタンスの作成
JSOnFileDataLoaderオブジェクトインスタンスtrain_の作成data_loader\val_data_loader\test_data_loader
プロセス(***前処理?***)または_processed_dataが存在しない
reprocess(***前処理?***または_processed_dataが存在しない
Loading data file(train.json) & word vector file(glove.6B.50d.json)
self.ori_data = data file self.ori_word_vec = word vector file
大文字と小文字を区別するかどうかを判断する
大文字と小文字を区別しない:各relationの各instanceの各tokensを巡り、各アルファベットを小文字にします.
Pre-process word vec
Pre-processing data
self.data_word、self.data_pos1、self.data_pos2、self.data_mask:word,pos 1,pos 2,maskを初期化する;サイズはinstance_tot * max_length
Storing processed files:読み込み_processed_dataディレクトリファイル
FewShotREFrameworkオブジェクトインスタンスframeworkの作成
CNNSentenceEncoderオブジェクトインスタンスの作成
word embeddingposition embedding embedding後のボリューム化、プール化
三、モデルの選択
metanet
けいさんそんしつ
けいさんそんしつ
embedding
encoder
basic_encoder
attention_encoder
linearレイヤlinearレイヤ:線形変換せんけいへんかん
basic_fc
attention_fc
learner_basic
線形変換(2,20)(20,20)(20,1)
learner_attention
LSTM+linear
training
ckpt_dir=’./checkpoint’, test_result_dir=’./test_result’, learning_rate=1e-1, lr_step_size=20000, Decay learning rate every lr_step_size steps weight_decay=1e-5, Rate of decaying weight train_iter=30000, val_iter=1000, val_step=2000, Validate every val_step steps test_iter=3000
初期化
filter
optimizer
scheduler
既存のモデルをロードし、現在の開始位置を計算
Cuda
Cuda:submoduleパラメータをcuda Tensorに変換
if cuda:
model = model.cuda()
moduleをtraining modeに設定する
model.train()