我正在尝试使用Python进行深度学习 第5.3节“通过数据增强进行特征提取” 来解决带有resnet50(图像网络权重)的3类问题。
位于https://github.com/morenoh149/plantdisease的完整代码
Task<SolrSearchResults> GetSolrSearchResults(List<string> batch)
问题:
List<List<string>> termsBatches = new List<List<string>>()
{
new List<string>() { "apple", "banana" },
new List<string>() { "cat", "dog" },
};
IObservable<SolrSearchResults> query =
from batch in termsBatches.ToObservable()
from result in Observable.FromAsync(() => GetSolrSearchResults(batch))
select result;
IDisposable subscription =
query
.Subscribe(result =>
{
//Process result
});
和from keras import models
from keras import layers
from keras.applications.resnet50 import ResNet50
from keras import optimizers
from keras.preprocessing.image import ImageDataGenerator
input_shape = (224, 224, 3)
target_size = (224, 224)
batch_size = 20
conv_base = ResNet50(weights='imagenet', input_shape=input_shape, include_top=False)
model = models.Sequential()
model.add(conv_base)
model.add(layers.Flatten())
model.add(layers.Dense(256, activation='relu'))
model.add(layers.Dense(3, activation='softmax'))
conv_base.trainable = False
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'input/train',
target_size=target_size,
batch_size=batch_size,
class_mode='categorical')
validation_generator = test_datagen.flow_from_directory(
'input/validation',
target_size=target_size,
batch_size=batch_size,
class_mode='categorical')
model.compile(loss='categorical_crossentropy',
optimizer=optimizers.RMSprop(lr=2e-5),
metrics=['acc'])
history = model.fit_generator(
train_generator,
steps_per_epoch=96,
epochs=30,
verbose=2,
validation_data=validation_generator,
validation_steps=48)
并没有多大帮助。这些值应该是什么?
我有3个班级,每个班级有1000张图片。我将其拆分为60/20/20训练/验证/测试。更新: 这可能是keras本身的问题
答案 0 :(得分:0)
要回答第一个问题:steps_per_epoch
是训练生成器在考虑一个纪元完成之前应该产生的批处理数量。如果您有600个批量为20的训练图像,则每个时期等30个步骤。 validation_steps
将相同的逻辑应用于验证数据生成器,无论是在每个纪元的结尾。
通常,steps_per_epoch
是数据集的大小除以批处理大小。