神经网络 CNN

# encoding=utf-8
import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data

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


def weight_variable(shape):
initial = tf.truncated_normal(shape, stddev=0.1) # 定义Weights的函数 使用tf.trunncated_normal 标准值为0.1
return tf.Variable(initial)


def bias_variable(shape): #定义biase函数,tf.constant
initial = tf.constant(0.1, shape=shape)
return tf.Variable(initial)


def conv2d(x, W): #定义卷积层
return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME') # strides第0位和第3为一定为1,剩下的是卷积的横向和纵向步长


def max_pool_2x2(x): #定义最大化池化层pooling
return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME') # 参数同上,ksize是池化块的大小


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

# 图像转化为一个四维张量,第一个参数代表样本数量,-1表示不定,第二三参数代表图像尺寸,最后一个参数代表图像通道数
#x_image = tf.reshape(x, [-1, 28, 28, 1])

# 第一层卷积加池化
w_conv1 = weight_variable([5, 5, 1, 32]) # 第一二参数值得卷积核尺寸大小,即patch,第三个参数是图像通道数,第四个参数是卷积核的数目,代表会出现多少个卷积特征 其实就是输出的尺寸
b_conv1 = bias_variable([32])

h_conv1 = tf.nn.relu(conv2d(x, w_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)

# 第二层卷积加池化
w_conv2 = weight_variable([5, 5, 32, 64]) # 多通道卷积,卷积出64个特征
b_conv2 = bias_variable([64])

h_conv2 = tf.nn.relu(conv2d(h_pool1, w_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)

# 原图像尺寸28*28,第一轮图像缩小为14*14,共有32张,第二轮后图像缩小为7*7,共有64张

w_fc1 = weight_variable([7 * 7 * 64, 1024])
b_fc1 = bias_variable([1024])

h_pool2_flat = tf.reshape(h_pool2, [-1, 7 * 7 * 64]) # 展开,第一个参数为样本数量,-1未知
f_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, w_fc1) + b_fc1)

# dropout操作,减少过拟合
keep_prob = tf.placeholder(tf.float32)
h_fc1_drop = tf.nn.dropout(f_fc1, keep_prob)

w_fc2 = weight_variable([1024, 10])
b_fc2 = bias_variable([10])
y_conv = tf.nn.softmax(tf.matmul(h_fc1_drop, w_fc2) + b_fc2)

cross_entropy = -tf.reduce_sum(y_ * tf.log(y_conv)) # 定义交叉熵为loss函数
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) # 调用优化器优化

def compute_accuracy(v_xs,v_ys):

correct_prediction=tf.equal(tf.argmax(y_conv,1),tf.argmax(v_ys,1))#比较你预测的y和真实y那个1所在的位置。是一个布尔型量
print(sess.run(correct_prediction))

accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))#转化为float32格式然后求其正确率 tf.cast转换格式
result=sess.run(accuracy,feed_dict={x:v_xs,y_:v_ys})
return result


sess = tf.InteractiveSession()
sess.run(tf.initialize_all_variables())
for i in range(2000):
batch = mnist.train.next_batch(50)
if i % 100 == 0:
train_accuracy = compute_accuracy(batch[0], batch[1])
print(sess.run(train_accuracy))
# train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
print(sess.run(compute_accuracy(mnist.test.images[0:50], mnist.test.labels[0:50])))

 

计算输出特征通道数,针对polling方式

 

 

 

 


转载于:https://www.cnblogs.com/libin123/p/10022745.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片中的暖色或冷色滤色片是否会带来更多点击? —机器学习A / B测试

A/B test on ads is the art of choosing the best advertisement that optimizes your goal (number of clicks, likes, etc). For example, if you change a simple thing like a filter in your pictures you will drive more traffic to your links.广告的A / B测试是一种选…

3d制作中需要注意的问题_浅谈线路板制作时需要注意的问题

PCB电路板是电子设备重要的基础组装部件,在制作PCB电路板时,只有将各个方面都考虑清楚,才能保证电子设备在使用时不会出现问题。今天小编就与大家一起分享线路板制作时需要注意的问题,归纳一下几点:1、考虑制作类型电路…

冷启动、热启动时间性能优化

用户希望应用程序能够快速响应并加载。 一个启动速度慢的应用程序不符合这个期望,可能会令用户失望。 这种糟糕的体验可能会导致用户在应用商店中对您的应用进行糟糕的评价,甚至完全放弃您的应用。 本文档提供的信息可帮助您优化应用的启动时间。 它首先…

python:lambda、filter、map、reduce

lambda 为关键字。filter,map,reduce为内置函数。 lambda:实现python中单行最小函数。 g lambda x: x * 2 #相当于 def g(x):return x*2print(g(3))# 6 注意:这里直接g(3)可以执行,但没有输出的,前面的…

集群

原文地址:http://www.microsoft.com/china/MSDN/library/windev/COMponentdev/CdappCEnter.mspx?mfrtrue 本文假设读者熟悉 Windows 2000、COM、IIS 5.0 摘要 Application Center 2000 简化了从基于 Microsoft .NET 的应用程序到群集的部署,群集是一组…

Myeclipes连接Mysql数据库配置

相信大家在网站上也找到了许多关于myeclipes如何连接mysql数据库的解决方案,虽然每一步都按照他的步骤来,可到最后还是提示连接失败,有的方案可能应个人设备而异,配置环境不同导致。经过个人多方探索终于找到一个简单便捷的配置方…

cnn图像二分类 python_人工智能Keras图像分类器(CNN卷积神经网络的图片识别篇)...

上期文章我们分享了人工智能Keras图像分类器(CNN卷积神经网络的图片识别的训练模型),本期我们使用预训练模型对图片进行识别:Keras CNN卷积神经网络模型训练导入第三方库from keras.preprocessing.image import img_to_arrayfrom keras.models import lo…

图卷积 节点分类_在节点分类任务上训练图卷积网络

图卷积 节点分类This article goes through the implementation of Graph Convolution Networks (GCN) using Spektral API, which is a Python library for graph deep learning based on Tensorflow 2. We are going to perform Semi-Supervised Node Classification using C…

[微信小程序] 当动画(animation)遇上延时执行函数(setTimeout)出现的问题

小程序中当动画animation遇上setTimeout函数内部使用this.setData函数,通常情况下会出现报错。本文先告诉解决方法,后分析报错原因 1.解决方法: 在 setTimeout() 函数的同级加上 const that this; ,然后将this.setData换成that…

关于使用pdf.js预览pdf的一些问题

手机应用中pdf展示使用非常广泛, 一些pdf由于特殊的内容比如文字、电子签章必须使用复杂的解析器来解析,当使用MultiPdf 这个库加载,会使得包变得非常庞大, 这里我们考虑使用pdf.js 来解析pdf. 引用非常简单,只需要把…

SqlHelper改造版本

using System;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.Collections; /// <summary> /// SqlHelper类是专门提供给广大用户用于高性能、可升级和最佳练习的sql数据操作 /// </summary> public abstract c…

回归分析预测_使用回归分析预测心脏病。

回归分析预测As per the Centers for Disease Control and Prevention report, heart disease is the prime killer of both men and women in the United States and around the globe. There are several data mining techniques that can be leveraged by researchers/ stat…

VMware文件共享

VMware tools 文件共享 已经安装后&#xff1a; vmhgfs-fuse .host:/ /mnt/hgfs

npm 问题(一)

今天在使用npm安装程序时出现了以下问题如下&#xff1a; 我解决了问题&#xff0c;这是由于缓存清除错误&#xff08;但他们自动修复&#xff09;有一些数据损坏&#xff0c;没有让JSON文件解析&#xff0c;使用以下命令可以解决&#xff1a;即&#xff1a; npm cache clean -…

UDP打洞程序包的源码

C#实现UDP打洞 转自&#xff1a;http://hi.baidu.com/sdfiyon/blog/item/63a6e039155e02f23a87ceb1.html 下面是UDP打洞程序包的源码&#xff1a;//WellKnown公用库using System;using System.IO;using System.Runtime.Serialization.Formatters.Binary;using System.Net ;usi…

NLPPython笔记——WordNet

WordNet是一种面向语义的英语词典&#xff0c;由Princeton大学的心理学家、语言学家和计算机工程师联合设计。它不是光把单词以字母顺序排列&#xff0c;而且按照单词的意义组成一个“单词的网络”。 NLTK库中包含了英语WordNet&#xff0c;里面共有155287个词以及117659个同义…

crc16的c语言函数 计算ccitt_C语言为何如此重要

●●●如今&#xff0c;有很多学生不懂为何要学习编程语言&#xff0c;为何要学习C语言&#xff1f;原因是大学生不能满足于只会用办公软件&#xff0c;而应当有更高的学习要求&#xff0c;对于理工科的学生尤其如此。计算机的本质是“程序的机器”&#xff0c;程序和指令的思想…

毫米波雷达与激光雷达的初探

毫米波雷达与激光雷达的初探 雷达 &#xff08;Radio Detection and Range, Radar&#xff09;是一种利用电磁波来对目标进行探测和定位的电子设备。实现距离测量、运动参数测量、搜索和发现目标、目标定位、目标特性参数分析等功能。 分类 电磁波按照从低频到高频的顺序&…

aws spark_使用Spark构建AWS数据湖时的一些问题以及如何处理这些问题

aws spark技术提示 (TECHNICAL TIPS) 介绍 (Introduction) At first, it seemed to be quite easy to write down and run a Spark application. If you are experienced with data frame manipulation using pandas, numpy and other packages in Python, and/or the SQL lang…

冲刺第三天 11.27 TUE

任务执行情况 已解决问题 数据库结构已经确定 对联生成model已训练完成 词匹配部分完成 微信前端rush版本完成 总体情况 团队成员今日已完成任务剩余任务困难Dacheng, Weijieazure数据库搭建(完成&#xff09;multiple communication scripts, call APIs需要进行整合调试Yichon…