2017-04-06 26 views
5

Tôi cần tạo một ma trận trong TensorFlow để lưu trữ một số giá trị. Bí quyết là ma trận phải hỗ trợ hình dạng động.Các biến có hình dạng động TensorFlow

Tôi cố gắng để làm như vậy tôi sẽ làm trong NumPy:

myVar = tf.Variable(tf.zeros((x,y), validate_shape=False) 

nơi x=(?)y=2. Nhưng điều này không hoạt động vì số không hỗ trợ 'TensorShape được biết một phần', vì vậy, Làm thế nào tôi nên làm điều này trong TensorFlow?

+0

Tại sao bạn cần một hình dạng năng động? Và bạn không thể sửa nó bằng cách sử dụng None làm bộ mô tả hình dạng? – rmeertens

+0

Bởi vì ma trận của tôi phụ thuộc vào số lượng mẫu trong lô, có thể thay đổi. Theo như tôi biết, không phải tf.zeros hoặc np.zeros chấp nhận None trong hình dạng. – gergf

+0

Ah, tôi hiểu rồi. Tôi có thể hỏi bạn muốn làm gì với ma trận này không ?? – rmeertens

Trả lời

1

1) Bạn có thể sử dụng tf.fill(dims, value=0.0) hoạt động với hình dạng động.

2) Bạn có thể sử dụng một trình giữ chỗ cho kích thước thay đổi, như ví dụ .:

m = tf.placeholder(tf.int32, shape=[]) 
x = tf.zeros(shape=[m]) 

with tf.Session() as sess: 
    print(sess.run(x, feed_dict={m: 5})) 
+0

Dtype kết quả của hoạt động 'tf.fill (dims, value = 0.0)' là gì? – reubenjohn

Các vấn đề liên quan