Python “如何修复”;属性错误:';张量';对象没有属性';设置权重'&引用;keras的错误

Python “如何修复”;属性错误:';张量';对象没有属性';设置权重'&引用;keras的错误,python,tensorflow,keras,checkpoint,Python,Tensorflow,Keras,Checkpoint,我目前正在尝试将tensorflow中训练的网络的权重加载到keras中的等效网络中。问题是一旦读取了权重,当我尝试对每个层使用“.set_weights”命令时,就会出现上述错误。当我只使用keras层时,我不知道为什么我的层是类类型“Tensor” 下面您可以看到代码,我已经从tensorflow加载了元文件,并从检查点文件加载了权重。一旦网络在keras中建立,我尝试加载权重,它告诉我我的层属于“张量”类 #这用于将权重加载到“model_vars”数组中。 使用tf.Session()作

我目前正在尝试将tensorflow中训练的网络的权重加载到keras中的等效网络中。问题是一旦读取了权重,当我尝试对每个层使用“.set_weights”命令时,就会出现上述错误。当我只使用keras层时,我不知道为什么我的层是类类型“Tensor”

下面您可以看到代码,我已经从tensorflow加载了元文件,并从检查点文件加载了权重。一旦网络在keras中建立,我尝试加载权重,它告诉我我的层属于“张量”类

#这用于将权重加载到“model_vars”数组中。 使用tf.Session()作为sess:

本规范中使用的一般U形网结构: #我试图将权重加载到层中的示例

conv_A1c.set_weights([model_vars["conv2d/kernel:0"], model_vars["conv2d/bias:0"]])

bn_conv_A1c.set_weights([model_vars["batch_normalization/gamma:0"], model_vars["batch_normalization/beta:0"], model_vars["batch_normalization/moving_mean:0"], model_vars["batch_normalization/moving_variance:0"]])

The items in "model_vars" are all of type "<class 'numpy.ndarray'>", while the types for the layers are returning "<class 'tensorflow.python.framework.ops.Tensor'>"
conv_A1c.设置权重([model_vars[“conv2d/kernel:0”]、model_vars[“conv2d/bias:0”])
bn_conv_A1c.设置权重([model_vars[“batch_normalization/gamma:0”]、model_vars[“batch_normalization/beta:0”]、model_vars[“batch_normalization/moving_mean:0”]、model_vars[“batch_normalization/moving_vars:0”])
“模型变量”中的项都是“”类型,而层的类型正在返回“”
如果你们能帮我解释为什么我的图层返回张量,而不是keras类型的图层,那将非常有用。

试试这个:

model.layers[0].set_weights([model_vars["conv2d/kernel:0"], model_vars["conv2d/bias:0"]])
conv_A1c.set_weights([model_vars["conv2d/kernel:0"], model_vars["conv2d/bias:0"]])

bn_conv_A1c.set_weights([model_vars["batch_normalization/gamma:0"], model_vars["batch_normalization/beta:0"], model_vars["batch_normalization/moving_mean:0"], model_vars["batch_normalization/moving_variance:0"]])

The items in "model_vars" are all of type "<class 'numpy.ndarray'>", while the types for the layers are returning "<class 'tensorflow.python.framework.ops.Tensor'>"
model.layers[0].set_weights([model_vars["conv2d/kernel:0"], model_vars["conv2d/bias:0"]])