2017-09-26 135 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尺寸,但據我可以說某種原因,他們都OK了...

不知道爲什麼這是拋出一個錯誤。有人可以幫忙嗎?

注:

result = tf.matmul(d, W) 

這是確定。

我檢查了結果的形狀,與b相同。不確定可能是什麼問題。

回答

3

在線性模型(即輸出層中的一個單元)中,b應該是標量。在數學上,對於單個觀察,您有:result = WX + b,其中尺寸爲W [1個特徵],X [特徵x 1]。然後,WX是標量。因此b應該是一個標量。

所以,你應該改變b以下內容,以獲得正確的線性模型,使尺寸計算出:

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