问题描述
我使用Cifar10和以下代码创建了一个数据集。当我运行代码时,我可以看到训练矩阵形状为(50000,32,3),测试数据为(10000,3)。因此,这意味着将对50000个数据中的每一个都拟合训练数据模型。但是在编译模型期间,我看到了1563个数据而不是50000个数据,损失函数的值是第50个数据的“ nan”。 我认为这是不正常的,它直接影响预测的准确性。 为什么在屏幕上看不到50000的值?在此过程中我粘贴了屏幕。如果有问题我该如何解决?
import keras
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D,Flatten,Dense,Dropout,MaxPooling2D
from pathlib import Path
(x_train,y_train),(x_test,y_test) = cifar10.load_data()
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
y_train = keras.utils.to_categorical(y_train,10) # 50000x10 bir matris
y_test = keras.utils.to_categorical(y_test,10) # 10000x10 bir matris
print(x_train.shape)
print(x_test.shape)
model: Sequential = Sequential()
model.add(Conv2D(32,(3,3),padding='same',activation='relu',input_shape=(32,3)))#1.layer
model.add(Conv2D(32,activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2))) #maxppooling layer
model.add(Dropout(0.25))
model.add(Conv2D(64,3,),padding="same",activation="relu"))
model.add(Conv2D(64,activation="relu"))
model.add(MaxPooling2D(pool_size=(2,2))) #maxppooling layer
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(512,activation='relu')) #5.layer
model.add(Dense(10,activation="softmax"))#çıktı layer
model.add(Dropout(0.5))
model.compile(
loss='categorical_crossentropy',optimizer='Adam',metrics=['accuracy']
)
model.summary()
model.fit(
x_train,y_train,epochs=3,validation_data=(x_test,y_test),shuffle=True
)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)