- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我将输入图像的高度和宽度保持在 362X362 以下时,出现负尺寸错误。我很惊讶,因为这个错误通常是由于错误的输入尺寸引起的。我没有找到任何数字或行和列会导致错误的原因。下面是我的代码-
batch_size = 32
num_classes = 7
epochs=50
height = 362
width = 362
train_datagen = ImageDataGenerator(
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'train',
target_size=(height, width),
batch_size=batch_size,
class_mode='categorical')
validation_generator = test_datagen.flow_from_directory(
'validation',
target_size=(height, width),
batch_size=batch_size,
class_mode='categorical')
base_model = InceptionV3(weights='imagenet', include_top=False, input_shape=
(height,width,3))
x = base_model.output
x = Conv2D(32, (3, 3), use_bias=True, activation='relu') (x) #line2
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Conv2D(64, (3, 3), activation='relu') (x) #line3
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Flatten()(x)
x = Dense(batch_size, activation='relu')(x) #line1
x = (Dropout(0.5))(x)
predictions = Dense(num_classes, activation='softmax')(x)
model = Model(inputs=base_model.input, outputs=predictions)
for layer in base_model.layers:
layer.trainable = False
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=
['accuracy'])
model.fit_generator(
train_generator,
samples_per_epoch=128,
nb_epoch=epochs,
validation_data=validation_generator,
verbose=2)
for i, layer in enumerate(base_model.layers):
print(i, layer.name)
for layer in model.layers[:309]:
layer.trainable = False
for layer in model.layers[309:]:
layer.trainable = True
from keras.optimizers import SGD
model.compile(optimizer=SGD(lr=0.0001, momentum=0.9),
loss='categorical_crossentropy', metrics=['accuracy'])
model.save('my_model.h5')
model.fit_generator(
train_generator,
samples_per_epoch=512,
nb_epoch=epochs,
validation_data=validation_generator,
verbose=2)
最佳答案
替换这个:
x = MaxPooling2D(pool_size=(2, 2))(x)
用这个:
x = MaxPooling2D((2,2), padding='same')(x)
在下采样期间防止维度。
关于python - 值错误 : Negative dimension size caused by subtracting 2 from 1 for 'max_pooling2d_6/MaxPool' (op: 'MaxPool' ) with input shapes: [? ,1,1,64],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49079115/
我刚开始使用 keras并注意到最大池化有两个名称非常相似的层:MaxPool和 MaxPooling .我很惊讶我在谷歌上找不到这两者之间的区别;所以我想知道两者之间有什么区别(如果有的话)。 最佳
model = Sequential() model.add(Conv2D(32, (3, 3), input_shape=(3, 150, 150),padding='same')) model.a
当我将输入图像的高度和宽度保持在 362X362 以下时,出现负尺寸错误。我很惊讶,因为这个错误通常是由于错误的输入尺寸引起的。我没有找到任何数字或行和列会导致错误的原因。下面是我的代码- batch
我已经使用 Keras 实现了以下模型。在下面,我使用的是 Tensorflow。 from keras.models import Sequential from keras.layers impo
我们在 Microsoft Azure 上托管一个网站,并让流量管理器在两个 AppService 上分配流量,每个 AppService 有 15 个实例,连接字符串中的最大池大小为 80。 我们还
我用较小的数据集训练了以下 CNN 模型,因此它确实过拟合: model = Sequential() model.add(Conv2D(32, kernel_size=(3,3), input_sh
我已经在Matlab中实现了CNN,但是我的实现花费了太多时间。我已经确定哪个部分更耗时。下面是max-pooling相关代码: %blockwise operation fun = @(block_
我正在使用 Tensorflow 训练 CNN。我目前的计算基于 Float32,这是初始化变量时的一种默认设置。 我猜想通过使用 float64 作为我的 dtype 我可以获得更准确的结果,所以我
我正在尝试为 Conv Networks 中的 MaxPooling 层实现 fprop,没有重叠和池化区域 2x2。为此,我需要将输入矩阵拆分为 2x2 大小的矩阵,以便提取最大值。然后我创建了一个
我有以下用于 TensorFlow 上的卷积层的代码。该层是更大计算图的一部分。 # Define the shape of the filter filter_shape = [1,
我在尝试实现 AlexNet 来解决 GTSRB 问题时收到此错误消息:NegativeDimension Size Caused by minus 3 from 1 for 'max_pooling
显卡:gtx1070ti 8Gb,batchsize 64,输入图像尺寸128*128。我有这样的 UNET,使用 resnet152 作为编码器,工作得很好: class UNetResNet(nn
我想手动设置 maxPool 大小和 keepAliveTime。但是,只能在执行以下代码时设置 ExecutorService executorService = new Thr
我是 Python 和 Tensorflow 的新手,现在我正在尝试学习 DC GAN。我已经实现了这个版本的鉴别器: def discriminator(images, reuse=False, a
我正在尝试对 channel 维度进行 maxpooling: class ChannelPool(nn.Module): def forward(self, input):
This question already has an answer here: 'Tensor' object has no attribute 'lower' (1个答案) 在4个月前关闭。 这
我正在尝试根据教程 from here 使用 Keras 和 Tensorflow 实现用于图像分类的神经网络. 我添加了以下代码: from keras.models import Sequenti
我是一名优秀的程序员,十分优秀!