我的任务是创建一个训练模型,该模型将在最后生成 .h5 文件。然而,我在这方面遇到了很多麻烦,希望我能得到一些指导。目前我正试图让它基本上只是开始训练,然后创建 .h5 文件,我将在以后对图像进行规范化等工作。
有几点需要注意,我有两个以上的类别,而且我的图片大小不一。我也没有 GPU。我希望得到一些指导或答案。感谢你们提供的任何帮助
######################################################
# Imports
######################################################
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.optimizers import RMSprop
from tensorflow.keras import layers
######################################################
# Settings and Parameters
######################################################
train_pics = ImageDataGenerator(rescale=1/255) # setting the value of which we multiply before any other processing
test_pics = ImageDataGenerator(rescale=1/255) # setting the value of which we multiply before any other processing
trainSet = train_pics.flow_from_directory('Pictures/train/', target_size=(100, 100), batch_size=11,
class_mode='categorical') # path and data
testSet = train_pics.flow_from_directory('Pictures/test/', target_size=(100, 100), batch_size=20,
class_mode='categorical') # path and data
######################################################
# Model Creation
######################################################
model = keras.Sequential(
[
tf.keras.layers.Conv2D(16, (3, 3), activation='relu', input_shape=(250, 250, 3)),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Conv2D(32, (3, 3), activation="relu"),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Conv2D(64, (3, 3), activation="relu"),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Conv2D(64, (3, 3), activation="relu"),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Conv2D(64, (3, 3), activation="relu"),
tf.keras.layers.MaxPooling2D(2, 2),
layers.Flatten(),
layers.Dropout(0.5),
layers.Dense(8, activation="softmax"),
]
)
model.compile(loss='categorical_crossentropy', # compile the model
optimizer='adam',
metrics=['accuracy'])
train = model.fit( # train the model
train_pics,
steps_per_epoch=200,
epochs=100,
validation_data=testSet
)
model.save('charactersPics.h5')
答案 0 :(得分:0)
您正在尝试将 ImageDataGenerator 作为参数传递给模型。您需要传入训练集。改变
train = model.fit(train_pics,...)
到
train = model.fit(trainSet,...)
编辑:pycharm 中的警告是相当正常的,不用太担心。