如何定义TensorFlow输入节点


Posted in Python onJanuary 23, 2020

TensorFlow中有如下几种定义输入节点的方法。

通过占位符定义:一般使用这种方式。

通过字典类型定义:一般用于输入比较多的情况。

直接定义:一般很少使用。

一 占位符定义

示例:

具体使用tf.placeholder函数,代码如下:

X = tf.placeholder("float")
Y = tf.placeholder("float")

二 字典类型定义

1 实例

通过字典类型定义输入节点

2 关键代码

# 创建模型
# 占位符
inputdict = {
  'x': tf.placeholder("float"),
  'y': tf.placeholder("float")
}

3 解释

通过字典定义的方式和第一种比较像,只不过是堆叠到一起。

4 全部代码

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
plotdata = { "batchsize":[], "loss":[] }
def moving_average(a, w=10):
  if len(a) < w:
    return a[:]  
  return [val if idx < w else sum(a[(idx-w):idx])/w for idx, val in enumerate(a)]
#生成模拟数据
train_X = np.linspace(-1, 1, 100)
train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3 # y=2x,但是加入了噪声
#图形显示
plt.plot(train_X, train_Y, 'ro', label='Original data')
plt.legend()
plt.show()
# 创建模型
# 占位符
inputdict = {
  'x': tf.placeholder("float"),
  'y': tf.placeholder("float")
}
# 模型参数
W = tf.Variable(tf.random_normal([1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="bias")
# 前向结构
z = tf.multiply(inputdict['x'], W)+ b
#反向优化
cost =tf.reduce_mean( tf.square(inputdict['y'] - z))
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) #Gradient descent
# 初始化变量
init = tf.global_variables_initializer()
#参数设置
training_epochs = 20
display_step = 2
# 启动session
with tf.Session() as sess:
  sess.run(init)
  # Fit all training data
  for epoch in range(training_epochs):
    for (x, y) in zip(train_X, train_Y):
      sess.run(optimizer, feed_dict={inputdict['x']: x, inputdict['y']: y})
    #显示训练中的详细信息
    if epoch % display_step == 0:
      loss = sess.run(cost, feed_dict={inputdict['x']: train_X, inputdict['y']:train_Y})
      print ("Epoch:", epoch+1, "cost=", loss,"W=", sess.run(W), "b=", sess.run(b))
      if not (loss == "NA" ):
        plotdata["batchsize"].append(epoch)
        plotdata["loss"].append(loss)
  print (" Finished!")
  print ("cost=", sess.run(cost, feed_dict={inputdict['x']: train_X, inputdict['y']: train_Y}), "W=", sess.run(W), "b=", sess.run(b))
  #图形显示
  plt.plot(train_X, train_Y, 'ro', label='Original data')
  plt.plot(train_X, sess.run(W) * train_X + sess.run(b), label='Fitted line')
  plt.legend()
  plt.show()
  
  plotdata["avgloss"] = moving_average(plotdata["loss"])
  plt.figure(1)
  plt.subplot(211)
  plt.plot(plotdata["batchsize"], plotdata["avgloss"], 'b--')
  plt.xlabel('Minibatch number')
  plt.ylabel('Loss')
  plt.title('Minibatch run vs. Training loss')
   
  plt.show()
  print ("x=0.2,z=", sess.run(z, feed_dict={inputdict['x']: 0.2}))

5 运行结果

如何定义TensorFlow输入节点

三 直接定义

1 实例

直接定义输入结果

2 解释

直接定义:将定义好的Python变量直接放到OP节点中参与输入的运算,将模拟数据的变量直接放到模型中训练。

3 代码

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
#生成模拟数据
train_X =np.float32( np.linspace(-1, 1, 100))
train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3 # y=2x,但是加入了噪声
#图形显示
plt.plot(train_X, train_Y, 'ro', label='Original data')
plt.legend()
plt.show()
# 创建模型
# 模型参数
W = tf.Variable(tf.random_normal([1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="bias")
# 前向结构
z = tf.multiply(W, train_X)+ b
#反向优化
cost =tf.reduce_mean( tf.square(train_Y - z))
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) #Gradient descent
# 初始化变量
init = tf.global_variables_initializer()
#参数设置
training_epochs = 20
display_step = 2
# 启动session
with tf.Session() as sess:
  sess.run(init)
  # Fit all training data
  for epoch in range(training_epochs):
    for (x, y) in zip(train_X, train_Y):
      sess.run(optimizer)
    #显示训练中的详细信息
    if epoch % display_step == 0:
      loss = sess.run(cost)
      print ("Epoch:", epoch+1, "cost=", loss,"W=", sess.run(W), "b=", sess.run(b))
  print (" Finished!")
  print ("cost=", sess.run(cost), "W=", sess.run(W), "b=", sess.run(b))

4 运行结果

如何定义TensorFlow输入节点

以上这篇如何定义TensorFlow输入节点就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中计算三角函数之cos()方法的使用简介
May 15 Python
简单谈谈Python中的反转字符串问题
Oct 24 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
python导入csv文件出现SyntaxError问题分析
Dec 15 Python
python实现简单的文字识别
Nov 27 Python
django-filter和普通查询的例子
Aug 12 Python
Django实现分页显示效果
Oct 31 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
windows下python安装pip方法详解
Feb 10 Python
python绘制封闭多边形教程
Feb 18 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
python中字符串的编码与解码详析
Dec 03 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 #Python
python动态文本进度条的实例代码
Jan 22 #Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 #Python
使用Python实现Wake On Lan远程开机功能
Jan 22 #Python
python定义类self用法实例解析
Jan 22 #Python
通过实例解析python描述符原理作用
Jan 22 #Python
python基于property()函数定义属性
Jan 22 #Python
You might like
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
php发送与接收流文件的方法
2015/02/11 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
JavaScript基础知识之数据类型
2012/08/06 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
剖析Angular Component的源码示例
2018/03/23 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
六个窍门助你提高Python运行效率
2015/06/09 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Python常见异常分类与处理方法
2017/06/04 Python
Python中bisect的使用方法
2019/12/31 Python
python实现同一局域网下传输图片
2020/03/20 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
德国家具在线:Fashion For Home
2017/03/11 全球购物
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
学校食堂采购员岗位职责
2013/12/05 职场文书
个人贷款承诺书
2014/03/28 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
大队委员竞选演讲稿
2015/11/20 职场文书