【发布时间】:2021-06-25 03:48:16
【问题描述】:
大家好,我是深度学习的新手,在这里我正在尝试实现一个图像分类器,但是当我运行包含 fit 方法的单元格时,它显示以下错误我不知道如何解决这个错误我已经检查了各种类似的帖子也在这个错误上,但我没有得到它们,如果你知道如何解决它,请帮助我,请告诉我一个简短的细节为什么会出现这个问题。
InvalidArgumentError:reshape 的输入是一个带有 7872512 的张量 值,但请求的形状需要 6400 的倍数 [[节点 sequence_7/flatten_6/Reshape(定义在 :1) ]] [操作:__inference_train_function_5120]
函数调用栈:train_function
import pandas as pd
import numpy as np
import cv2
import tensorflow as tf
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale=1. / 255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
training_set = train_datagen.flow_from_directory('drive/MyDrive/EmotionDetectionDataset/dataset/train')
test_datagen = ImageDataGenerator(rescale=1. / 255)
validation_generator = test_datagen.flow_from_directory('drive/MyDrive/EmotionDetectionDataset/dataset/test',target_size=(48,48),batch_size=32,class_mode='categorical')
test_set = validation_generator
cnn = tf.keras.models.Sequential()
cnn.add(tf.keras.layers.Conv2D(filters=32,kernel_size = 3,activation='relu',input_shape=[48,48,3]))
cnn.add(tf.keras.layers.MaxPool2D(pool_size=(2,2),strides=2))
cnn.add(tf.keras.layers.Conv2D(filters=64,kernel_size = 3,activation='relu'))
cnn.add(tf.keras.layers.MaxPool2D(pool_size=(2,2),strides=2))
cnn.add(tf.keras.layers.Flatten())
cnn.add(tf.keras.layers.Dense(units=128,activation='relu'))
cnn.add(tf.keras.layers.Dense(units=7,activation='relu'))
cnn.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])
cnn.fit(x=training_set,validation_data=test_set,epochs=25)
【问题讨论】:
标签: python tensorflow machine-learning deep-learning conv-neural-network