四时宝库

程序员的知识宝库

跟我一起玩儿转Python之深度学习CNN实现MNIST图像识别

AI神经网络的图像识别技术可以通俗理解为:通过模仿人类大脑神经网络的运作方式,构建一个复杂的计算模型,这个模型能够接收图像信息,经过处理后提取出图像中的特征,并根据这些特征对图像进行识别和分类。这种技术可以应用于各种场景,如人脸识别、物体检测、场景理解等。

AI神经网络进行图像识别,通俗来说可以理解为以下几个步骤:

1. 将图片处理成数字矩阵,每个像素点是一个数字。

2. 输入层接收数字矩阵,传到隐藏层。

3. 隐藏层提取图片特征,如线条、形状、颜色等。

4. 权重及激活函数将特征转化并突出重要信息。

5. 输出层根据隐藏层输出,匹配图片内容,得到识别结果。

6. 将识别错误反馈回网络,调整权重,重新训练。

7. 重复上述步骤,直到网络模型能够正确识别图片。

8. 保存训练好的网络模型,用于识别新图片。

简单来说,神经网络通过训练,自动学习图片特征,建立特征到类别的映射,实现图像识别。就像我们小时候学习识别猫、狗、鸡一样,不断积累经验,最后能够区分它们。

MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片,每一张图片对应的标签,通过神经网络算法告诉我们这个是数字几。

下面我们一起通过TensorFlow实现MNIST图像识别,通俗形象的理解TensorFlow框架CNN的工作流程和设计思想:

import tensorflow as tf

from tensorflow.examples.tutorials.mnist import input_data

#MINIST数据集

mnist = input_data.read_data_sets('MNIST_data', one_hot=True)

#表示输入任意数量的MNIST图像,每一张图展平成784维的向量

x = tf.placeholder(tf.float32, [None, 784])

#初始化W,b矩阵

W = tf.Variable(tf.zeros([784,10]))

b = tf.Variable(tf.zeros([10]))

#tf.matmul(X,W)表示x乘以W

y = tf.nn.softmax(tf.matmul(x, W) + b)

#预测值

y_ = tf.placeholder("float", [None,10])

#交叉熵损失函数

cross_entropy = -tf.reduce_sum(y_*tf.log(y))

#模型的训练,不断的降低成本函数

train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)

#在运行计算之前,需要添加一个操作来初始化我们创建的变量

init = tf.group(tf.global_variables_initializer(), tf.local_variables_initializer())

#在Session里面启动我模型,并且初始化变量

sess = tf.Session()

sess.run(init)

#开始训练模型,循环训练100次

for i in range(100):

batch_xs, batch_ys = mnist.train.next_batch(100)

sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

#真实标签与预测标签是否一致

print(sess.run([tf.argmax(y,1), tf.argmax(y_,1)],

feed_dict={x: mnist.test.images[:10], y_: mnist.test.labels[:10]}))

#计算正确率

correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))

print("accuracy:",sess.run(accuracy,

feed_dict={x: mnist.test.images[:10], y_: mnist.test.labels[:10]}))

#运算结果:

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

accuracy: 0.9

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接