[英]TypeError: 'Tensor' object does not support item assignment in TensorFlow
[英]'Tensor' object does not support item assignment
from keras import backend as K
def TSNR(source_input,transformer):
M=(source_input+transformer)/2
std1=(source_input-M)**2
std2=(transformer-M)**2
std=K.sqrt((std1+std2)/2)
f=(M/std)
> f[f >1000000]=0
final= K.average(f)
return final
model.compile(optimizer='Adam', loss=losses, loss_weights=loss_weights, metrics=[TSNR])
model.fit(train_generator,
epochs=nb_epochs,
steps_per_epoch=steps_per_epoch,
verbose=2,
callbacks=[checkpoint],
validation_data=val_generator(data_dir,1,1584,.3)
);
TypeError: in user code:
File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1021, in train_function *
return step_function(self, iterator)
File "<ipython-input-25-75c8cc34142e>", line 8, in TSNR *
f[f >1000000]=0
TypeError: 'UnliftedInitializerVariable' object does not support item assignment
你好,我尝试为 my.network 编写 tSNR 指标,但我遇到了这个问题。 在这种情况下如何解决分配问题? 我试图更改“f”变量中大于特定数字的值。
如果这是关于根据条件为张量分配值的那条线,那么可以通过多种方式完成。
import tensorflow as tf
aa = tf.Variable(tf.zeros([10, 4]))
tensor = tf.constant(10,shape=(4,3))
aa[0:4, 1:4 ].assign(tf.ones_like(tensor, dtype=tf.float32))
print(aa)
#In your code this example should work
aa.assign(tf.where(aa>0,aa,9))
print(aa)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.