首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError ResNet Keras

ValueError ResNet Keras
EN

Stack Overflow用户
提问于 2018-09-02 11:10:54
回答 1查看 493关注 0票数 1

我试图使用Keras ResNet 50应用程序模型来解决我的代码问题:

代码语言:javascript
复制
#Tensorflow and tf.keras
import tensorflow as tf
from tensorflow import keras
#tf.enable_eager_execution()

#Helper libraries
import numpy as np
import matplotlib.pyplot as plt

import Muenzbetragserkennung_input_ResNet

#print(tf.__version__)

#Dataset
#Training and test data
(train_images, train_labels), (test_images, test_labels) = 
Muenzbetragserkennung_input_ResNet.read_input_shuffle()

batch_size, height, width, channels = train_images.shape
train_images = train_images / 255.0
test_images = test_images / 255.0
print(train_images.shape)

#Build the model
model = tf.keras.applications.resnet50.ResNet50(include_top=False, 
weights=None, input_tensor=None, input_shape=(height, width, channels), 
pooling='max')

model.compile(optimizer=tf.train.AdamOptimizer(),
          loss='mean_squared_error',
          metrics=['accuracy'])

#model.summary()

#Train
model.fit(train_images, train_labels, epochs=10)
#model.save_weights('models/muenzen.h5')

#Evaluate
loss, accuracy = model.evaluate(test_images, test_labels)
print('Accuracy', accuracy)

#Prediction
prediction = model.predict(test_images[0:1])
print(prediction)

但是得到了下面的Ouput/Error:

外形列车图像:(3865,240,320,3) 形制列车标签:(3865 ) 形状测试图像:(967,240,320,3) 形状测试标签:(967,) (3865,240,320,3) 回溯(最近一次调用): File"C:/Users/Christian/PycharmProjects/MuenzbetragserkennungResNet/Muenzbetragserkennung_ResNet.py",第34行,在model.fit(train_images,train_labels,epochs=10) 文件"C:\Users\Christian\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\keras\engine\training.py",第1278行,在fit validation_split=validation_split中) 文件"C:\Users\Christian\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\keras\engine\training.py",第917行,在_standardize_user_data异常_前缀=‘目标’中) 文件"C:\Users\Christian\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\keras\engine\training_utils.py",第191行,在standardize_input_data‘中,但得到了形状为’+str(Data_shape)的数组) ValueError:检查目标时的错误:期望global_max_pooling2d具有形状(2048年),但得到与形状(1,)相同的数组 进程已完成,退出代码为%1

我已经尝试过不同的池版本,但只有其他ValueErrors。模型应该输出一个值(图像中的硬币价值)。

提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-02 14:18:02

问题是标签是一维的,但是模型的输出是一个2048维向量。这是很自然的,因为您没有添加任何层来生成正确的输出。可以这样做:

代码语言:javascript
复制
resnet_model = tf.keras.applications.resnet50.ResNet50(include_top=False, 
weights=None, input_tensor=None, input_shape=(height, width, channels), 
pooling='max')

x = Dense(128, activation='relu')(resnet_model.output)
x = Dense(1, activation='relu')(x)

model = Model(resnet_model.input, x)

注意,最后一个密集层输出单个标量,它现在与目标兼容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52136423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档