示例#1
0
        ]

        model = Model(
            layers=layers,
            num_classes=10,
            optimizer=GDMomentumOptimizer(lr=1e-3, mu=0.9),
        )

        print("\n\n------------------------------------")

        print("Initialize: {}".format(initializer))

        print("\nRun training:\n------------------------------------")

        stats = model.train(data_set=data, method='dfa', num_passes=num_passes, batch_size=50)
        loss, accuracy = model.cost(*data.test_set())

        print("\nResult:\n------------------------------------")
        print('loss on test set: {}'.format(loss))
        print('accuracy on test set: {}'.format(accuracy))

        statistics.append(stats)

    plt.title('Loss')
    plt.xlabel('epoch')
    plt.ylabel('loss')
    for stats in statistics:
        train_loss = scipy.ndimage.filters.gaussian_filter1d(stats['train_loss'], sigma=10)
        plt.plot(np.arange(len(stats['train_loss'])), train_loss)
    plt.legend(labels, loc='upper right')
    plt.grid(True)
示例#2
0
    def animate(i):
        ax1.clear()
        ax1.plot(np.arange(len(model_dfa.statistics['train_loss'])),
                 model_dfa.statistics['train_loss'])
        ax1.plot(np.arange(len(model_bp.statistics['train_loss'])),
                 model_bp.statistics['train_loss'])

    dfa_train_thread = threading.Thread(target=Trainer(model_dfa, 'dfa'))
    bp_train_thread = threading.Thread(target=Trainer(model_bp, 'bp'))

    dfa_train_thread.start()
    bp_train_thread.start()

    ani = animation.FuncAnimation(fig, animate, interval=1000)
    plt.show()

    dfa_train_thread.join()
    bp_train_thread.join()

    loss, accuracy = model_dfa.cost(*data.test_set())

    print("\nResult DFA:\n------------------------------------")
    print('loss on test set: {}'.format(loss))
    print('accuracy on test set: {}'.format(accuracy))

    loss, accuracy = model_bp.cost(*data.test_set())

    print("\nResult BP:\n------------------------------------")
    print('loss on test set: {}'.format(loss))
    print('accuracy on test set: {}'.format(accuracy))