Exemple #1
0
import numpy as np

if __name__ == '__main__':
    if platform.system() == 'Windows':
        folder = 'C:/data/train_data'
    elif platform.system() == 'Linux':
        folder = '/home/shaoheng/Documents/PythonPractice/handwritedigit'

    batch = 5
    class_num = 10

    data_generator = DataGenerator(folder,
                                   batch, (16, 16),
                                   class_num=class_num)
    model = MlpBatch(input_nodes=16 * 16,
                     hidden_nodes=(12, class_num),
                     batch_size=batch)

    right = 0
    for i in range(1000000):
        if (i + 1) % 100 == 0:
            print('acc=%.2f' % (right / (i * batch) * 100), '%')

        x, y = data_generator.load_data()
        out = model.forward_prop(x)
        model.back_prop(x, y)

        for b in range(batch):
            if np.argmax(y[b]) == np.argmax(out[b]):
                right += 1
Exemple #2
0
        folder = 'C:/data/train_data'
        test_folder = 'C:/data/test_data'
    elif platform.system() == 'Linux':
        folder = '/home/shaoheng/Documents/PythonPractice/handwritedigit'

    batch = 32
    class_num = 10

    data_generator = DataGenerator(folder,
                                   batch, (16, 16),
                                   class_num=class_num)

    valid_data_gen = DataGenerator(test_folder,
                                   160, (16, 16),
                                   class_num=class_num)
    valid_x, valid_y = valid_data_gen.load_data()

    train_data_gen = DataGenerator(folder, 320, (16, 16), class_num=class_num)
    train_full_x, train_full_y = train_data_gen.load_data()

    def forward(x):
        for deep, now_layer in enumerate(model):
            if type(now_layer) == Conv2D and deep == 0:
                x = np.expand_dims(x, -1)
            elif type(now_layer) == FC:
                x = np.reshape(
                    x, (np.shape(x)[0], -1))  # flatten for feeding into FC
            x = now_layer.forward_prop(x)
        return x

    def backward(y):