2016-08-21 2 views
0

컨볼 루션 신경망 별 텍스트 분류를 수행하고 있습니다. 예제 MNIST에는 손으로 쓴 숫자의 60.000 이미지 예제가 있으며 각 이미지의 크기는 28 x 28이고 10 개의 레이블 (0에서 9까지)이 있습니다. 그래서 무게의 크기가 여기에 784 * 10 (28 * 28 = 784)컨볼 루션 신경망의 비용 함수

enter image description here

자신의 코드가 될 것이다 : 내 경우

x = tf.placeholder("float", [None, 784]) 
W = tf.Variable(tf.zeros([784,10])) 
b = tf.Variable(tf.zeros([10])) 

가, 내 문서를 인코딩하는 word2vec을 적용했다. 단어 임베딩의 결과 "사전 크기"는 2000이고 임베드 크기는 128입니다. 45 개의 레이블이 있습니다. 나는 예제와 똑같이하려했지만 작동하지 않았다. 여기서 내가 한 일 : 각 문서를 이미지와 동일하게 취급했습니다. 예를 들어, 문서는 2000 x 128의 행렬로 나타낼 수 있습니다. (문서에 나타나는 단어는 해당 열의 벡터 값이라는 단어를 추가하고 다른 값은 0입니다.) 입력 데이터가 W 및 x 인 경우 문제가 있습니다. 2000 X 128의 NumPy와 배열 x = tf.placeholder("float", [None, 256000])있다. 크기가 일치하지 않습니다.

하나는 어떤?

감사

조언을 제안 남원 수

답변

1

자리 표시 자 x는 평평 이미지, 첫 번째 차원 None 대응의 배열입니다 일괄 처리 크기, 즉 이미지 수와 256000 = 2000 * 128입니다. 따라서 x 소품을 공급하려면 귀하의 의견을 평평하게해야합니다. 입력이 숫자가 적은 배열이라고 언급 했으므로 numpy.reshapeflatten을 살펴보십시오.

+0

고마워요,하지만 여전히 왜 일괄 처리에 대해 아무 것도 보지 않았기 때문에 아무 것도 설정하지 않아도되는지 이해할 수 없습니다. 어젯밤에 행렬 곱셈에 대해 생각해 보았고 W [128, 10]을 설정할 수있는 이상이 있었으므로 W [128, 10]과 x [2000, 128]을 곱하면 출력 행렬 [2000, 10]이됩니다. 그것에 대해 어떻게 생각하십니까? – ngoduyvu

+0

일괄 처리 크기를 하드 코딩하지 않으려면 '없음'이 설정됩니다. 이렇게하면 배치가 가변적 일 수 있습니다. [MNIST 예제] (https://github.com/tensorflow/tensorflow/blob/r0.10/tensorflow/examples/tutorials/mnist/mnist_softmax.py) 배치의 크기는 100입니다 (52 행 참조). 그래서 당신의 경우'x'는'[None, 256000]'크기를 가지므로'W'는'[256000, 10]'크기를 가져야합니다. 여기서'10'은 레이어 출력의 수입니다. –

+0

안녕하세요. sg. 죄송합니다.하지만 코드 데이터 ([코드 예] [1])와 같이 회귀 신경망에 데이터를 제공하려고하지만 실제로 비용 기능에 갇혀 있습니다. 내 비용 함수 크기를 어떻게 제안 할 수 있습니까? [1] : https : //github.com/dennybritz/cnn-text-classification-tf/blob/master/text_cnn.py – ngoduyvu

관련 문제