我的val_loss波动并且每5步我的val_los很高

我找到了一个非常有用的网站来学习Resnet,并且使用他的代码来训练我的图像,但是我发现我的val_loss波动并且每5个循环我的val_loss会很高,您可以看到我的val_loss会如此高,每5个时期{{3 }}

我的批处理大小是5,而我的时代是32,我使用的优化器是sgd = opt = SGD(lr=1e-1,momentum=0.9,decay=1e-1 / NUM_EPOCHS)

有人可以向我解释为什么会这样吗?非常感谢 这是我的代码`#用法      #python save_model.py-数据集疟疾-模型save_model.model

 import matplotlib
 matplotlib.use("Agg")

 # import the necessary packages
from keras.preprocessing.image import ImageDataGenerator
from keras.optimizers import SGD
from pyimagesearch.resnet import Resnet
from sklearn.metrics import classification_report
from imutils import paths
import matplotlib.pyplot as plt
import numpy as np
import argparse
import os

# construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-d","--dataset",type=str,required=True,help="path dataset of input images")
ap.add_argument("-m","--model",help="path to trained model")
ap.add_argument("-p","--plot",default="plot.png",help="path to output loss/accuracy plot")
args = vars(ap.parse_args())

# initialize the number of training epochs and batch size
NUM_EPOCHS = 25
BS = 5

TRAIN_PATH = os.path.sep.join([args["dataset"],"training"])
VAL_PATH = os.path.sep.join([args["dataset"],"validation"])
TEST_PATH = os.path.sep.join([args["dataset"],"testing"])



totalTrain = len(list(paths.list_images(TRAIN_PATH)))
totalVal = len(list(paths.list_images(VAL_PATH)))
totalTest = len(list(paths.list_images(TEST_PATH)))

trainAug = ImageDataGenerator(
  rescale=1 / 255.0,rotation_range=20,zoom_range=0.05,width_shift_range=0.05,height_shift_range=0.05,shear_range=0.05,horizontal_flip=True,fill_mode="nearest")

 # initialize the validation (and testing) data augmentation object
  valAug = ImageDataGenerator(rescale=1 / 255.0)


  trainGen = trainAug.flow_from_directory(
   TRAIN_PATH,class_mode="categorical",target_size=(64,64),color_mode="rgb",shuffle=True,batch_size=32)


  valGen = valAug.flow_from_directory(
     VAL_PATH,shuffle=False,batch_size=BS)


    testGen = valAug.flow_from_directory(
     TEST_PATH,batch_size=BS)

   model = Resnet.build(64,64,3,2,(2,3),(32,128,256),reg=0.0005)
   opt = SGD(lr=1e-1,decay=1e-1 / NUM_EPOCHS)
   model.compile(loss="binary_crossentropy",optimizer=opt,metrics=["accuracy"])

      H = model.fit_generator(
        trainGen,steps_per_epoch=totalTrain // BS,validation_data=valGen,validation_steps=totalVal // BS,epochs=NUM_EPOCHS)



         print("[INFO] evaluating network...")
         testGen.reset()
          predIdxs = model.predict_generator(testGen,steps=(totalTest // BS) + 1)


        predIdxs = np.argmax(predIdxs,axis=1)

      print(classification_report(testGen.classes,predIdxs,target_names=testGen.class_indices.keys()))
love14521 回答:我的val_loss波动并且每5步我的val_los很高

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3053055.html

大家都在问