- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用InceptionV4
来解决一些分类问题。在使用它解决问题之前,我正在尝试对其进行实验。
我用新的密集层替换了最后一个密集层(大小为 1001
),编译了模型并尝试拟合它
from keras import backend as K
import inception_v4
import numpy as np
import cv2
import os
from keras import optimizers
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D
from keras.layers import Activation, Dropout, Flatten, Dense, Input
from keras.models import Model
os.environ['CUDA_VISIBLE_DEVICES'] = ''
my_batch_size=32
train_data_dir ='//shared_directory/projects/try_CDFxx/data/train/'
validation_data_dir ='//shared_directory/projects/try_CDFxx/data/validation/'
img_width, img_height = 299, 299
num_classes=3
nb_epoch=50
nbr_train_samples = 24
nbr_validation_samples = 12
def train_top_model (num_classes):
v4 = inception_v4.create_model(weights='imagenet')
predictions = Dense(output_dim=num_classes, activation='softmax', name="newDense")(v4.layers[-2].output) # replacing the 1001 categories dense layer with my own
main_input= v4.layers[1].input
main_output=predictions
t_model = Model(input=[main_input], output=[main_output])
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.1,
zoom_range=0.1,
rotation_range=10.,
width_shift_range=0.1,
height_shift_range=0.1,
horizontal_flip=True)
val_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
train_data_dir,
target_size = (img_width, img_height),
batch_size = my_batch_size,
shuffle = True,
class_mode = 'categorical')
validation_generator = val_datagen.flow_from_directory(
validation_data_dir,
target_size=(img_width, img_height),
batch_size=my_batch_size,
shuffle = True,
class_mode = 'categorical')
#
t_model.compile(optimizer='rmsprop', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
#
t_model.fit_generator(
train_generator,
samples_per_epoch = nbr_train_samples,
nb_epoch = nb_epoch,
validation_data = validation_generator,
nb_val_samples = nbr_validation_samples)
train_top_model(num_classes)
但是我收到以下错误
Traceback (most recent call last):
File "re_try.py", line 76, in <module>
train_top_model(num_classes)
File "re_try.py", line 72, in train_top_model
nb_val_samples = nbr_validation_samples)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 1508, in fit_generator
class_weight=class_weight)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 1261, in train_on_batch
check_batch_dim=True)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 985, in _standardize_user_data
exception_prefix='model target')
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 113, in standardize_input_data
str(array.shape))
ValueError: Error when checking model target: expected newDense to have shape (None, 1) but got array with shape (24, 3)
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 409, in data_generator_task
generator_output = next(generator)
File "/usr/local/lib/python2.7/dist-packages/keras/preprocessing/image.py", line 693, in next
x = self.image_data_generator.random_transform(x)
File "/usr/local/lib/python2.7/dist-packages/keras/preprocessing/image.py", line 403, in random_transform
fill_mode=self.fill_mode, cval=self.cval)
File "/usr/local/lib/python2.7/dist-packages/keras/preprocessing/image.py", line 109, in apply_transform
final_offset, order=0, mode=fill_mode, cval=cval) for x_channel in x]
AttributeError: 'NoneType' object has no attribute 'interpolation'
我做错了什么?为什么在我将 newDense 层的大小定义为 3 后,它预计将具有 (None,1)
形状?
非常感谢
PS我正在添加模型摘要的末尾
merge_25 (Merge) (None, 8, 8, 1536) 0 activation_140[0][0]
merge_23[0][0]
merge_24[0][0]
activation_149[0][0]
____________________________________________________________________________________________________
averagepooling2d_15 (AveragePool (None, 1, 1, 1536) 0 merge_25[0][0]
____________________________________________________________________________________________________
dropout_1 (Dropout) (None, 1, 1, 1536) 0 averagepooling2d_15[0][0]
____________________________________________________________________________________________________
flatten_1 (Flatten) (None, 1536) 0 dropout_1[0][0]
____________________________________________________________________________________________________
newDense (Dense) (None, 3) 4611 flatten_1[0][0]
====================================================================================================
Total params: 41,210,595
Trainable params: 41,147,427
Non-trainable params: 63,168
最佳答案
好的,问题出在
validation_generator = val_datagen.flow_from_directory(...
class_mode = 'categorical')
Categorical
使您的生成器返回一个单热编码向量。在你的例子中是一个3-d
。但是您将 loss
设置为 sparse_categorical_crossentropy
,它接受 int
作为标签。您应该更改 class_mode="sparse"
或 loss="categorical_crossentropy"
。
关于python - 迁移学习失败,因为密集层预计具有形状(无,1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42627909/
我目前正在使用协卷积层来训练神经网络,但在向其提供输入和输出维度时似乎存在一些问题。 输入由 (x,2050) 组成输出为 (x,13)因此,对于每行 2050 列,应创建一个包含 13 个元素的数组
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我有以下内容: public String searchRecipes( String searchString, int pageNumber ) throws Exception {
现在,在任何人链接这篇文章之前: JSLint : Expected '!!' and instead saw '?' 我想解释一下,我想我明白为什么 jslint 给我这个错误,但是我不确定如何修改
我正在尝试远程登录到 Cisco 路由器并使用 pexpect 发出命令。它的工作,但 sendline() 在输出中重复。即使在使用 setecho 为 False 之后。代码是: ''' Crea
我写了一个脚本从vsql中选择: LOAD 'sql://{select * from sandesh.insights_voice_day WHERE Observation_date BE
这个问题在这里已经有了答案: Android - How to achieve setOnClickListener in Kotlin? (32 个回答) 去年关闭。 我正在尝试使此切换按钮起作用-
我想在两个类之间传递一个值,但出现以下错误: Syntax error on token ";", , expected when initializing called value from ano
我使用 MySQL 5.5 ,我的表有 6 列,数据类型为 int 、varchar 、datetime 。我为 Id (int) 列创建索引。如果我希望基于 Id 列的条件查询始终保持响应时间低于
你好社区我正在做一个简单的应用程序,用户可以注册(作为新用户),所以我试图用我的 Usercontroller 创建一个新用户: class UserController :new end
我正在尝试移植 bunny到 armv7h,它使用了一些我在转换为 asm 时遇到问题的 x86 asm 东西。 static __inline__ void atomic_inc(volatile
我一直在尝试向 https://americas-uapi.copy-webservices.travelport.com/B2BGateway/connect/uAPI/SystemService
以 one 作为参数调用 sleep 的预期持续时间是多少?它是一些不超过 1 秒的随机时间吗?它是某个至少为一秒的随机时间吗? 场景: 开发人员 A 编写代码,使用输出设备按顺序执行某些步骤。代码发
我正在尝试完成有关 Spring Boot 的教程,我目前在 JPA 部分,遇到了一个我无法解决的问题。我目前所处的位置是我已经构建了实体,我已经获得了 DB(H2 数据库)所需的所有依赖项,我已经构
我有如下代码,它检查我的命名函数是否已使用某些参数调用: const wrapper = mount(); let params = new URLSearchParams();
我正在使用Facebook Audience Network通过Android应用程序获利。 我11月份的估算收入大于$ 150,但即使到下个月的12月5日,在“支出”部分的“估算的支出”中仍然“未找
我试图在 Google 跟踪代码管理器中保存此自定义 Javascript 变量,但每次都返回此错误: sendinblue.identify('$_POST['_username']',{ '
该程序可在此处获取:http://ideone.com/P1c15J 这里简要介绍一下它的作用: 声明一个字符串ptr。将此指针地址转换为小端地址并将这些字节存储在 char[] adr 中。打印出来
我想使用 DynamicTimeWarping (DTW) 的输出进行分类。事实证明,动态时间扭曲算法的输出仍然需要进行后处理。作为时间对齐过程的一部分,数据 A 的一些单个数据点将被映射到数据 B
我正在尝试使用来自 GUI 的 Weka CSVLoader 将 CSV 转换为 ARFF。在选项中,我将字符串的包围字符设置为 " ,虽然我的文件中没有引号。 我收到以下错误: weka.core.
我是一名优秀的程序员,十分优秀!