精华内容
下载资源
问答
  • 手写字体识别

    千次阅读 2019-07-10 13:40:28
    1.完成手写字体识别kaggle比赛:https://www.kaggle.com/c/digit-recognizer 2.环境:谷歌云盘(内有GPU运算,速度比我自己电脑快好多倍) 3.手写字体文件 train.csv文件第一列是图像标签,后面784(28*28)列是...

    1.完成手写字体识别kaggle比赛:https://www.kaggle.com/c/digit-recognizer

    2.环境:谷歌云盘(内有GPU运算,速度比我自己电脑快好多倍)

    3.手写字体文件

        train.csv文件第一列是图像标签,后面784(28*28)列是像素。

        test.csv文件是784列像素。

        sample_submission.csv是提交的文件

    4.谷歌云盘启动

    from google.colab import drive
    drive.mount('/content/drive/')
    !ls "/content/drive/My Drive/"
    import tensorflow as tf
    tf.test.gpu_device_name()
    !ls
    # 切换目录
    import os
    os.chdir("/content/drive/My Drive/home")
    !ls

    5.预处理图像

    # 预处理数据
    import keras
    import pandas as pd
    import numpy as np
    from keras.utils import np_utils
    dataset = pd.read_csv('train.csv')
    dataset = np.array(dataset)
    x = dataset[:,1:]
    x = x/255
    x = x.reshape(-1,28,28,1)
    y = dataset[:,0]
    y = np_utils.to_categorical(y)
    print(x.shape)
    print(y.shape)

    6.构建模型训练

    from keras.layers.convolutional import Conv2D, MaxPooling2D
    from keras.layers import *
    from keras.models import Sequential
    def creat_model():
        model = Sequential()
        model.add(Conv2D(32,(5,5), padding='same',input_shape=(28,28,1),activation='relu'))
        model.add(Conv2D(64,(5,5), padding='same',activation='relu'))
        model.add(MaxPooling2D((2,2)))
        model.add(Dropout(0.3))
        model.add(Flatten())
        model.add(Dense(64,activation= 'relu'))
        model.add(Dropout(0.3))
        model.add(Dense(128,activation= 'relu'))
        model.add(Dropout(0.3))
        model.add(Dense(10,activation= 'softmax'))
        model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
        return model
    model = creat_model()
    print(model.summary())
    model.fit(x=x,y=y,epochs=10,batch_size=20)

    7.数据预测

    dataset2 = pd.read_csv('test.csv')
    dataset2 = np.array(dataset2)
    dataset2 = dataset2.reshape(-1,28,28,1)
    print(dataset2.shape)
    y = model.predict(dataset2)
    print(y.shape)
    y = np.argmax(y,axis=1)
    test = pd.read_csv('sample_submission.csv')
    test = np.array(test)
    for i in range(len(y)):
        test[i][1] = y[i]
    test = pd.DataFrame(test,columns=['ImageId', 'Label'])
    print(test)
    test.to_csv('sample_submission.csv',index=False)

     

    8.比赛成绩

    准确率98.428%,那个模型训练多一下次数准确率应该可以去到更好。

    9.项目截图

    展开全文
  • LSTM手写字体识别

    2019-04-17 12:03:53
    手写字体识别上,用10个epoch训练结果准确率可以达到98.9%
  • SVM的手写字体识别

    2018-01-23 16:03:58
    利用支持向量机算法进行手写字体识别利用支持向量机算法进行手写字体识别。。。。。。
  • 官方入门的手写字体识别能运行的那种…
  • 学习caffe深度学习框架时,最基本的一个应用实例是手写字体识别例程,这是caffe自带的例程,通过这个例程可以了解caffe框架使用的一个基本流程。在这个例程中,知识点比较多,在这篇文章中,我们只关系操作相关的...
        学习caffe深度学习框架时,最基本的一个应用实例是手写字体识别例程,这是caffe自带的例程,通过这个例程可以了解caffe框架使用的一个基本流程。在这个例程中,知识点比较多,在这篇文章中,我们只关系操作相关的内容,不进行代码和理论分析,让大家先把例程跑通,然后再分成几篇文章对这个例程的知识点进行介绍。
        这个例程的样板是MNIST数据集,它是一个大型手写体数字的数据库,包含了60000个训练集和10000个测试集,每张图都已经进行了尺寸归一化,数字居中处理,固定尺寸为28像素X28像素。数据集的样本如下图所示。这个例程我们使用这个数据库对caffe网络进行训练,并用训练的网络进行预测。

    1、下载MNIST数据集

            这个例程,我们在caffe的安装目录下进行,首先我们在终端中进入到caffe安装目录,然后执行下面的命令

    cd data/mnist
    ./get_mnist.sh

    这两个命令的作用是进入到mnist文件夹,并且采用get_mnist.sh脚本文件来下载MNIST数据集。成功执行命令之后,在文件夹下下载下来4个文件,分别为:t10k-images-idx3-ubyte、t10k-labels-idx1-ubyte、 train-images-idx3-ubyte、train-labels-idx1-ubyte。它们分别是测试集图片文件、测试集标签文件、训练集图片文件、训练集标签文件。
            关于这些文件的详解,会在后面的文章中进行。这里可以先不管这几个文件。

    2、数据集格式转换

            上一步我们下载到的数据集为二进制文件,无法直接用于caffe网络的训练,我们需要把它准话为LMDB格式的文件。
    在caffe的根目录下,执行下面的命令

    ./examples/mnist/create_mnist.sh

    执行完之后,在example/mnist/目录下,生成了两个文件夹mnist_train_lmdb和mnist_test_lmdb,在这两个文件夹下每个文件夹下包含两个文件data.mdb和lock.mdb。这4个文件就是转换完成的LMDB格式的训练集和测试集文件。

    3、训练模型

            在这个实例中,我们使用的深度学习网络为LeNet-5网络模型,它的描述文件为examples/mnist/lenet_train_test.prototxt,训练和测试的求解器的描述文件为examples/mnist/lenet_solver.prototxt。

            这一步我们对模型参数进行训练,在训练之前首先打开lenet_solver.prototxt文件。文件的最后一行修改为

    solver_mode: CPU

    即采用CPU模式。
            在caffe根目录下采用下面的命令对模型进行训练

    ./examples/mnist/train_lenet.sh

    模型开始训练,在终端上会打印出训练日志,训练日志内容比较多,经过我们以后的讲解后我们会明白训练日志的每一条的作用,这里我们先不用深究日志的内容。训练日志的最后,如下所示。

    I0207 15:20:14.125481  7502 solver.cpp:414]     Test net output #0: accuracy = 0.9913
    I0207 15:20:14.125722  7502 solver.cpp:414]     Test net output #1: loss = 0.0262061 (* 1 = 0.0262061 loss)
    I0207 15:20:14.125864  7502 solver.cpp:332] Optimization Done.
    I0207 15:20:14.125982  7502 caffe.cpp:250] Optimization Done.

    打印出了测试的识别精度和损失。

            训练之后,在/examples/mnist/目录下生成了四个新的文件:lenet_iter_5000.caffemodel、lenet_iter_5000.solverstate、lenet_iter_10000.caffemodel、lenet_iter_10000.solverstate,它们分别为进行了5000次和10000次迭代式生成的快照,快照包含权值文件.caffemodel和求解器状态文件.solverstate。

    4、数据预测

            在上一步中,我们完成了模型的训练,这一步,我们用训练好的模型参数进行预测,在caffe根目录下执行下面的命令

    ./build/tools/caffe.bin test -model examples/mnist/lenet_train_test.prototxt -weights examples/mnist/lenet_iter_10000.caffemodel -iterations 100

    这个命令是调用caffe.bin对模型的识别效果进行预测,test表示处于测试状态,-model examples/mnist/lenet_train_test.prototxt指定了预测使用的模型,与我们训练时使用的模型一样,-weights examples/mnist/lenet_iter_10000.caffemodel指定预测使用的权值文件为我们上一步训练得到的权值文件,-iterations 100表示迭代次数为100次。

            执行之后,在终端中打印的日志的最后两行为

    I0217 13:54:22.387477 28867 caffe.cpp:321] accuracy = 0.9913
    I0217 13:54:22.387509 28867 caffe.cpp:321] loss = 0.0262061 (* 1 = 0.0262061 loss)

    给出了识别精度和损失。至此我们完成了手写字体识别的例程测试。

    展开全文
  • 主要为大家详细介绍了kaggle+mnist实现手写字体识别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • mnist手写字体识别之KNN,用的python代码,本科课程作业,内含MNIST手写字体数据集,含代码等等
  • mnist手写字体识别之随机森林,包含了python代码,本科实验的作业,实现了随即森科算法的手写字体识别,含mnist数据集,报告基本要求都有
  • 用Python写的手写字体识别系统,基于TensorFlow的框架,很适合初学者的学习使用
  • mnist手写字体识别之BP,包括了python代码,mnist手写字体数据集,本科实验作业,讲的是BP神经网络算法的实现
  • mnist手写字体识别之SVM,内含python代码,包括MNIST手写字体数据集,本科实验作业,你想要的基本都有,支持向量机(SVM)
  • 基于SVM的手写字体识别
  • 手写体文字预处理、手写体文字识别代码,基于libsvm的手写字体识别
  • lenet5手写字体识别

    2015-10-23 11:25:05
    LeNet5对应的手写字体识别,无监督学习的方法去pre-training(预训练)stacked CNN的每层网络,然后用BP算法对整个网络进行fine-tuning(微调),并且上一层的输出作为下一层的输入。
  • 手写字体识别代码

    2012-01-06 10:22:27
    本实例是一个简单的手写字体识别程序,有学习功能,是一个不错的学习资料,供大家参考。
  • KNN 手写字体识别

    2020-07-18 19:38:59
    df = pd.read_excel('./手写字体识别.xlsx') df.head() 2.提取特征变量和目标变量 X = df.iloc[:,1:] y = df.iloc[:,0] 3.划分训练集和测试集 from sklearn.model_selection import train_test_split X_train, X...

    KNN手写数字的代码实现

    1.读取数据

    # 1.读取数据
    import pandas as pd
    
    df = pd.read_excel('./手写字体识别.xlsx')
    df.head()
    

    在这里插入图片描述

    2.提取特征变量和目标变量

    X = df.iloc[:,1:]
    y = df.iloc[:,0]
    

    3.划分训练集和测试集

    from sklearn.model_selection import train_test_split
    
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=27)
    X_train.shape, X_test.shape
    y_train.shape, y_test.shape
    

    ((1547, 1024), (387, 1024))
    ((1547,), (387,))

    4.模型搭建

    from sklearn.neighbors import KNeighborsClassifier as KNN
    
    knn = KNN(n_neighbors=5)
    knn.fit(X_train, y_train)
    

    KNeighborsClassifier(algorithm=‘auto’, leaf_size=30, metric=‘minkowski’,
    metric_params=None, n_jobs=None, n_neighbors=5, p=2,
    weights=‘uniform’)

    5.模型预测与评估

    y_pred = knn.predict(X_test)
    y_pred[:100]
    

    array([5, 3, 7, 8, 9, 2, 1, 4, 5, 8, 9, 5, 9, 3, 3, 2, 3, 7, 9, 1, 0, 0,
    7, 6, 6, 7, 0, 9, 6, 9, 1, 8, 6, 9, 2, 5, 2, 4, 5, 8, 3, 6, 9, 4,
    9, 2, 7, 3, 4, 9, 5, 6, 7, 3, 3, 8, 3, 1, 5, 3, 6, 7, 5, 0, 3, 7,
    1, 4, 9, 1, 5, 1, 2, 6, 9, 1, 9, 5, 5, 9, 2, 8, 8, 4, 4, 9, 4, 3,
    9, 8, 0, 3, 4, 3, 6, 8, 5, 2, 9, 0], dtype=int64)

    6.真实预测值对比

    arr = pd.DataFrame({'实际值': list(y_test), '预测值': list(y_pred)})
    arr.head(10)
    

    在这里插入图片描述

    7.查看模型准确度

    from sklearn.metrics import accuracy_score
    
    score = accuracy_score(y_pred, y_test)
    score
    

    0.979328165374677

    score = knn.score(X_test, y_test)
    score
    

    0.979328165374677

    8.图片大小调整及显示

    from PIL import Image
    
    img = Image.open('./数字5.jpg')
    img = img.resize((32, 32))
    # img.show()
    img
    

    在这里插入图片描述

    9.图片灰度处理

    img = img.convert('L')
    # img.show()
    img
    

    在这里插入图片描述

    10.图片二值化处理

    import numpy as np
    
    img_new = img.point(lambda x:0 if x>128 else 1)
    arr = np.array(img_new)
    for i in range(arr.shape[1]):
        print(arr[i])
    

    [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

    11.将2维数组转为1维

    arr_new = arr.reshape(1, -1)
    arr_new.shape
    

    (1, 1024)

    12.利用训练好的模型进行预测

    pred_digit = knn.predict(arr_new)
    pred_digit[0]
    

    5

    展开全文
  • 基于bp神经网络的手写字体识别 有图像 有文献说明 适合新手使用练手.
  • 本人用CNN卷积神经网络编写的手写字体识别,大家可以下载下来参考下,研究生课程的作业
  • 步骤流程1、环境配置获取百度SDK2、具体实现步骤①获取access_token②手写字体识别③成果展示 1、环境配置 程序整体是由python实现的,环境所包含的第三方库有requests、json、base64、pyinstaller。没有这些库的...
  • 神经网络实现手写字体识别

    千次阅读 2019-02-17 21:15:12
    神经网络入门学习中,进行了手写字体识别实践,该篇博客用于记录实践代码,以备后续使用。 关键词:神经网络,前向传播、反向传播、梯度下降、权值更新、手写字体识别 1. 实践代码 import numpy as np from sklearn....

    神经网络入门学习中,进行了手写字体识别实践,该篇博客用于记录实践代码,以备后续使用。

    关键词:神经网络,前向传播、反向传播、梯度下降、权值更新、手写字体识别

    1. 实践代码

    import numpy as np
    from sklearn.datasets import load_digits
    from sklearn.preprocessing import LabelBinarizer
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import classification_report
    import matplotlib.pyplot as plt
    
    # 载入数据
    digits = load_digits()
    # 显示图片
    for i in range(min(digits.images.shape[0], 2)):
        plt.imshow(digits.images[i], cmap='gray')
        plt.show()
    
    # 数据
    X = digits.data
    # 标签
    y = digits.target
    
    # 定义一个神经网络,结构,64-100-
    # 定义输入层到隐藏层之间的权值矩阵
    V = np.random.random((64, 100)) * 2 - 1
    # 定义隐藏层到输出层之间的权值矩阵
    W = np.random.random((100, 10)) * 2 - 1
    
    # 数据切分
    # 1/4为测试集,3/4为训练集
    X_train, X_test, y_train, y_test = train_test_split(X, y)
    
    # 标签二值化
    # 0 -> 1000000000
    # 3 -> 0003000000
    # 9 -> 0000000001
    labels_train = LabelBinarizer().fit_transform(y_train)
    
    
    # 激活函数
    def sigmoid(x):
        return 1 / (1 + np.exp(-x))
    
    
    # 激活函数的导数
    def dsigmoid(x):
        return x * (1 - x)
    
    
    #  训练模型
    def train(X, y, steps=10000, lr=0.011):
        global V, W
        for n in range(steps + 1):
            # 随机选取一个数据
            i = np.random.randint(X.shape[0])
            # 获取一个数据
            x = X[i]
            x = np.atleast_2d(x)
            # BP算法公式
            # 计算隐藏层的输出
            L1 = sigmoid(np.dot(x, V))
            # 计算输出层的输出
            L2 = sigmoid(np.dot(L1, W))
            # 计算L2_delta,L1_delta
            L2_delta = (y[i] - L2) * dsigmoid(L2)
            L1_delta = L2_delta.dot(W.T) * dsigmoid(L1)
            # 更新权值
            W += lr * L1.T.dot(L2_delta)
            V += lr * x.T.dot(L1_delta)
    
            # 每训练1000次预测一次准确率
            if n % 1000 == 0:
                output = predict(X_test)
                predictions = np.argmax(output, axis=1)
                acc = np.mean(np.equal(predictions, y_test))
                dW = L1.T.dot(L2_delta)
                dV = x.T.dot(L1_delta)
                gradient = np.sum([np.sqrt(np.sum(np.square(j))) for j in [dW, dV]])
                print('steps', n, 'accuracy', acc, 'gradient', gradient)
                # print(classification_report(predictions,y_test))
    
    
    def predict(x):
        # 计算隐藏层的输出
        L1 = sigmoid(np.dot(x, V))
        # 计算输出层的输出
        L2 = sigmoid(np.dot(L1, W))
        return L2
    
    
    # 开始训练
    train(X_train, labels_train, 20000, lr=0.11)
    train(X_train, labels_train, 20000, lr=0.011)
    # 训练后结果对比
    output = predict(X_test)
    predictions = np.argmax(output, axis=1)
    acc = np.mean(np.equal(predictions, y_test))
    print('accuracy', acc)
    print(classification_report(predictions, y_test, digits=4))
    
    

    2. 运行结果

    steps 1000 accuracy 0.39555555555555555 gradient 1.1540293157343329
    steps 2000 accuracy 0.5822222222222222 gradient 0.24060995286476866
    steps 3000 accuracy 0.6822222222222222 gradient 0.5377184040200084
    steps 4000 accuracy 0.7088888888888889 gradient 0.3105382024238891
    steps 5000 accuracy 0.7422222222222222 gradient 0.6367500261759913
    steps 6000 accuracy 0.8288888888888889 gradient 0.7925874111147599
    steps 7000 accuracy 0.8311111111111111 gradient 0.4219865590227713
    steps 8000 accuracy 0.8866666666666667 gradient 0.19398854322579862
    steps 9000 accuracy 0.9088888888888889 gradient 0.059956981030795414
    steps 10000 accuracy 0.94 gradient 0.060926927213079046
    steps 11000 accuracy 0.9222222222222223 gradient 0.0940042676753109
    steps 12000 accuracy 0.9488888888888889 gradient 0.007252581282821429
    steps 13000 accuracy 0.9422222222222222 gradient 0.0005117412876631392
    steps 14000 accuracy 0.9577777777777777 gradient 0.020721130471145828
    steps 15000 accuracy 0.9177777777777778 gradient 0.16479326937586997
    steps 16000 accuracy 0.9422222222222222 gradient 3.7564619456548263
    steps 17000 accuracy 0.9644444444444444 gradient 0.06896903217933802
    steps 18000 accuracy 0.9577777777777777 gradient 0.027949995263778806
    steps 19000 accuracy 0.9688888888888889 gradient 0.0006993893497620089
    steps 20000 accuracy 0.9622222222222222 gradient 0.20674307169673445
    steps 0 accuracy 0.9622222222222222 gradient 0.00872206168693661
    steps 1000 accuracy 0.9666666666666667 gradient 0.022782881906241878
    steps 2000 accuracy 0.9666666666666667 gradient 0.014290994295273446
    steps 3000 accuracy 0.9688888888888889 gradient 0.48748927217168325
    steps 4000 accuracy 0.9666666666666667 gradient 0.005666292598739775
    steps 5000 accuracy 0.9688888888888889 gradient 0.0443512717424438
    steps 6000 accuracy 0.9688888888888889 gradient 0.0061561535761366
    steps 7000 accuracy 0.9688888888888889 gradient 0.020829652956511197
    steps 8000 accuracy 0.9688888888888889 gradient 0.19995065353583805
    steps 9000 accuracy 0.9688888888888889 gradient 0.5650831905730958
    steps 10000 accuracy 0.9688888888888889 gradient 0.003948413021913768
    steps 11000 accuracy 0.9688888888888889 gradient 0.13861557486472081
    steps 12000 accuracy 0.9688888888888889 gradient 0.010983126563059315
    steps 13000 accuracy 0.9711111111111111 gradient 0.024410425339698696
    steps 14000 accuracy 0.9711111111111111 gradient 0.001296347083650798
    steps 15000 accuracy 0.9711111111111111 gradient 0.0018664511288084774
    steps 16000 accuracy 0.9711111111111111 gradient 0.0032670292289213856
    steps 17000 accuracy 0.9711111111111111 gradient 0.017069352701509097
    steps 18000 accuracy 0.9688888888888889 gradient 0.0033675869477754346
    steps 19000 accuracy 0.9688888888888889 gradient 0.00043959401991603385
    steps 20000 accuracy 0.9688888888888889 gradient 0.09278100040345633
    accuracy 0.9688888888888889
                  precision    recall  f1-score   support
    
               0     1.0000    1.0000    1.0000        43
               1     0.9787    1.0000    0.9892        46
               2     1.0000    1.0000    1.0000        37
               3     0.9787    0.9388    0.9583        49
               4     0.9091    1.0000    0.9524        50
               5     0.9800    0.9800    0.9800        50
               6     1.0000    0.9375    0.9677        48
               7     0.9565    1.0000    0.9778        44
               8     0.9189    0.9714    0.9444        35
               9     0.9767    0.8750    0.9231        48
    
       micro avg     0.9689    0.9689    0.9689       450
       macro avg     0.9699    0.9703    0.9693       450
    weighted avg     0.9701    0.9689    0.9687       450
    
    展开全文
  • pytorch CNN手写字体识别

    千次阅读 2019-04-23 21:50:40
    ## """CNN手写字体识别""" import torch import torch.nn as nn from torch.autograd import Variable import torch.utils.data as Data import torchvision #其中包括一些数据库(图片...) import matplotlib....
  • 我想大部分程序员的第一个程序应该都是“hello world”,在深度学习领域,这个“hello world”程序就是手写字体识别程序。这次我们详细的分析下手写字体识别程序,从而可以对深度学习建立一个基本的概念。1.初始化...
  • 机器学习,运用神经网络对手写字体进行识别
  • tensorflow手写字体识别

    2019-05-03 19:35:49
    基于python,tensorflow实现的关于手写数字的识别。适于初学者
  • 这是一份基于支持向量机(SVM)的手写字体识别源代码(Python版本),目前只支持二分类识别。实现了快速SMO算法。
  • pytorch rnn 实现手写字体识别 构建 RNN 代码加载数据使用RNN 训练 和测试数据 构建 RNN 代码 import torch import torch.nn as nn from torch.autograd import Variable import torch.utils.data as Data import...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 976
精华内容 390
关键字:

手写字体识别