美文网首页深度学习
使曲线变的平滑

使曲线变的平滑

作者: 庵下桃花仙 | 来源:发表于2019-05-13 22:01 被阅读0次

    精度图和损失图都包含噪声。可将每个损失和精度都替换为指数移动平均值,从而让曲线变得平滑。

    # 使曲线变的平滑
    def smooth_curve(points, factor=0.8):
        smoothed_points = []
        for point in points:
            if smoothed_points:
                previous = smoothed_points[-1]
                smoothed_points.append(previous * factor + point * (1 - factor))
            else:
                smoothed_points.append(point)
        return  smoothed_points
    
    plt.plot(epochs, smooth_curve(acc), 'bo', label='Smoothed training acc')
    plt.plot(epochs, smooth_curve(val_acc), 'b', label='Smoothed validation acc')
    plt.title('Training and validation accuracy')
    plt.legend()
    
    plt.figure()
    
    plt.plot(epochs, smooth_curve(loss), 'bo', label='Smoothed training loss')
    plt.plot(epochs, smooth_curve(val_loss), 'b', label='Smoothed validation loss')
    plt.title('Training and validation loss')
    plt.legend()
    
    plt.show()
    

    在测试数据上评估模型

    # 在测试数据上评估模型
    test_generator = test_datagen.flow_from_directory(
        test_dir,
        target_size=(150, 150),
        batch_size=20,
        class_mode='binary'
    )
    
    test_loss, test_acc = model.evaluate_generator(test_generator, steps=50)
    print('test acc:', test_acc)
    

    相关文章

      网友评论

        本文标题:使曲线变的平滑

        本文链接:https://www.haomeiwen.com/subject/wwrdaqtx.html