如何解决ValueError:函数的输入张量必须来自tf.keras.Input收到:0缺少上一层元数据如何解决此问题?
当我尝试获取利用SVM进行分类的功能时,显示以下错误。详细信息如下所述。
型号:“顺序”
图层(类型)输出形状参数#
conv2d(Conv2D)(无,32,32,64)1792
激活(激活)(无,32、32、64)0
conv2d_1(Conv2D)(无,32、32、64)36928
activation_1(激活)(无,32、32、64)0
max_pooling2d(MaxPooling2D)(无,16、16、64)0
辍学(Dropout)(无,16、16、64)0
conv2d_2(Conv2D)(无,16、16、128)73856
activation_2(激活)(无,16、16、128)0
conv2d_3(Conv2D)(无,16、16、128)147584
activation_3(激活)(无,16、16、128)0
max_pooling2d_1(MaxPooling2(None,8,8,128)0
dropout_1(退出)(无,8、8、128)0
conv2d_4(Conv2D)(无,8、8、256)295168
activation_4(激活)(无,8、8、8、256)0
conv2d_5(Conv2D)(无,8、8、256)590080
activation_5(激活)(无,8、8、8、256)0
conv2d_6(Conv2D)(无,8、8、256)590080
activation_6(激活)(无,8、8、256)0
max_pooling2d_2(MaxPooling2(None,4,4,256)0
dropout_2(退出)(无,4,4,4,256)0
展平(展平)(无,4096)0
密集(密集)(无,1024)4195328
activation_7(激活)(无,1024)0
dropout_3(退出)(无,1024)0
dense_1(密集)(无,1024)1049600
activation_8(激活)(无,1024)0
dropout_4(退出)(无,1024)0
dense_2(Dense)(None,10)10250
activation_9(激活)(无,10)0
总参数:6,990,666 可调参数:6,666 不可训练的参数:0
之后,我检查图层定义
from keras import backend as K
for l in range(len(model.layers)):
print(l,model.layers[l])
我试图获取特征提取层
getFeature = K.function([model.layers[0].input,K.learning_phase()],[model.layers[26].output])
ValueError跟踪(最近一次通话最近) 在()中 1#特征提取层 2 getFeature = K.function([model.layers [0] .input,K.learning_phase()], ----> 3 [model.layers [26] .output])
6帧 功能中的/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/backend.py(输入,输出,更新,名称,** kwargs) 从tensorflow.python.keras导入模型3934#pylint:disable = g-import-not-at-top 3935从tensorflow.python.keras.utils import tf_utils#pylint:disable = g-import-not-at-top -> 3936模型=模型。模型(输入=输入,输出=输出) 3937 3938 wrap_outputs = isinstance(输出,列表)和len(输出)== 1
新中的/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py(cls,* args,** kwargs) 240#功能模型 来自tensorflow.python.keras.engine的241导入功能#pylint:disable = g-import-not-at-top -> 242返回functional.Functional(* args,** kwargs) 其他243: 244 return super(Model,cls)。新(cls,* args,** kwargs)
_method_wrapper中的/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/tracking/base.py(self,* args,** kwargs) 455 self._self_setattr_tracking = False#pylint:disable =受保护的访问 456尝试: -> 457 result = method(self,* args,** kwargs) 458最后: 459 self._self_setattr_tracking = previous_value#pylint:disable =受保护的访问
init 中的/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/functional.py(自身,输入,输出,名称,可训练) 113#'初始化期间的参数。有一个意外的论点:') 114超级(功能性,自我)。初始化(名称=名称,可训练=可训练) -> 115 self._init_graph_network(输入,输出) 116 117 @ trackable.no_automatic_dependency_tracking
_method_wrapper中的/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/tracking/base.py(self,* args,** kwargs) 455 self._self_setattr_tracking = False#pylint:disable =受保护的访问 456尝试: -> 457 result = method(self,* args,** kwargs) 458最后: 459 self._self_setattr_tracking = previous_value#pylint:disable =受保护的访问
_init_graph_network中的/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/functional.py(自身,输入,输出) 142(base_layer_utils.create_keras_history(self._nested_outputs) 143 -> 144个self._validate_graph_inputs_and_outputs() 145 146#网络没有创建自己的权重,因此它已经
_validate_graph_inputs_and_outputs中的 /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/functional.py
637'必须来自tf.keras.Input
。 '
638'Received:'+ str(x)+
-> 639'(缺少上一层元数据)。)
640#检查x是输入张量。
641#pylint:disable = protected-access
ValueError:函数的输入张量必须来自tf.keras.Input
。收到:0(缺少上一层元数据)。
我的tensorflow版本是2.3.0,而keras是2.4.3。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。