2017-11-01 3 views
1

연구 논문에서 심 신경 네트워크를 복제하려고합니다. 내가 모델을 설계 완료Tensorflow : 입력 데이터 준비

, 지금은 훈련 데이터를 준비하려고 오전 : 아키텍처는 여기에서 찾을 수 있습니다. 여기에 가이드로있는 tensorflow 자습서를 사용했습니다. https://www.tensorflow.org/get_started/mnist/pros

mnist 데이터의 경우 27x27 이미지는 x에 대해 1d 벡터로 변환됩니다. 한편, Y_는 형상을 갖는다 없음 10] 각 이미지 표지 10 개 가지 방법 가능성 X는 계산이 용이하므로 (0-9)

x = tf.placeholder(tf.float32, shape=[None, 784]) 
y_ = tf.placeholder(tf.float32, shape=[None, 10]) 

내 데이터가 32x32x7 3D 이미지가 있기 때문에 . 내 화상 32x32x7이지만

x = tf.placeholder(tf.float32, shape=[None, 7168]) 

각 화소는와 관련된 밀도 및 라벨을 갖는다. 밀도 값이 x로로드되고 레이블이 y로로드됩니다. 이것은 올바른 가정입니까, 아니면 데이터를 다른 방식으로로드해야합니까?

y_ = tf.placeholder(tf.float32, shape=[None, 7168]) 
+0

당신 말이 맞습니다. 밀도를 포함하여 주어진 이미지의 라벨을 결정하는 것이 문제가되는 한, 라벨을 한 번 핫 인코딩하는 순간, 응답 변수의 차원 차원은 레이블 수 (아마도 7168보다 작을 것입니다)입니다. – fuglede

답변

1

내 화상 32x32x7이며, 각 픽셀은 그와 관련된 밀도와 레이블이

그렇다면, 네트워크의 출력과 목표 y_, 형상과 같다 :

[ 
None,   # Batch size 
32 * 32 * 7, # Vector size 
N    # N target labels (one hot encoded) 
] 
+0

또한 제공된 솔루션을 사용하면 각 입력 이미지에 하나의 레이블 만 포함된다는 의미입니까? 나는 각 입력 이미지가 7168 개의 레이블 (각 픽셀에 대해 하나의 레이블)을 얻는다는 인상을 받고 있었다. –

+1

@DevinHaslam 각 픽셀은 'N'개의 가능한 레이블을 가질 수있다. 'W = tf.Variable (tf.zeros [7168, 7168, 10)]과 함께'y = tf.nn.softmax (tf.tensordot (x, W, axes = [[1], [1] ])'및'L = tf.Variable (tf.zeros ([7168, 10]))'이됩니다. –

+0

불행히도 "W = ..."함수의 오브젝트에 subscriptable이 없다는 오류가 발생합니다. –