trybeetle

take it slow!!

Advanced ML with TF on GCP (course 4)振り返り


Posted on Nov. 8, 2018, 10:34 p.m.



CourseraのAdvanced Machine Learning with TensorFlow on Google Cloud Platform Specializationのcourse4の振り返りです。Sequence Models for Time Series and Natural Language Processingについてです。


概要

このコースでは、Sequence MODELでのGCPの活用方法に紹介されていました。

  • RNNモデル
  • LSTM
  • Reusable embeddings
  • Encoder-Decoder model

Reusable embeddingのトレーニングでは、Tensor hubからembedding matrixを取得する演習です。

Encoder-Decoderモデルのトレーニングでは、translation taskなどの問題をSequence-Sequence(Tx != Ty)により求めます。また、DiagFlowを利用した、Chatbotの演習もありました。


RNNモデルでは、下記の点に留意する必要があります。

  • 適度なSequenceの長さ
  • iteration当たりの幅(resampling)
  • SequenceのStride
  • Single layer vs Multi layer

以下、GRUモデルの構築方法です。


    def rnn2_model(features):
        # dynamic_rnn needs 3D shape: [BATCH_SIZE, N_INPUTS, 1]
        x = tf.reshape(features[TIMESERIES_COL], [-1, N_INPUTS, 1])

        # 2. configure the RNN
        cell1 = tf.nn.rnn_cell.GRUCell(N_INPUTS * 2)
        cell2 = tf.nn.rnn_cell.GRUCell(N_INPUTS // 2)
        cells = tf.nn.rnn_cell.MultiRNNCell([cell1, cell2])
        outputs, state = tf.nn.dynamic_rnn(cells, x, dtype=tf.float32)
        # 'state' is now a tuple containing the final state of each cell layer
        # we use state[1] below to extract the final state of the final layer

        # 3. pass rnn output through a dense layer
        h1 = tf.layers.dense(state[1], cells.output_size // 2, activation=tf.nn.relu)
        predictions = tf.layers.dense(h1, 1, activation=None)  # (?, 1)
        return predictions

Category:ML
Tag: tensorflow ML python
Nov. 8, 2018, 10:34 p.m.

Comments