常量、变量、占位符、会话是tensorflow编程的基础也是最常用到的东西,tensorflow中定义的变量、常量都是tensor(张量)类型。

常量tf.constant()

tensorflow中定义的变量、常量都是tensor(张量)类型常用是在运行过程中不会改变的量,如作线性回归Y = w*X + b ,知道一系列(X, Y) ,通过梯度下降找w和b,X和Y的值在程序运行时就不会去改变,只不断改变w和b去减小与真实值的误差,所以常量常用来表示输入输出。

声明一个标量常量:

t_1 = tf.constant(5)

声明一个向量常量:

t_2 = tf.constant([2, 3, 5])

变量tf.Variable()

作线性回归时要不断调整 w、b 做拟合,w和b就要声明为变量,所以变量常用来表示模型中的参数。

声明一个M行N列,全为零的变量:

b_1 = tf.Variable(tf.zeros([M, N], tf.float32))   # tf.zeros 创建全0张量,数字的类型是float32 ,然后用tf.Variable()将其变成变量

声明一个呈正态分布的 均值是2(默认=0.0)标准差是4(默认是1.0)的2行3列张量:

w_1 = tf.Variable(tf.random_nomarl([2, 3], mean=2.0, stddev=4, seed=2)

会话Session()

如同main()函数一样,会话是tensorflow程序的入口,tf 程序一般是先定义节点和节点的关系(运算),然后在会话中根据定义的运算自动算出结果 。

import tensorflow as tf
a = tf.constant([1, 2])
b = tf.constant([2, 3]) # 定义常量a,b是1X2的张量
c = tf.add(a, b) # 定义 c=a+b
d = tf.scalar_mul(tf.constant(2),c) # 定义 d=2*c with tf.Session() as sess:
print(sess.run(d)) # 根据定义的运算(图)计算 d 的值,并打印

第四行第五行定义c、d的运算,但是在那里并没有直接得出c和d的结果,在会话中sess.run(d) 计算d ,它会自动根据前面定义好的运算计算出d的结果,而不需显示的先计算c  sess.run(c) 再计算d。如果在会话总只sess.run(c),程序就不会计算d了。

占位符tf.placeholder()

如名字一样,占位符就是先给变量占一个位,可以先不给变量赋具体值,先给变量一个位置,在会话运行时给变量传入具体的值。即占位符用于将数据提供给计算图。

tf.placeholder(dtype,shape=None,name=None)

dtype是变量的数据类型,shape是变量的形状(几行几列),name是变量的名称。

import tensorflow as tf
import numpy as np
a = np.array([1, 2])
b = np.array([2, 3]) # 创建a,b两个1x2的ndarry变量
X = tf.placeholder(tf.int32)
Y = tf.placeholder(tf.int32) # 定义两个占位符,张量形状可以不写,传入值的时候会自动判断 c = tf.add(X, Y)
d = tf.scalar_mul(tf.constant(2),c) with tf.Session() as sess:
re = sess.run(d, feed_dict={X:a, Y:b}) # 在图计算时提供具体值
print(re)

会话在用feed_dict = { } 传入值的时候传入的不能是tf.constant()这种类型,必须是数组、np.ndarry等具体数值的类型。

tensorflow学习笔记(二)常量、变量、占位符、会话的更多相关文章

  1. tensorflow学习笔记二:入门基础 好教程 可用

    http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础   TensorFlow用张量这种数据结构来表示所有的数据.用一 ...

  2. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  3. tensorflow学习笔记二:入门基础

    TensorFlow用张量这种数据结构来表示所有的数据.用一阶张量来表示向量,如:v = [1.2, 2.3, 3.5] ,如二阶张量表示矩阵,如:m = [[1, 2, 3], [4, 5, 6], ...

  4. tensorflow学习笔记二----------变量

    tensorflow里面的变量表示,需要使用特定的语法进行.如果想构造一个行(列)向量,需要调用Variable函数进行.对两个变量进行操作,也要调用相应的函数. import tensorflow ...

  5. Tensorflow学习笔记二

    现在来开始安装Tensorflow吧 Tensorflow有两种模式, 一种GPU支持, 另外一种仅CPU支持 虚拟机仅有CPU支持, 那就第一种模式吧 有4种途径去安装 virtualenv &qu ...

  6. Tensorflow学习笔记——占位符和feed_dict(二)

    创建了各种形式的常量和变量后,但TensorFlow 同样还支持占位符.占位符并没有初始值,它只会分配必要的内存.在会话中,占位符可以使用 feed_dict 馈送数据. feed_dict是一个字典 ...

  7. python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字

    python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...

  8. TensorFlow学习笔记——LeNet-5(训练自己的数据集)

    在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练 ...

  9. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  10. JDBC学习笔记二

    JDBC学习笔记二 4.execute()方法执行SQL语句 execute几乎可以执行任何SQL语句,当execute执行过SQL语句之后会返回一个布尔类型的值,代表是否返回了ResultSet对象 ...

随机推荐

  1. android 支持上拉加载,下拉刷新的列表控件SwipeRefreshLayout的二次封装

    上拉加载,下拉刷新的列表控件,大家一定都封装过,或者使用过 源代码,我会在最后贴出来 这篇代码主要是为了解决两个问题 1.滑动冲突得问题 2.listview无数据时,无数据布局的展示问题 下方列出的 ...

  2. PAT T1001 Battle Over Cities-Hard Version

    按题意枚举每个点,建立缺少该点情况下的最小生成树,取权值最大的~ #include<bits/stdc++.h> using namespace std; ; const int inf= ...

  3. Java Juc学习笔记

    Java JUC 简介 在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括 ...

  4. PPT页面切换动画

    想要自己的PPT更加炫酷一些的话,可以再给每个页面的切换,加上动画效果. 第一步,按住ctrl键,鼠标点击选择想要增加切换动画的页面,然后点击菜单栏的“切换” 第二步,在切换菜单下面选择具体的切换效果 ...

  5. 第2节 Scala中面向对象编程:12、13、14、15、16、trait

    6.4.  Scala中面向对象编程之trait 6.4.1.    将trait作为接口使用 Scala中的trait是一种特殊的概念: 首先先将trait作为接口使用,此时的trait就与Java ...

  6. Django:cookie和session相关问题

    http://www.cnblogs.com/fnng/p/3750596.html http://www.cnblogs.com/chenchao1990/p/5283725.html

  7. AJAX请求返回JSON数据动态生成html

    1:DeliveryPersonVO对象 package com.funcanteen.business.entity.delivery.vo; import java.util.List; impo ...

  8. UCOS-III API函数

    附录:UCOS-III API函数 任务管理 就绪列表 挂起队列 时间管理 信号量 消息队列 内存管理

  9. redis小功能大用处-bitmaps

  10. 「JOI2019 Final」解题报告

    传送门 「JOI2019 Final」勇者比太郎 看懂题就很简单了,后缀和随便维护一下就好了,别用树状数组强加一个\(\log\)就行. 「JOI2019 Final」画展 显然可以先把所有的画框按大 ...