Ejemplo n.º 1
0

# KNN
def knn(train_x, train_y):
    print('************* KNN ************')
    # k的个数 uniform是均等的权重 distance是不均等的权重
    model = KNeighborsClassifier(n_neighbors=4,weights='distance',n_jobs=1)
    model.fit(train_x, train_y)
    return model


if __name__ == '__main__':

    # 加载数据集
    print('reading training and testing data...')
    train_x, train_y, test_x, test_y = mnist_load.get_data()

    # 将标签二值化
    # train_y = label_binarize(train_y,classes=[0,1,2,3,4,5,6,7,8,9])
    # test_y = label_binarize(test_y,classes=[0,1,2,3,4,5,6,7,8,9])

    # # 数据类型改为float32,单精度浮点数
    # train_x = train_x.astype('float32')
    # test_x = test_x.astype('float32')
    # # 数据归一化
    # train_x /= 255
    # test_x /= 255

    start_time = time.time()

    # psum1 = 0
Ejemplo n.º 2
0
    plt.figure(figsize=(n_cols * 1.4, n_rows * 1.6))
    for row in range(n_rows):
        for col in range(n_cols):
            index = n_cols * row + col
            plt.subplot(n_rows, n_cols, index + 1)
            plt.imshow(x_data[index].reshape(28, 28),
                       cmap="binary",
                       interpolation='nearest')
            plt.axis('off')
            plt.title(class_name[y_data[index]])
    plt.show()
    return None


if __name__ == "__main__":
    x_train, y_train, x_test, y_test = load.get_data()
    show_imgs(7, 7, x_train, y_train, class_name)  #展示功能

    #不一样的是,神经网络进行浮点数计算,这里进行归一化
    x_train = x_train.reshape((-1, 28, 28, 1)).astype("float32") / 255
    x_test = x_test.reshape((-1, 28, 28, 1)).astype("float32") / 255

    #建立模型
    model = keras.Sequential([
        #(-1,28,28,1)->(-1,28,28,32)
        keras.layers.Conv2D(input_shape=(28, 28, 1),
                            filters=32,
                            kernel_size=5,
                            strides=1,
                            padding='same'),  # Padding method),
        #(-1,28,28,32)->(-1,14,14,32)