前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TensorFlow-3: 用 feed-forward neural network 识别数字

TensorFlow-3: 用 feed-forward neural network 识别数字

原创
作者头像
杨熹
修改于 2017-08-22 08:34:59
修改于 2017-08-22 08:34:59
1.4K0
举报
文章被收录于专栏:杨熹的专栏杨熹的专栏

今天继续看 TensorFlow Mechanics 101:

https://www.tensorflow.org/get_started/mnist/mechanics

完整版教程可以看中文版tutorial:

http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_tf.html

这一节讲了使用 MNIST 数据集训练并评估一个简易前馈神经网络(feed-forward neural network)

input,output 和前两节是一样的:即划分数据集并预测图片的 label

代码语言:txt
复制
data_sets.train    55000个图像和标签(labels),作为主要训练集。
data_sets.validation    5000个图像和标签,用于迭代验证训练准确度。
data_sets.test    10000个图像和标签,用于最终测试训练准确度(trained accuracy)。

主要有两个代码:

mnist.py

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist.py

构建一个全连接网络,由 2 个隐藏层,1 个 softmax_linearv输出构成

定义损失函数,用cross entropyv

定义训练时的优化器,用 GradientDescentOptimizer

定义评价函数,用tf.nn.in_top_k

fully_connected_feed.py

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/fully_connected_feed.py

  • placeholder_inputs 传入 batch size,得到 image 和 label 的两个placeholder
  • 定义生成 feed_dict的函数,key 是 placeholders,value 是 data
  • 定义 do_eval 函数,每隔 1000 个训练步骤,就对模型进行以下评估,分别作用于训练集、验证集和测试集
  • 训练时:
  • 导入数据
  • 得到 image 和 label 两个 placeholder
  • 传入 mnist.inference 定义的 NN, 得到 predictions
  • 将 predictions 传给 mnist.loss 计算 loss
  • loss 传给mnist.training 进行优化训练
  • 再用 mnist.evaluation 评价预测值和实际值

代码中涉及到下面几个函数:

with tf.Graph().as_default():

即所有已经构建的操作都要与默认的 tf.Graph 全局实例关联起来,tf.Graph 实例是一系列可以作为整体执行的操作

summary = tf.summary.merge_all():

为了释放 TensorBoard 所使用的 events file,所有的即时数据都要在图表构建时合并至一个操作 op 中,每次运行 summary 时,都会向 events file 中写入最新的即时数据

summary_writer = tf.summary.FileWriter(FLAGS.log_dir, sess.graph):

用于写入包含了图表本身和即时数据具体值的 events file。

saver = tf.train.Saver():

就是向训练文件夹中写入包含了当前所有可训练变量值 checkpoint file

with tf.name_scope('hidden1'):

主要用于管理一个图里面的各种 op,返回的是一个以 scope_name命名的 context manager,一个 graph 会维护一个 name_space的堆,实现一种层次化的管理,避免各个 op 之间命名冲突。例如,如果额外使用 tf.get_variable() 定义的变量是不会被tf.name_scope() 当中的名字所影响的

tf.nn.in_top_k(logits, labels, 1):

意思是在 K 个最有可能的预测中如果可以发现 true,就将输出标记为 correct。本文 K 为 1,也就是只有在预测是 true 时,才判定它是 correct。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
使用Selenium与Requests模拟登陆
注意两个地方,cookies和参数,先来看看参数,稍微特别的就是authenticity_token,感觉是验证。Ctrl+Shift+F打开搜索,最终在返回的html中找到
小歪
2018/07/25
1.5K0
使用Selenium与Requests模拟登陆
实战项目二: 实现CSDN自动点赞
环境: Python3.6.5 编译器: Sublime Text 3 代码: GitHub 联系方式: ke.zb@qq.com 第三方库: selenium
K同学啊
2019/01/22
1.5K0
Python模拟登陆万能法-微博|知乎
Python模拟登陆让不少人伤透脑筋,今天奉上一种万能登陆方法。你无须精通HTML,甚至也无须精通Python,但却能让你成功的进行模拟登陆。本文讲的是登陆所有网站的一种方法,并不局限于微博与知乎,仅用其作为例子来讲解。
周小董
2019/03/25
6.2K0
用Python写网页的自动签到
2.下载chromedriver驱动; 找到符合自己浏览器版本的chromedriver驱动,下载解压后,将chromedriver.exe文件放到Python目录下的Scripts目录下,也可以添加环境变量到Path中。
用户2590762
2021/08/11
2.5K0
017:Opencv+Selenium模拟QQ邮箱滑块操作
之前发了一个国航的滑块模拟操作,没有计算滑块到缺口的位置。 本篇则是用opencv+selenium来对QQ邮箱的滑块进行模拟测试。
李玺
2021/11/22
1.2K0
017:Opencv+Selenium模拟QQ邮箱滑块操作
利用 Python 爬取 QQ 空间说说和相册
QQ 空间在 2005 年被腾讯开发,已经经历了 15 个年头,在还没有微信的年代,看网友发表的心情、心事、照片大多都在 QQ 空间的里。它承载了80、90 后的大量青春,下面我们一起用 selenium 模块导出说说和相册回忆青春吧。
张俊红
2021/06/25
3.2K0
利用 Python 爬取 QQ 空间说说和相册
饮料配方研发网站自动发布代码
# from selenium.webdriver.support.select import Select
用户4393181
2021/12/22
5100
用python操作浏览器的三种方式
第一种:selenium导入浏览器驱动,用get方法打开浏览器,例如: import time from selenium import webdriver def mac():     driver = webdriver.Firefox()     driver.implicitly_wait(5)     driver.get("http://huazhu.gag.com/mis/main.do") 第二种:通过导入python的标准库webbrowser打开浏览器,例如: >>> import webbrowser >>> webbrowser.open("C:\\Program Files\\Internet Explorer\\iexplore.exe") True >>> webbrowser.open("C:\\Program Files\\Internet Explorer\\iexplore.exe") True  第三种:使用Splinter模块模块 一、Splinter的安装 Splinter的使用必修依靠Cython、lxml、selenium这三个软件。所以,安装前请提前安装 Cython、lxml、selenium。以下给出链接地址: 1)http://download.csdn.net/detail/feisan/4301293 2)http://code.google.com/p/pythonxy/wiki/AdditionalPlugins#Installation_no 3)http://pypi.python.org/pypi/selenium/2.25.0#downloads 4)http://splinter.cobrateam.info/ 二、Splinter的使用   这里,我给出自动登录126邮箱的案例。难点是要找到页面的账户、密码、登录的页面元素,这里需要查看126邮箱登录页面的源码,才能找到相关控件的id.   例如:输入密码,密码的文本控件id是pwdInput.可以使用browser.find_by_id()方法定位到密码的文本框, 接着使用fill()方法,填写密码。至于模拟点击按钮,也是要先找到按钮控件的id,然后使用click()方法。 #coding=utf-8   import time   from splinter import Browser  def splinter(url):   browser = Browser()      #login 126 email websize    browser.visit(url)       #wait web element loading   time.sleep(5)      #fill in account and password   browser.find_by_id('idInput').fill('xxxxxx')  browser.find_by_id('pwdInput').fill('xxxxx')      #click the button of login    browser.find_by_id('loginBtn').click()       time.sleep(8)       #close the window of brower       browser.quit()   if __name__ == '__main__':       websize3 ='http://www.126.com'       splinter(websize3)  WebDriver简介 selenium从2.0开始集成了webdriver的API,提供了更简单,更简洁的编程接口。selenium webdriver的目标是提供一个设计良好的面向对象的API,提供了更好的支持进行web-app测试。从这篇博客开始,将学习使用如何使用python调用webdriver框架对浏览器进行一系列的操作 打开浏览器 在selenium+python自动化测试(一)–环境搭建中,运行了一个测试脚本,脚本内容如下: from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") print(driver.title) driver.find_element_by_id("kw").send_keys("s
py3study
2020/01/06
8.5K0
用python操作浏览器的三种方式
爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别
在我们写爬虫的过程中,目标网站常见的干扰手段就是设置验证码等,本就将基于Selenium实战讲解如何处理弹窗和验证码,爬取的目标网站为某仪器预约平台
刘早起
2020/07/29
2.3K0
爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别
Python网络爬虫之模拟登陆
Python网络爬虫应用十分广泛,但是有些网页需要用户登陆后才能获取到信息,所以我们的爬虫需要模拟用户的登陆行为,在登陆以后保存登陆信息,以便浏览该页面下的其他页面。
刀刀老高
2019/03/06
5950
Python网络爬虫之模拟登陆
windows下实现黑客派自动签到
需要翻墙,地址为 http://chromedriver.chromium.org/downloads,找到符合自己浏览器版本的 chromedriver 驱动,下载解压后,将 chromedriver.exe 文件放到 Python 目录下的 Scripts 目录下。我已下载 75 版本
cuijianzhe
2022/06/14
6790
windows下实现黑客派自动签到
携程 爬虫_python自动化和爬虫先学哪个
二、下载传送门 url:http://chromedriver.storage.proxy.ustclug.org/index.html 根据自己的版本进行下载
全栈程序员站长
2022/11/15
5580
携程 爬虫_python自动化和爬虫先学哪个
Amazon后台模拟登陆
本文基于python3.4的selenium库打开浏览器,并将浏览器中的登陆cookie保存到本地,那么下次登陆就可以直接利用cookie了:
机器学习和大数据挖掘
2019/07/02
4.1K0
Amazon后台模拟登陆
微信公众号爬虫 微信公众号爬虫
爬取步骤: 1. get_cookie.py用selenium登陆,获取cookie,其中你需要勾选“记住”选项,还需要微信扫描二维码,确定顺利登陆
尾尾部落
2018/09/04
8.4K0
从登陆到爬取:Python反反爬获取某宝成千上万条公开商业数据
chrom浏览器的驱动器下载地址:http://npm.taobao.org/mirrors/chromedriver/
荣仔_最靓的仔
2021/02/02
1.2K0
从登陆到爬取:Python反反爬获取某宝成千上万条公开商业数据
Python + Selenium 自动发布文章(三):CSDN
  这是本系列的第三篇文章,主要介绍如何用Python+Selenium 自动发布CSDN博客,一些必要的条件在之前的文章里面已经提到过,这里也不再重复。
happyJared
2018/09/20
7160
Python + Selenium 自动发布文章(三):CSDN
使用chatgpt编写公众号订推文的脚本
这个脚本首先打开Chrome浏览器,然后打开微信公众号平台登录页面。在登录后,它会跳转到发布文章页面,填写文章标题和正文,并点击发布按钮。最后,它会等待一段时间以确保文章发布成功,然后关闭浏览器。
Tom2Code
2023/08/31
5590
使用chatgpt编写公众号订推文的脚本
七、Selenium与phantomJS----------动态页面模拟点击、网站模拟登录 每天一个小实例1(动态页面模拟点击,并爬取你想搜索的职位信息) 每天一个小实例2(模拟网站登录)我用的是
每天一个小实例1(动态页面模拟点击,并爬取你想搜索的职位信息) 1 from selenium import webdriver 2 from bs4 import BeautifulSoup 3 4 # 调用环境变量指定的PhantomJS浏览器创建浏览器对象 5 driver = webdriver.PhantomJS() 6 7 #访问的网址,我这里是登录的boss直聘 8 driver.get('https://www.zhipin.com/') 9 10 #模拟在搜索框输入
酱紫安
2018/04/16
2.4K0
七、Selenium与phantomJS----------动态页面模拟点击、网站模拟登录
		每天一个小实例1(动态页面模拟点击,并爬取你想搜索的职位信息) 每天一个小实例2(模拟网站登录)我用的是
用 Python 找出并拉黑那些 QQ 空间屏蔽我的塑料好友们
最近发现有人QQ空间对我展开了屏蔽,咱们也不知道怎么惹到人家了,一气之下写了一个小爬虫看看到底谁把我屏蔽了。写小本本记下来!!!
Crossin先生
2021/12/01
4330
用 Python 找出并拉黑那些 QQ 空间屏蔽我的塑料好友们
Python + Selenium 自动发布文章(一):开源中国
  还是说说出这个系列的起因吧。之前写完或是修改了Markdown文章,我还分别需要在多个平台进行发布或是更新维护这些内容,这些平台目前包括我的博客、简书、开源中国和CSDN,其实早就想过用比较自动化的形式来解决,无奈有技术、时间、精力等各方面原因的限制。废话不多说吧,直奔今天的主题,本文主要介绍如何用Python和Selenium写(发)开源中国的博客。
happyJared
2018/09/20
7040
Python + Selenium 自动发布文章(一):开源中国
推荐阅读
相关推荐
使用Selenium与Requests模拟登陆
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档