警告:tensorflow:模型构建时使用了形状

我创建了一个模型,但是当我想让模型进行估算时,出现了错误。

inputs = tf.keras.Input(shape=(512, 512,1))conv2d_layer = tf.keras.layers.Conv2D(32, (2,2), padding='Same')(inputs)conv2d_layer = tf.keras.layers.Conv2D(32, (2,2), activation='relu', padding='Same')(conv2d_layer)bn_layer = tf.keras.layers.BatchNormalization()(conv2d_layer)mp_layer = tf.keras.layers.MaxPooling2D(pool_size=(2,2))(bn_layer)drop = tf.keras.layers.Dropout(0.25)(mp_layer)conv2d_layer = tf.keras.layers.Conv2D(64, (2,2), activation='relu', padding='Same')(drop)conv2d_layer = tf.keras.layers.Conv2D(64, (2,2), activation='relu', padding='Same')(conv2d_layer)bn_layer = tf.keras.layers.BatchNormalization()(conv2d_layer)mp_layer = tf.keras.layers.MaxPooling2D(pool_size=(2,2), strides=(2,2))(bn_layer)drop = tf.keras.layers.Dropout(0.25)(mp_layer)flatten_layer = tf.keras.layers.Flatten()(drop)dense_layer = tf.keras.layers.Dense(512, activation='relu')(flatten_layer)drop = tf.keras.layers.Dropout(0.5)(dense_layer)outputs = tf.keras.layers.Dense(2, activation='softmax')(drop)model = tf.keras.Model(inputs=inputs, outputs=outputs, name='tumor_model')model.summary()

训练图像形状 (342, 512, 512, 1)
训练标签形状 (342, 2)
测试图像形状 (38, 512, 512, 1)
测试标签形状 (38, 2)

问题在这里:

pred = model.predict(test_images[12])

警告:tensorflow:模型构建时使用了形状 (None, 512, 512, 1) 作为输入 KerasTensor(type_spec=TensorSpec(shape=(None, 512, 512, 1), dtype=tf.float32, name=’input_1′), name=’input_1′, description=”created by layer ‘input_1′”), 但它被调用时输入的形状与之不兼容,为 (32, 512, 1, 1)。


回答:

错误信息告诉您 test_images.shape 是 (32,512,1,1)。请打印出 test_images.shape,然后找出您创建 test_images 时的问题所在。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注