TFboy养成记 简单小程序(Variable & placeholder)
学习参考周莫烦的视频。
Variable:主要是用于训练变量之类的。比如我们经常使用的网络权重,偏置。
值得注意的是Variable在声明是必须赋予初始值。在训练过程中该值很可能会进行不断的加减操作变化。
placeholder:也是用于存储数据,但是主要用于feed_dict的配合,接收输入数据用于训练模型等。placeholder值在训练过程中会不断地被赋予新的值,用于批训练,基本上其值是不会轻易进行加减操作。
placeholder在命名时是不会需要赋予值得,其被赋予值得时间实在feed_dict时。
Variable使用:
这是一个简单的加法训练。需要注意的是tensorflow 中很多操作都可以看做是一个节点。比如这里的assign操作,需要专门做一个update操作节点。
import tensorflow as tf
import numpy as np #Variable 在声明是必须要给定一个 初始值的。同时也要规定他的shape,这里是一个常数,所以就不许要在给定一个shape了。
one = tf.Variable(tf.constant(1))
get = tf.Variable(0)
state = tf.add(one,get)
update = tf.assign(get,state) init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for i in range(10):
sess.run(update)
print(sess.run(get))
placeholder使用:
placeholder是作为一个容器,在声明时,并不需要给定一个初始值,与c++等语言不同,你可以把它看做成在运行时他并不执行,只有在feed_dict出现训练时,在给予值(个人看法,不一定对)。
不过placeholder 在命名时时需要指定类型的。如:
xs = tf.placeholder(tf.float32,[None,1],name = "x_input")
这里的xs不仅指定了类型,也定义的shape。如果不定义shape,只要是后续代码中一致,那么可以是任意形式的。
这里给出两个版本的代码,一个用了placeholder去拟合一个曲线,另一个没有使用
placeholder:
# -*- coding: utf-8 -*-
"""
Created on Tue Jun 13 15:41:23 2017 @author: Jarvis
"""
import tensorflow as tf
import numpy as np x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1+0.3
print (x_data.shape)
xs = tf.placeholder(tf.float32)
ys = tf.placeholder(tf.float32)
W = tf.Variable(1.0)
#W = tf.Variable(tf.random_uniform([1],-1.0,1))
b = tf.Variable(tf.zeros([1]))
y_pre = W*xs+b loss = tf.reduce_mean((tf.square(ys-y_pre))) train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(1000):
sess.run(train_step,feed_dict={xs:x_data,ys:y_data})
if i%50 == 0:
print (sess.run(W),sess.run(b))
没有用,直接使用原始数据:
import tensorflow as tf
import numpy as np x_data = np.random.rand(100).astype(np.float)
y_data = x_data*0.3+0.1 W = tf.Variable(tf.zeros([1]))#这里可能大家会有疑问,W的shape到底是多少?这个Wshape和之前 那个版本的w.shape到底有什么区别呢?详见shape的内容。
b = tf.Variable(tf.zeros([1])) y_pre = W*x_data+b
loss = tf.reduce_mean(tf.square(y_data-y_pre))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for i in range(1000):
sess.run(train_step)
print(sess.run(W),sess.run(b))
TFboy养成记 简单小程序(Variable & placeholder)的更多相关文章
- 基于C语言libvirt API简单小程序
libvirt API简单小程序 1.程序代码如下 #include<stdio.h> #include<libvirt/libvirt.h> int getDomainInf ...
- 微信小程序中placeholder的样式
通常,现代浏览器大多支持::placeholder选择器,用于设置placeholder的样式,但是在微信小程序中并不支持这种方式,而是提供了一个专门的属性(placeholder-class)来处理 ...
- 关于Hibernate的一个简单小程序
本人根据视频学习了一下三大框架中比较简单的一个Hibernate,并简单完成了一个运用Hibernate的小程序 Hibernate是一个简化web程序Dao层的一个框架,应用他,可以完全脱离sql语 ...
- 小程序红包开发跳坑记 微信小程序红包接口开发过程中遇到的问题 微信小程序红包开发
现在做小程序的越来越多,商家推广也是一个瓶颈,谁不发点红包,都很难找到人来用你的微信小程序了.于是不管你开发什么小程序功能,你或多或少都要用到小程序来发红包吧. 我们自己之前做公众号发红包,做了两三 ...
- TFboy养成记 CNN
1/先解释下CNN的过程: 首先对一张图片进行卷积,可以有多个卷积核,卷积过后,对每一卷积核对应一个chanel,也就是一张新的图片,图片尺寸可能会变小也可能会不变,然后对这个chanel进行一些po ...
- TFboy养成记 MNIST Classification (主要是如何计算accuracy)
参考:莫烦. 主要是运用的MLP.另外这里用到的是批训练: 这个代码很简单,跟上次的基本没有什么区别. 这里的lossfunction用到的是是交叉熵cross_entropy.可能网上很多形式跟这里 ...
- TFboy养成记 多层感知器 MLP
内容总结与莫烦的视频. 这里多层感知器代码写的是一个简单的三层神经网络,输入层,隐藏层,输出层.代码的目的是你和一个二次曲线.同时,为了保证数据的自然,添加了mean为0,steddv为0.05的噪声 ...
- TFboy养成记 tensorboard
首先介绍几个用法: with tf.name_scope(name = "inputs"): 这个是用于区分区域的.如,train,inputs等. xs = tf.placeho ...
- python简单小程序
#足球队寻找10 到12岁的小女孩(包含10岁和12岁),编写程序询问用户性别和年龄,然后显示一条消息指出这个人是否可以加入球队,询问10次,输出满足条件的总人数#询问10次,输出满足要求的总人数 o ...
随机推荐
- mongdb单节点安装方法
mongo单节点环境安装(linux) 安装包 下载地址: (https://www.mongodb.com/download-center) 用户权限/目录 创建 dbuser用户 groupadd ...
- C#控件基础
在说控件之前,还是有必要说一下如何创建项目的. 现在我们就不用创建控制台应用程序了,而是文件>新建>C#>Windows窗体应用程序.名称,位置自己选择. 创建好了大致就是这样了,可 ...
- 开发人员的福音:微软、谷歌、Mozilla将他们所有的web API文档放在同一个地方
Tips 原文作者:Liam Tung 原文地址:Developers rejoice: Microsoft, Google, Mozilla are putting all their web A ...
- 【转】C语言产生随机数
原文地址:http://www.cnblogs.com/xianghang123/archive/2011/08/24/2152404.html 在C语言中,rand()函数可以用来产生随机数,但是这 ...
- Windows搭建wnmp
1. 下载安装nginx: nginx官网下载地址:http://nginx.org/en/download.html 下载任一版本(我下载的是stable1.12.1版本)解压到D:\wnmp\ng ...
- LeetCode 235. Lowest Common Ancestor of a Binary Search Tree (二叉搜索树最近的共同祖先)
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BS ...
- eclipse查看类源码出现failed to create the part's controls的解决方法
刚装好eclipse和Tomcat ,在看准备使用的一个开源框架jeesite,可是在查看源代码的时候出现这个问题
- 关于git常见的一些问题
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 Mark一下,最近用的比较少,担心忘记了. 作为一个程序员,git或者SVN是必备技能,尤其是 ...
- iOS下OpenCV开发用OC还是Swift
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 其实标题中这个问题并不准确,准确的说法应该是iOS下的OpenCV开发是使用OC还是Swift ...
- 五、在IDEA中使用GIt版本控制并将本地代码上传至Github
一.安装git Git工具下载:https://git-scm.com/downloads 从官网下载.安装很简单,基本都是下一步. 安装完的第一件事情就是创建一个Git用户: git con ...