что показывают бары в обучении керас? - PullRequest
0 голосов
/ 14 декабря 2018

Я использую керасы и часть моей сети, и параметры следующие:

   parser.add_argument("--batch_size", default=396, type=int,
            help="batch size")
    parser.add_argument("--n_epochs", default=10, type=int,
            help="number of epoch")
    parser.add_argument("--epoch_steps", default=10, type=int,
            help="number of epoch step")
    parser.add_argument("--val_steps", default=4, type=int,
            help="number of valdation step")
    parser.add_argument("--n_labels", default=2, type=int,
            help="Number of label")
    parser.add_argument("--input_shape", default=(224, 224, 3),
            help="Input images shape")
    parser.add_argument("--kernel", default=3, type=int,
            help="Kernel size")
    parser.add_argument("--pool_size", default=(2, 2),
            help="pooling and unpooling size")
    parser.add_argument("--output_mode", default="softmax", type=str,
            help="output activation")
    parser.add_argument("--loss", default="categorical_crossentropy", type=str,
            help="loss function")
    parser.add_argument("--optimizer", default="adadelta", type=str,
            help="oprimizer")
    args = parser.parse_args()

    return args


def main(args):
    # set the necessary list
    train_list = pd.read_csv(args.train_list, header=None)
    val_list = pd.read_csv(args.val_list, header=None)
train_gen = data_gen_small(trainimg_dir, trainmsk_dir,
        train_list, args.batch_size,
        [args.input_shape[0], args.input_shape[1]], args.n_labels)
#print(train_gen, "train_gen is:")
val_gen = data_gen_small(valimg_dir, valmsk_dir,
        val_list, args.batch_size,
        [args.input_shape[0], args.input_shape[1]], args.n_labels)

model = segnet(args.input_shape, args.n_labels,
        args.kernel, args.pool_size, args.output_mode)
print(model.summary())

model.compile(loss=args.loss,
        optimizer=args.optimizer, metrics=["accuracy"])
model.fit_generator(train_gen, steps_per_epoch=args.epoch_steps,
        epochs=args.n_epochs, validation_data=val_gen,
        validation_steps=args.val_steps, verbose=1)

Я получаю 10 результатов (количество эпох) следующим образом, но я не понимаю, почему у меня 10 баров длякаждая эпоха?Точность и потери, которые сообщаются в каждом из столбцов, показывают точность и потери для каждой партии?Они только для одной партии или в них также учитываются предыдущие партии?

Epoch 10/10
1/10 [==>...........................] - ETA: 3s - loss: 0.4046 - acc: 0.8266
 2/10 [=====>........................] - ETA: 3s - loss: 0.3336 - acc: 0.8715
 3/10 [========>.....................] - ETA: 2s - loss: 0.3083 - acc: 0.8855
    4/10 [===========>..................] - ETA: 2s - loss: 0.2820 - acc: 0.9010
     5/10 [==============>...............] - ETA: 1s - loss: 0.2680 - acc: 0.9119
     6/10 [=================>............] - ETA: 1s - loss: 0.4112 - acc: 0.8442
     7/10 [====================>.........] - ETA: 1s - loss: 0.4040 - acc: 0.8446
     8/10 [=======================>......] - ETA: 0s - loss: 0.3811 - acc: 0.8597
     9/10 [==========================>...] - ETA: 0s - loss: 0.3623 - acc: 0.8708
10/10 [==============================] - 4s 398ms/step - loss: 0.3495 - acc: 0.8766 - val_loss: 0.5148 - val_acc: 0.7703

PS: количество моих тренировочных данных составляет 659, а проверочных данных - 329.

1 Ответ

0 голосов
/ 14 декабря 2018

Да, это показывает совокупные результаты.Вы можете изменить параметр verbose на 2, который перестанет показывать несколько строк, и вы получите одну строку для каждой эпохи, или 0, который не показывает результаты.

...