model.fit_generator. () возвращает error.Invalid Аргумент - PullRequest
0 голосов
/ 16 апреля 2020

Ниже приведен код, который я использую для тренировки некоторых жестов. каталог для обучающих данных выглядит следующим образом: «E: \ build \ set_1 \ training \ palm \ seq_01», «E: \ build \ set_1 \ training \ palm \ seq_02» и т. д.

Ошибка i Я на последних строчках. Я пробовал обе эти строки, как указано, но они выдают ошибку Invalid Argument error. Я использую этот код на ноутбуке Jupyter.

    import tensorflow as tf
from tensorflow import keras
from keras_preprocessing.image import ImageDataGenerator


path = 'E:\build\set_1\training'

training_datagen = ImageDataGenerator(rescale = 1./255)

TRAINING_DIR = 'E:/build/set_1/training/'
train_generator = training_datagen.flow_from_directory(
    TRAINING_DIR,
    target_size = (150,150),
    class_mode= 'categorical',
    batch_size=64

)


VALIDATION_DIR = "E:/build/set_1/test/"
validation_datagen = ImageDataGenerator(rescale = 1./255)

validation_generator = training_datagen.flow_from_directory(
    VALIDATION_DIR,
    target_size=(150,150),
    class_mode='categorical',
    batch_size=64
)

model = tf.keras.models.Sequential([
    # Note the input shape is the desired size of the image 150x150 with 3 bytes color
    # This is the first convolution
    tf.keras.layers.Conv2D(64, (3,3), activation='relu', input_shape=(150, 150, 3)),
    tf.keras.layers.MaxPooling2D(2, 2),
    # The second convolution
    tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2,2),
    # The third convolution
    tf.keras.layers.Conv2D(128, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2,2),
    # The fourth convolution
    tf.keras.layers.Conv2D(128, (3,3), activation='relu'),
    tf.keras.layers.MaxPooling2D(2,2),
    # Flatten the results to feed into a DNN
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dropout(0.5),
    # 512 neuron hidden layer
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dense(3, activation='softmax')
])

model.summary()

model.compile(loss='categorical_crossentropy',optimizer = 'rmsprop',
              metrics= ['accuracy'])


history = model.fit_generator(train_generator,steps_per_epoch = train_generator.samples//train_generator.batch_size,epochs = 30,validation_data = validation_generator,validation_steps=validation_generator.samples//validation_generator.batch_size)

history = model.fit(train_generator, epochs=25, validation_data = validation_generator, verbose = 1)
...