如何在Keras进行切片分配(使用TensorFlow作为后端)

如何在Keras进行切片分配(使用TensorFlow作为后端),tensorflow,keras,Tensorflow,Keras,比如说, a = Input(...) b = keras.layers.Conv2D(...)(a) c = keras.backend.zeros(...) c[...].assign(b[...]) 因为它是在编译模型之前使用的,所以当我尝试使用函数assign()(这是一个TensorFlow函数)时,会出现错误: “Tensor”对象没有属性“assign” 这可能是因为在编译模型之前,变量的第一个dim是None。 那么,有没有办法进行切片赋值呢?一般来说,张量流张量是不可赋值的

比如说,

a = Input(...)
b = keras.layers.Conv2D(...)(a)
c = keras.backend.zeros(...)

c[...].assign(b[...])
因为它是在编译模型之前使用的,所以当我尝试使用函数
assign()
(这是一个TensorFlow函数)时,会出现错误: “Tensor”对象没有属性“assign”

这可能是因为在编译模型之前,变量的第一个dim是
None

那么,有没有办法进行切片赋值呢?

一般来说,张量流张量是不可赋值的。然而,根据官方的说法,
tf.assign()
函数只适用于可变张量,而可变张量应该来自可变节点。因此,下面的代码是有效的。其余的将在很大程度上取决于你的具体情况

var1=tf.keras.backend.zeros(1,1)
var2=var1[0]。分配(1)
sess=tf.Session()
sess.run(tf.global\u variables\u initializer())
打印(sess.run(var2))
你可能会发现这个答案很有用

你的问题内容太少了。编译后的模型可能与此无关。