首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

我搭建的神经网络代码哪里出了问题?

2026-08-28 1 阅读 约10分钟阅读 面冷心慈的枇杷
分享:
字号:
有人能帮忙看一下我的外表的神经网络的代码哪里生长问题吗,我尝试的是图像分类,循环的过程中验证集的损失值越来越大而且精度一直在0.1徘徊知道(我是小白真的不怎么办了)#调用库 import numpy as np import matplotlib.pyplot as plt #画图 from PIL import Image #读图 import os import splitfolders #自动划分数据集 fromtensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D、MaxPooling2D、Flatten、Dense、Dropout from tensorflow.keras.optimizers import Adam from sklearn.metrics import fusion_matrix,classification_report import seaborn as sns #数据集划分 input_folder=r"D:\machinelearning\rename_picture" output_folder=r"D:\machinelearning\split_picture" splitfolders.ratio(input_folder,output=output_folder,seed=123,ratio=(0.8,0.2)) #123固定每次划分一致train_path=output_folder+r"\train" val_path=output_folder+r"\val" #处理读取数据img_size=(128,128) batch_size=32 #归一化像素 train_datagen=ImageDataGenerator(rescale=1./255,rotation_range=15,width_shift_range=0.1,height_shift_range=0.1,zoom_range=0.1,horizontal_flip=True) val_datagen=ImageDataGenerator(rescale=1./255) #统一尺寸 train_generator=train_datagen.flow_from_directory(train_path, target_size=img_size,batch_size=batch_size, class_mode="categorical",shuffle=True) val_generator=val_datagen.flow_from_directory(val_path, target_size=img_size,batch_size=batch_size, class_mode="categorical",shuffle=False) # 构建CNN模型 from tensorflow.keras.callbacks import EarlyStopping,ReduceLROnPlateau from tensorflow.keras.layers 导入 BatchNormalization model=Sequential() model.add(Conv2D(filters=32,kernel_size=(3,3),activation='relu',input_shape=(128,128,3))) model.add(BatchNormalization()) model.add(MaxPooling2D(pool_size=(2,2))) model.add(Conv2D(filters=64,kernel_size=(3,3),activation='relu')) model.add(BatchNormalization()) model.add(MaxPooling2D(pool_size=(2,2))) model.add(Conv2D(filters=128,kernel_size=(3,3),activation='relu')) model.add(BatchNormalization()) model.add(MaxPooling2D(pool_size=(2,2))) model.add(Conv2D(filters=192,kernel_size=(3,3),activation='relu')) model.add(BatchNormalization()) model.add(MaxPooling2D(pool_size=(2,2))) model.add(Flatten()) model.add(Dense(256,activation='relu')) model.add(Dropout(0.6)) model.add(Dense(10,activation='softmax')) model.compile(optimizer=Adam(learning_rate=0.0003), loss='categorical_crossentropy',metrics=['accuracy'])回调=[ReduceLROnPlateau(monitor='val_loss',factor=0.5,patience=2,min_lr=1e-7,verbose=1), EarlyStopping(monitor='val_loss',patience=6,restore_best_weights=True,verbose=1)] model.summary()历史=model.fit(train_generator,validation_data=val_generator, epochs=20,回调=回调) acc=history.history['accuracy'] val_acc=history.history['val_accuracy'] loss=history.history['loss'] val_loss=history.history['val_loss'] epochs_range=range(len(acc)) plt.figure(figsize=(9,6)) plt.plot(epochs_range,loss,label='训练损失') plt.plot(epochs_range,val_loss,label='验证损失') plt.legend(loc='右上') plt.title('训练和验证损失') plt.xlabel('Epochs') plt.ylabel('损失') plt.show() plt.figure(figsize=(9,6)) plt.plot(epochs_range,acc,label='训练精度') plt.plot(ep
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱