Tensorflow实现手写体识别DIY入坑记

配置环境什么的都不说了,可以参考其他的博客:
参考链接1:
参考链接2:
Tensorflow实现手写体识别DIY入坑记_第1张图片
源码如下:

import tensorflow as tf
import matplotlib.pyplot as plt
tf.__version__
mint=tf.keras.datasets.mnist
(x_,y_),(x_1,y_1)=mint.load_data()
plt.imshow(x_[0], cmap="binary")
plt.show()

升级版:
Tensorflow实现手写体识别DIY入坑记_第2张图片
源码如下:

import pylab
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

#载入数据集注意文件位置
data01="D:\BaiduNetdiskDownload\MNIST_data"

mnist=input_data.read_data_sets(data01, one_hot=True)

print ( ' 输入数据:', mnist.train.images)
print ( ' 输入数据shape :', mnist.train.images.shape)

im = mnist.train.images[1]
im = im.reshape(-1 ,28)
pylab.imshow(im)
pylab.show()

Tensorflow实现手写体识别DIY入坑记_第3张图片
simple版本nn模型 训练手写数字处理。
MNIST_data数据 百度网盘链接:https://pan.baidu.com/s/19lhmrts-vz0-w5wv2A97gg
提取码:cgnx
源码亲测实用改版
效果如图
Tensorflow实现手写体识别DIY入坑记_第4张图片
数据可能有所出入,有些小警告,版本后续升级的bug,不过基本上是没什么大问题。
# import tensorflow as tf#版本$else问题# https://www.cnblogs.com/go-ahead-wsg/p/12310309.html
# 参考https://stackoverflow.com/questions/37383812/tensorflow-module-object-has-no-attribute-placeholder

源码如下:

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
from tensorflow.examples.tutorials.mnist import input_data
 
#载入数据集
data01="D:\BaiduNetdiskDownload\MNIST_data"

mnist=input_data.read_data_sets(data01, one_hot=True)#每个批次的大小
batch_size=100
#计算一共有多少批次
n_batch=mnist.train.num_examples// batch_size
 
#定义两个placeholder
x=tf.placeholder(tf.float32,[None,784])
y=tf.placeholder(tf.float32,[None,10])
 
#创建一个简单的神经网络
W=tf.Variable(tf.zeros([784,10]))
b=tf.Variable(tf.zeros([1,10]))
prediction=tf.nn.softmax(tf.matmul(x,W)+b)
 
#二次代价函数
loss=tf.reduce_mean(tf.square(y-prediction))

print("well done !!!")

#使用剃度下降法
train_step=tf.train.GradientDescentOptimizer(0.2).minimize(loss)
 
#初始化变量
init=tf.global_variables_initializer()
 
#结果存放在一个布尔型列表中
correct_prediction=tf.equal(tf.argmax(y,1), tf.argmax(prediction,1))#argmax返回一维张量中最大的值所在的位置
#求准确率
accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
 
with tf.Session() as sess:
    sess.run(init)
    for epoch in range(20):
        for batch in range(n_batch):
            batch_xs,batch_ys=mnist.train.next_batch(batch_size)
            sess.run(train_step,feed_dict={x:batch_xs, y:batch_ys})
 
        acc=sess.run(accuracy,feed_dict={x:mnist.test.images, y:mnist.test.labels})
        print("Iter"+str(epoch)+",Testing Accuracy "+str(acc))

另外的,可以学习B站上的资料。适合入门的DL,TP等等。

课程大纲:
第一课 Tensorflow简介,Anaconda安装,Tensorflow的CPU版本安装。
第二课 Tensorflow的基础使用,包括对图(graphs),会话(session),张量(tensor),变量(Variable)的一些解释和操作。
第三课 Tensorflow线性回归以及分类的简单使用,softmax介绍。
第四课 交叉熵(cross-entropy),过拟合,dropout以及Tensorflow中各种优化器的介绍。
第五课 使用Tensorboard进行结构可视化,以及网络运算过程可视化。
第六课 卷积神经网络CNN的讲解,以及用CNN解决MNIST分类问题。
第七课 递归神经网络LSTM的讲解,以及LSTM网络的使用。
第八课 保存和载入模型,使用Google的图像识别网络inception-v3进行图像识别。
第九课 Tensorflow的GPU版本安装。设计自己的网络模型,并训练自己的网络模型进行图像识别。
第十课 多任务学习以及验证码识别。
第十一课 word2vec讲解和使用,cnn解决文本分类问题。
第十二课 语音处理以及使用LSTM构建语音分类模型。
视频参考

你可能感兴趣的:(python2021,行业水深,AI21,图像识别,深度学习,神经网络,tensorflow)