>综合>猫咪>

pythontensorflow视觉识别入门:一小伙用深度学习算法识别猫

时间:2024-10-07 04:36:24/人气:322 ℃

图中外婆照顾附近流浪猫,但是一只北美负鼠,一种会偷食物、装死的巨大鼠类混进猫群住了1年。外婆竟然还给这个老鼠起了一个名字,看来真是傻傻分不清楚猫和老鼠了。今天就用Tensorflow来完成一个深度学习的程序带大家学习一下深度学习,如何通过猫和狗的照片进行学习,进而可以帮助这位外婆区分那些是真猫,防止老鼠混入猫群。

项目目标:实现猫狗识别分类任务

项目难度:★★★

项目难就想退缩?放心本篇文章会逐一讲解代码内容知识!别再担心撸完神经网络代码,一脸懵逼的表情包啦!

项目逻辑

①从系统文档中提取一部分猫狗图片为测试集。(input_data.py)

②建立神经网络模型。(model.py)

③通过测试集对模型进行训练,准确率提高以后利用模型对猫狗进行识别分类(training.py)

本节内容我们主要以讲任务②——神经网络模型搭建为主。

一起来玩耍吧

Model.py项目核心代码:

1. import tensorflow as tf

首先我们导入TensorFlow神经网络框架,简称为tf

1. def inference(images, batch_size, n_classes):

2. with tf.variable_scope('conv1') as scope:

3. weights = tf.get_variable('weights',

4. shape = [3,3,3, 16],

5. dtype = tf.float32,

6. initializer=tf.truncated_normal_initializer(stddev=0.1,dtype=tf.float32))

7. biases = tf.get_variable('biases',

8. shape=[16],

9. dtype=tf.float32,

10. initializer=tf.constant_initializer(0.1))

11. conv = tf.nn.conv2d(images, weights, strides=[1,1,1,1], padding='SAME')

12. pre_activation = tf.nn.bias_add(conv, biases)

13. conv1 = tf.nn.relu(pre_activation, name= scope.name)

我们用关键字def创建一个名叫inference的方法,其中image为我们模型需要测试的图片,batch_size为我们训练图片分批次的大小,n_calsses为2,即猫狗二分类任务。

随后我们利用tf.truncated_normal_initializer定义weights(权重),以及tf.constant_initializer 定义biases(偏差),最后利用tf.nn.conv2d函数对图片进行卷积运算。

1. with tf.variable_scope('pooling1_lrn') as scope:

2. pool1 = tf.nn.max_pool(conv1, ksize=[1,3,3,1],strides=[1,2,2,1],

3. padding='SAME', name='pooling1')

4. norm1 = tf.nn.lrn(pool1, depth_radius=4, bias=1.0, alpha=0.001/9.0,

5. beta=0.75,name='norm1')

定义池化层,对图片进行优化特征处理。

项目总结

怎么样!是否在小编的文中学到很多东西呢?因篇幅有限,未能给大家展示深度学习神经网络架构的“庐山真面目”,但本文章还有更多续集,期待你的关注!

文章更多细节请关注我们,将在后面文章呈现,或者在加入人工智能社群:搜索(TensorFlow-天下互联)!这里有更多案例,更多朋友啊。也可以跟小编直接交流。另外也可以点击左下角:了解更多,通过我们网站加入我们社群!

首页/电脑版/地图
© 2024 CwBaiKe.Com All Rights Reserved.