0

에 대한 이해 필터와 보폭 모양 나는 데니 BRITZ의 tutorialTensorFlowCNNs를 사용 텍스트 분류를 검토하고있다. 필터 및 보폭 셰이프는 이미지 도메인에서 완벽합니다. 그러나 텍스트의 경우 보폭과 필터 모양을 올바르게 정의하는 방법에 대해 혼란 스럽습니다. 데니의 코드로부터 다음과 같은 두 개의 레이어를 고려TensorFlow - CNN 텍스트 분류

# 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) 
self.embedded_chars_expanded의 형상이 각각 배치 부재를 의미 [batch_size, max_sentence_length, embedding_size, 1]이다

내 filter_shape가 [3, 50, 1, 16] 가정하자 max_sentence_length x embedding_size

필터 단일 채널 행렬 . 나는 필터가 차원이 인 시간에 3 개의 단어 벡터 위로 밀려나면서 이것을 해석합니다. 이것은 텍스트이므로 1은 단일 입력 채널에 해당합니다 (3RGB). 마지막으로 16conv layer16 개의 필터가 있음을 의미합니다.

정확하게 해석 했습니까?

걷기

마찬가지로 스트라이드 형상의 전환 및 풀링 층 모두 [1, 1, 1, 1]로 정의한다.

이 모양의 크기는 의 크기와 일치합니까?

그렇다면 이것이 내가 혼란스러워하는 이유입니다. 단어 벡터 표현의 본질은 보폭 길이가 [1, embedding_size, 1, 1]이어야 함을 의미합니다. 즉, 각 필터에 대해 한 채널에서 한 번에 한 단어 씩 전체 단어를 이동하려고합니다.

답변

1

필터

내가 올바르게 해석이 있나요?

예.

걷기 대회

이 도형의 크기는 filter_shape의 크기에 해당합니까?

예, 입력 내용에 필터를 넣은 strides에 해당합니다.

[1, embedding_size, 1, 1] 내가 이상에서-A-시간 창을 하나의 전체 단어를 이동하려는 의미하는 단어 벡터 표현의 자연 보폭 길이가되어야한다는 의미 것으로 보인다 각 필터에 대해 하나의 채널

패딩 전략에주의하십시오. conv2d의 패딩은 VALID으로 설정됩니다. 이는 패딩이 없을 것임을 의미합니다. 매입 차원의 필터 크기는 입력을 완전히 포함하므로이 차원의 보폭을 고려하지 않고 한 번만 적합합니다.

다른 말로하면, 보폭에 독립적으로 한 번만 포함 수준을 따라 컨볼 루션 할 수 있습니다.

+0

감사합니다. '임베디드 차원의 필터 크기가 입력을 완전히 포함하므로'을 클릭하면 클릭됩니다. –

관련 문제