나는이 paper을 기반으로 텍스트 분류를 위해 CNN 모델을 구현했습니다. CNN은 크기가 고정 된 문장만을 처리 할 수 있으므로 입력의 크기를 데이터 집합의 최대 문장 길이로 설정하고 짧은 문장을 0으로 설정합니다. 하지만 필자의 이해를 돕기 위해, 입력 문장의 길이는 상관없이 최대 풀링 전략은 항상 각 필터 맵에 대해 하나의 값만 추출합니다. 따라서 입력 문장의 크기가 길거나 짧다는 것은 중요하지 않습니다. 왜냐하면 필터가 복잡한/풀링 된 후에 출력이 같은 크기가되기 때문입니다. 이 경우, 짧은 문장을 모두 고정 된 크기로 채워야하는 이유는 무엇입니까?텍스트 분류에서 CNN 모델에 대한 입력의 가변 크기?
예를 들어, CNN 모델에 데이터를 공급 내 코드는 내가 max_len
를 지정하고 현재의 교육 문장의 길이를 기반으로하는 None value
를 사용하지 않을 수 self.input_data = tf.placeholder(tf.int32,[None,max_len],name="input_data")
입니까?
또한 CNN 모델에 대한 변수 입력을 해결할 수있는 새로운 방법이 있는지 궁금합니다. 나는 또한이 문제를 해결할 수있는 다른 paper을 찾았지만, 내 이해를 위해 max-pooling에 대한 k 값을 가변 문장을 처리 할 수있는 max-pooling 대신 사용했습니다. 방법?
으로 알 수 있듯이, 배치의 교육 데이터가 동일한 길이 여야하기 때문에 문장 길이 (또는 패딩)를 제한하기 위해 'max_len'을 사용합니다. 즉, 학습 데이터의 모양은'[batch_size, max_len]'이됩니다. 입력 데이터에 대해 [none, none]을 지정할 수 있다고 생각하지 않습니다. – greeness