我查看了所有 "'Tensor' object has no attribute ***" 的相关内容,但似乎都与Keras无关(除了这个TensorFlow: AttributeError: 'Tensor' object has no attribute 'log10',但没有帮助)...
我正在制作一种类似于GAN(生成对抗网络)的东西。您可以在此处找到结构。
Layer (type) Output Shape Param # Connected to
_____________________________________________________________________________
input_1 (InputLayer) (None, 30, 91) 0
_____________________________________________________________________________
model_1 (Model) (None, 30, 1) 12558 input_1[0][0]
_____________________________________________________________________________
model_2 (Model) (None, 30, 91) 99889 input_1[0][0]
model_1[1][0]
_____________________________________________________________________________
model_3 (Model) (None, 1) 456637 model_2[1][0]
_____________________________________________________________________________
我预训练了模型 2 和模型 3。问题在于我用由 0 和 1 组成的列表预训练了模型 2,但是模型 1 返回的是接近的值。所以我考虑使用以下代码对模型1的输出进行四舍五入:在model1_out上使用K.round()。
import keras.backend as K
[...]
def make_gan(GAN_in, model1, model2, model3):
model1_out = model1(GAN_in)
model2_out = model2([GAN_in, K.round(model1_out)])
GAN_out = model3(model2_out)
GAN = Model(GAN_in, GAN_out)
GAN.compile(loss=loss, optimizer=model1.optimizer, metrics=['binary_accuracy'])
return GAN
[...]
我遇到了以下错误:
AttributeError: 'Tensor' 对象没有属性 '_keras_history'
完整的错误追踪信息:
Traceback (most recent call last):
File "C:\Users\Asmaa\Documents\BillyValuation\GFD.py", line 88, in <module>
GAN = make_gan(inputSentence, G, F, D)
File "C:\Users\Asmaa\Documents\BillyValuation\GFD.py", line 61, in make_gan
GAN = Model(GAN_in, GAN_out)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\legacy\interfaces.py", line 88, in wrapper
return func(*args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py", line 1705, in __init__
build_map_of_graph(x, finished_nodes, nodes_in_progress)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py", line 1695, in build_map_of_graph
layer, node_index, tensor_index)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py", line 1695, in build_map_of_graph
layer, node_index, tensor_index)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py", line 1665, in build_map_of_graph
layer, node_index, tensor_index = tensor._keras_history
AttributeError: 'Tensor' object has no attribute '_keras_history'
我正在使用Python 3.6,搭配Spyder 3.1.4,在Windows 7上运行。我上周使用pip升级了TensorFlow和Keras。 感谢您提供的任何帮助!
K.round
放在Lambda
层内。在keras中,很少看到层外的操作。(虽然不确定这是否是问题所在)。 - Daniel Möllerrounded = Lambda(lambda x: K.round(x))(G_out)
和F_out = F([GAN_in, rounded])
,我可以“编译”但不能再“拟合”了。 - Maëva LC