a = np.array([1,2,3,1])a[a==1] = 0# a should be [0,0]
如果我在tensorflow中编写类似的代码,我会收到以下错误.
TypeError: 'Tensor' object does not support item assignment
方括号中的条件应该是任意的,如[a <1] = 0. 有没有办法在tensorflow中实现这种“条件赋值”(缺少一个更好的名字)?
解决方法 0700在TensorFlow API中可用.但是,在直接 *** 作张量时,没有什么能比得上简洁的NumPy语法.您必须使用单独的比较,其中和分配运算符以执行相同的 *** 作.
您的NumPy示例的等效代码是:
import tensorflow as tfa = tf.Variable( [1,1] ) start_op = tf.global_variables_initializer() comparison = tf.equal( a,tf.constant( 1 ) ) conditional_assignment_op = a.assign( tf.where (comparison,tf.zeros_like(a),a) )with tf.Session() as session: # Equivalent to: a = np.array( [1,1] ) session.run( start_op ) print( a.eval() ) # Equivalent to: a[a==1] = 0 session.run( conditional_assignment_op ) print( a.eval() )# Output is:# [1 2 3 1]# [0 2 3 0]
print语句当然是可选的,它们只是用于演示代码是否正确执行.
总结以上是内存溢出为你收集整理的python – TensorFlow中的张量值的条件分配全部内容,希望文章能够帮你解决python – TensorFlow中的张量值的条件分配所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)