1
我想定义一个使用基本数学运算的简单模型。我试图用多种方法来实现它,但最明显的失败了,我想明白为什么。Keras简单的数学运算模型失败,“输出张量到模型必须是Keras张量”
让我们看一下代码:
import keras.backend as K
from keras.layers import Input, Lambda
from keras.models import Model
import numpy as np
x = Input(shape=(3,))
y = Lambda(lambda x: x ** 2)(x)
print y
# Tensor("lambda_1/pow:0", shape=(?, 3), dtype=float32)
model = Model(inputs=x, outputs=y)
# Works!
y = x ** 2
print y
# Tensor("pow:0", shape=(?, 3), dtype=float32)
model = Model(inputs=x, outputs=y)
# Fails: TypeError: Output tensors to a Model must be Keras tensors.
y = K.pow(x, 2)
print y
# Tensor("Pow:0", shape=(?, 3), dtype=float32)
model = Model(inputs=x, outputs=y)
# Fails: TypeError: Output tensors to a Model must be Keras tensors.
正如你所看到的,y
所有型号的输出几乎是相同的,但直观的那些失败的某些原因。