2017-09-26 4 views
1

Tensorflow에서 간단한 선형 모델을 생성하려고했습니다. 여기에 코드 ...텐서 흐름의 선형 모델

N  = 400 
features = 100 
nSteps = 1000 

data = (np.random.randn(N, features), np.random.randint(0, 2, N)) 

W = tf.placeholder(tf.float32, shape=(features,1), name='W') 
b = tf.placeholder(tf.float32, shape=(features,1), name='b') 
d = tf.constant(data[0], dtype=tf.float32) 

result = tf.add(tf.matmul(d, W), b) 

그것은 b의 크기에 약간의 문제가있을 수 있음을 밝혀,하지만 지금까지 내가 말할 수있는 어떤 이유로, 그들은 모두 괜찮 니는 ...입니다

왜 이것이 오류를 던지고 있는지 잘 모르겠습니다. 누군가 제발 도와 줄 수 있니?

참고 :

result = tf.matmul(d, W) 

이 괜찮습니다.

결과 모양을 확인했으며 b과 동일합니다. 무엇이 문제인지는 잘 모릅니다.

답변

3

선형 모델 (즉, 출력 레이어의 한 단위)에서 b은 스칼라 여야합니다.

수학적으로 단일 관찰의 경우 사용자는 입니다. 여기서 치수는 W [1 x features], X [features x 1]입니다. 그런 다음 WX은 스칼라입니다. 따라서 b은 스칼라 여야합니다.

그럼, 다음에 b을 변경해야 올바른 선형 모델을 취득하고 치수를 해결합니다

b = tf.placeholder(tf.float32, shape=(1,1), name='b')