0

のための理解のフィルタとストライド形状が、私はデニーブリッツのtutorialTensorFlowCNNsを使用してテキスト分類上の見直しをしています。フィルター領域とストライド形状は、イメージ領域では完璧な意味を持ちます。しかし、テキストに関して言えば、ストライドとフィルターの形状を正しく定義する方法は混乱しています。 max_sentence_length x embedding_sizeTensorFlow - CNNのテキスト分類

フィルタ

の単一チャネル行列は私filter_shapeが[3, 50, 1, 16]であると仮定されるself.embedded_chars_expandedの形状は、各バッチのメンバーを意味する[batch_size, max_sentence_length, embedding_size, 1]ある

# Create a convolution + maxpool layer for each filter size 
pooled_outputs = [] 
for i, filter_size in enumerate(filter_sizes): 
    with tf.name_scope("conv-maxpool-%s" % filter_size): 
     # Convolution Layer 
     filter_shape = [filter_size, embedding_size, 1, num_filters] 
     W = tf.Variable(tf.truncated_normal(filter_shape, stddev=0.1), name="W") 
     b = tf.Variable(tf.constant(0.1, shape=[num_filters]), name="b") 
     conv = tf.nn.conv2d(
      self.embedded_chars_expanded, 
       W, 
       strides=[1, 1, 1, 1], 
       padding="VALID", 
       name="conv") 
     # Apply nonlinearity 
     h = tf.nn.relu(tf.nn.bias_add(conv, b), name="relu") 
     # Maxpooling over the outputs 
     pooled = tf.nn.max_pool(
      h, 
      ksize=[1, sequence_length - filter_size + 1, 1, 1], 
      strides=[1, 1, 1, 1], 
      padding='VALID', 
      name="pool") 
     pooled_outputs.append(pooled) 

:デニーのコードから次の二つの層を考えます。これは、フィルタが次元50を持つ時刻に3の単語ベクトル上をスライドするため、これを解釈します。これはテキストなので、は(3とは対照的に)RGBの1つの入力チャンネルに対応します。最後に、16はに16のフィルタを含めることを意味します。

これを正しく解釈しましたか?

ストライド

同様に、CONVとプーリング層の両方におけるストライド形状は、[1, 1, 1, 1]として定義されます。

この形状の寸法は、の寸法に対応していますか?

もしそうなら、これが私が混乱している理由です。単語ベクトル表現の性質は、ストライドの長さが[1, embedding_size, 1, 1]であることを意味すると思われます。つまり、各フィルタの1つのチャネルで、ウィンドウを1ワードずつフルワードずつ移動したいということです。

答えて

1

フィルタ

私はこれを正しく解釈したことがありますか?

はい、まさに。

ストライド

この形状の寸法は、 filter_shapeの寸法に対応していますか?

はい、これは、入力埋め込み時にフィルタを畳み込む際のストライドに相当します。

私はオーバーで-時間窓つの完全な単語を移動したいという意味 [1、embedding_size、1、1]ワードベクトル表現の性質は歩幅がなければならないことを意味 ように思わそれぞれのフィルタに1つの チャネル

パディング戦略に注意してください。conv2dのパディングは、VALIDに設定されています。つまり、パディングはありません。埋め込み次元のフィルタサイズは入力全体をカバーするので、この次元に沿ったストライドを考慮することなく一度だけ適合することができる。

言い換えれば、埋め込みディメンションに沿って、ストライドとは別に一度だけ畳み込むことができます。

+0

ありがとうございます。 「埋め込み次元のフィルタサイズが入力を完全にカバーしているので」をクリックするとクリックされました。 –

関連する問題