[深さ学習]Seq 2 seqモデル作成時のコメント


1.深さ学習モデルを作成する場合

  • 深さ学習モデルを作成する過程を考慮し,元のデータをモデルにインポートするためにX train,y train,X test,y testを用意した.
  • レイアウト寸法500個、特徴数10個、出力特徴数1個
  • 入力シーケンスが10、出力シーケンスが10の場合
  • .

    2.研修用Sampleの作成

  • 入力バッチの形状は(バッチサイズ、入力シーケンス長、特徴個数)=(500、10、10)に加工する.
  • 出力バッチの形状は(バッチサイズ、出力シーケンス長、特徴個数)=(500、10、1)に出力されるべきである.
  • 3.モデルの作成

  • LSTMcellが生成されると、_basic_rnn_seq2seq()にDropoutが設定され、最終結果を計算するための演算のいくつかの新しい行が漏れてしまう.学習時にDroputを0.5に設定し、LSTMcellを作成します.
  • with tf.compat.v1.variable_scope('LSTMCell'):
    	cells = []
        for i in range(self.NUM_STACK_LAYERS):
        	with tf.compat.v1.variable_scope('RNN_{}'.format(i)):
            	cell = tf.contrib.rnn.LSTMCell(self.HIDDEN_DIM)
                cell = tf.contrib.rnn.DropoutWrapper(cell, output_keep_prob=1.0 - self.DROPOUT)
                cells.append(cell)
                cell = tf.contrib.rnn.MultiRNNCell(cells)
  • セッション:モード実行の準備(実行ウィンドウ)と考えられます.(テンセント1.14版使用)
  • feed dict:dickshernerでレイアウト入力、レイアウト出力のすべての情報を含む.({x:入力データ})
  • オプティマイザ(train op)も決定する必要があります.
  • (Adamなど)
    feed_dict = {rnn_model['enc_inp'][t]: batch_input[:, t] for t in range(input_seq_len)}
    feed_dict.update({rnn_model['target_seq'][t]: batch_output[:, t] for t in range(output_seq_len)})
    _, loss_t = sess.run([rnn_model['train_op'], rnn_model['loss']], feed_dict)

    4.モデルのテスト

  • モデルをテストするとき、_basic_rnn_seq2seqのスーパーパラメータFeed PreviousオプションはTrue、Droputを0に調整します.