2017-06-19 42 views

回答

2

您需要指定一個自定義內核初始值設定項。 tf.layers.dense的文檔對此沒有太多解釋,但至少可以證明您有選擇。您可以使用:

init = np.array([[1, 2, 3], [4, 5, 6]]) 
x = tf.placeholder(tf.float32, shape=[1, 2]) 
fc = tf.layers.dense(x, 3, kernel_initializer=tf.constant_initializer(init, dtype=tf.float32)) 

,並確保它的工作原理:

with tf.Session() as sess: 
    for v in vars: 
     print('{}\n{}'.format(v.name, sess.run(v))) 

# dense_7/kernel:0 
# [[ 1. 2. 3.] 
# [ 4. 5. 6.]] 
# dense_7/bias:0 
# [ 0. 0. 0.] 

該文檔爲tf.constant_initializer

請注意,您必須提供一個輸入張量到tf.layers.dense,該張量指定了您的輸入形狀,因此在上面提供了x,您必須提供第二個參數來告訴它輸出的維度;在上面的3x的形狀和輸出的維度將取決於您的問題以及您的權重矩陣需要採用何種形狀。

+1

它的工作原理。謝謝! –

相關問題