[英]Numpy Indexing Operations with Tensorflow
我想更新張量的值,如:
ldream[w,:,x,y,z] = 0
但不斷收到錯誤說:
TypeError: 'Tensor' object does not support item assignment
似乎ldream
是一個tensorflow變量,遺憾的是它不能像numpy數組那樣直接賦值。
要更新張量流中的張量值,可以進行賦值操作,然后運行(eval)該操作。 以下是如何執行此操作的示例:
這樣做的原因是當你編寫你的tf變量和操作時,你實際上是“暫存”它們以后發生(例如當你做sess.run
); 就像tensorflow實際運行的藍圖一樣。
通過使用numpy數組創建布爾掩碼來解決此問題:
ldream_mask = np.zeros(ldream.shape, dtype=np.bool)
然后選擇所需的索引並將其標記為True
ldream_mask[w,:,x,y,z] = True
然后使用tf.where使用ldream_mask更新所需的索引
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.