print("\nStarting a Deep Belief Net..")

    dbn = DeepBeliefNet(sizes={
        "vis": image_size[0] * image_size[1],
        "hid": 500,
        "pen": 500,
        "top": 2000,
        "lbl": 10
    },
                        image_size=image_size,
                        n_labels=10,
                        batch_size=100)
    ''' greedy layer-wise training '''

    dbn.train_greedylayerwise(vis_trainset=train_imgs,
                              lbl_trainset=train_lbls,
                              n_iterations=20,
                              verbose=True)

    # print("Classify training set")
    # dbn.recognize(train_imgs, train_lbls)
    #
    # print("Classify test set")
    # dbn.recognize(test_imgs, test_lbls)

    print("Image generation")
    for digit in range(10):
        digit_1hot = np.zeros(shape=(1, 10))
        digit_1hot[0, digit] = 1
        dbn.generate(digit_1hot, name="rbm")
    ''' fine-tune wake-sleep training '''
示例#2
0
dbn = DeepBeliefNet(
        sizes={
            "vis": image_size[0] * image_size[1],
            "hid": 500,
            "pen": 500,
            "top": 2000,
            "lbl": 10,
        },
        image_size=image_size,
        n_labels=10,
        batch_size=20,
    )

dbn.train_greedylayerwise(
    vis_trainset=train_imgs, lbl_trainset=train_lbls, n_iterations=10
)

rbm0 = dbn.rbm_stack["vis--hid"]
rbm1 = dbn.rbm_stack["hid--pen"]
rbm2 = dbn.rbm_stack["pen+lbl--top"]

image0 = train_imgs[:1,:]
lbl0 = train_lbls[:1,:]
lblany = np.ones(lbl0.shape) / 10

last = np.zeros((1,500))

losses = []
for i in range(500):
    p_0, s_0 = rbm0.get_h_given_v_dir(p_v)
示例#3
0
    print("\nStarting a Deep Belief Net..")

    dbn = DeepBeliefNet(sizes={
        "vis": image_size[0] * image_size[1],
        "hid": 500,
        "pen": 500,
        "top": 2000,
        "lbl": 10
    },
                        image_size=image_size,
                        n_labels=10,
                        batch_size=20)
    ''' greedy layer-wise training '''

    aux = dbn.train_greedylayerwise(vis_trainset=train_imgs,
                                    lbl_trainset=train_lbls,
                                    n_iterations=ITERATIONS)
    # plt.plot(range(10, 21), averages[-1], label="Original RBM")
    # plt.plot(range(10, 21), aux, label="Greedy RBM")
    # plt.xticks(range(10, 21))
    # plt.xlabel("Epoch")
    # plt.ylabel("Average Loss rate")
    # plt.legend()
    # plt.show()

    dbn.recognize(train_imgs, train_lbls)

    dbn.recognize(test_imgs, test_lbls)
    #
    # for digit in range(10):
    #     digit_1hot = np.zeros(shape=(1, 10))