一、tf.Variables()

import tensorflow as tf

Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
sess.run(Weights) tf.Variable()与tf.get_variable()区别
使用tf.Variable时,如果检测到命名冲突,系统会自己处理。使用tf.get_variable()时,系统不会处理冲突,而会报错
w_1 = tf.Variable(3, name="w_1")
w_2 = tf.Variable(1, name="w_1")
print(w_1.name)
print(w_2.name)
#输出
#w_1:0
#w_1_1:0,由于命名相同,系统自行处理 w_1 = tf.get_variable(name="w_1",initializer=1)
w_2 = tf.get_variable(name="w_1",initializer=2)
#会报错,因为名字相同错误信息
#ValueError: Variable w_1 already exists, disallowed. Did
#you mean to set reuse=True in VarScope?

 tf.Variable() 使用TF在默认的图中创建节点,这个节点是一个变量。Variable第一个参数表示初始化的值,如:state = tf.Variable(0 , name='counter')

 tf.get_variable():和tf.Variable最大的区别在于tf.Variable的变量名是一个可选项,通过name=’v’的形式给出。但是tf.get_variable必须指定变量名

 tf.random_uniform():生成的值在该 [minval, maxval) 范围内遵循均匀分布。下限 minval 包含在范围内,而上限 maxval 被排除在外

 tf.random_normal():函数用于从服从指定正态分布的数值中取出指定个数的值。tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

  shape: 输出张量的形状,必选,如shape = ([2, 3])

  mean: 正态分布的均值,默认为0

  stddev: 正态分布的标准差,默认为1.0

  dtype: 输出的类型,默认为tf.float32

  seed: 随机数种子,是一个整数,当设置之后,每次生成的随机数都一样

  name: 操作的名称

 

 tf.truncated_normal():

  tf.truncated_normal(shape, mean, stddev) :shape表示生成张量的维度,mean是均值,stddev是标准差。这个函数产生正太分布,均值和标准差自己设定

  这是一个截断的产生正太分布的函数,就是说产生正太分布的值如果与均值的差值大于两倍的标准差,那就重新生成

  和一般的正太分布的产生随机数据比起来,这个函数产生的随机数与均值的差距不会超过两倍的标准差,但是一般的别的函数是可能的

# -*- coding: utf-8 -*-)
import tensorflow as tf w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1)) with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
# sess.run(tf.initialize_all_variables()) #比较旧一点的初始化变量方法
print(w1)
print(sess.run(w1)) '''
Tensor("Variable/read:0", shape=(2, 3), dtype=float32)
[[-0.8113182 1.4845988 0.06532937]
[-2.4427042 0.0992484 0.5912243 ]]
'''

二、tf.Session()

import tensorflow

matrix1 = tf.constant([[3,3]])#一行两列
matrix2 = tf.constant([[2],[2]])#两行一列 product = tf.matmul(matrix1, matrix2) sess = tf.Session()
result = sess.run(product) print(result)
#[[12]]

 tf.Sess()称之为会话的上下文,用于执行图。

三、tf.placehold()

input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32) output = tf.mul(input1, input2)#乘法 with tf.Session() as sess:
print(sess.run(output, feed_dict={input1:[7], input2:[2]})) #在sess.run()的时候用feed_dict来给变量赋值

 占位符:tf.placeholder 告诉系统,这里有一个值/向量/矩阵,现在我没法给你具体数值,不过我正式运行的时候会补上的!

 

四、tf.clip_by_value的用法

 tf.clip_by_value(A, min, max):把张量A中每一个元素值都限制在min和max之间。小于min的让它等于min,大于max的让它等于max。在min和max之间的保持不变

import tensorflow as tf
import numpy as np
A = np.array([[1,1,2,4], [3,4,8,5]]) with tf.Session() as sess:
print(sess.run(tf.clip_by_value(A, 2, 5))) '''
[[2 2 2 4]
[3 4 5 5]]
'''

五、tf.get_default_graph()

import tensorflow as tf
a = tf.constant( [1.0, 2.0], name='a' ) a.graph
#<tensorflow.python.framework.ops.Graph object at 0x000000001FBEED30> tf.get_default_graph()
#<tensorflow.python.framework.ops.Graph object at 0x000000001FBEED30> b = tf.constant( [3.0, 4.0], name='b' ) b.graph
#<tensorflow.python.framework.ops.Graph object at 0x000000001FBEED30> c = a + b
c.graph
#<tensorflow.python.framework.ops.Graph object at 0x000000001FBEED30> #从上面的看:a,b,c都在一张计算图上,即默认的计算图

六、tf.Graph()

import tensorflow as tf

g1 = tf.Graph()
with g1.as_default():#设g1为默认图
#在计算图g1中定义变量"v",并设置初始值为0,shape指定变量维度
v = tf.get_variable( 'v', shape=[1], initializer=tf.zeros_initializer( ) ) g2 = tf.Graph()#生成新的计算图
with g2.as_default():#设g2为默认图
#在计算图g2中定义变量"v",并设置初始值为1
v = tf.get_variable( 'v',shape=[1], initializer=tf.ones_initializer() ) #在计算图g1中读取变量'v'的取值
with tf.Session( graph=g1 ) as sess:
tf.global_variables_initializer().run()
with tf.variable_scope('', reuse=True):
#在计算图g1中,变量'v'的取值应该为0,所以下面这行会输出[0.]
print( sess.run(tf.get_variable('v')) ) #在计算图g2中读取变量'v'的取值
with tf.Session(graph=g2) as sess:
tf.global_variables_initializer().run()
with tf.variable_scope('', reuse=True):
#在计算图g2中,变量'v'的取值应该为1,所以下面这行会输出[1.]
print(sess.run(tf.get_variable('v')))

  

Tensorflow基本语法的更多相关文章

  1. TensorFlow——零碎语法知识点

    张量(tensor) 张量 是图中计算节点的运算结果的引用,由name,shape,type三个属性构成. 张量的命名 可以以“name:src_output”的形式给出,node为计算节点名称,sr ...

  2. 【TensorFlow篇】--Tensorflow框架初始,实现机器学习中多元线性回归

    一.前述 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,T ...

  3. Torch,Tensorflow使用: Ubuntu14.04(x64)+ CUDA8.0 安装 Torch和Tensorflow

    系统配置: Ubuntu14.04(x64) CUDA8.0 cudnn-8.0-linux-x64-v5.1.tgz(Tensorflow依赖) Anaconda 1. Torch安装 Torch是 ...

  4. 跟着TensorFlow的进阶级教程实现MNIST库的训练

    转载出处:http://blog.csdn.net/feifei884431/article/details/51429829 背景介绍 代码实现及结果 小问题  ResourceExhaustedE ...

  5. 2-12 tensorflow运算原理

    #opencv tensorflow #类比 语法 api 原理 #基础数据类型 运算符 流程 字典 数组 import tensorflow as tf #data1 = tf.constant(2 ...

  6. 2-11 tensorflow常量变量定义

    D:\Users\ZHONGZHENHUA\Anaconda3\envs\tensorflow\Lib\site-packages\tensorflow https://developer.nvidi ...

  7. TensorFlow入门(常量变量及其基本运算)

    1.tensorflow常量变量的定义 测试代码如下: # encoding:utf-8 # OpenCV tensorflow # 类比 语法 api 原理 # 基础数据类型 运算符 流程 字典 数 ...

  8. 【干货】史上最全的Tensorflow学习资源汇总

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 作者:AI小昕 在之前的Tensorflow系列文章中,我们教大家 ...

  9. paddlepaddle使用(一)

    paddlepaddle是百度提出来的深度学习的框架,个人感觉其实和tensorflow差不多(语法上面),因为本人也是初学者,也不是很懂tensorflow,所以,这些都是个人观点. 百度的padd ...

随机推荐

  1. linux内核数据结构之kfifo【转】

    1.前言 最近项目中用到一个环形缓冲区(ring buffer),代码是由linux内核的kfifo改过来的.缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度.例如一个进程A产 ...

  2. 调试工具gdb

    1.1 gdb符号调试器简介 gdb是一个用来调试C和C++程序的功能强大的调试器,它能在程序运行时观察程序的内部结构和内存的使用情况. gdb主要提供以下几种功能: 监视程序中变量值的变化 设置断点 ...

  3. 5.3Python数据处理篇之Sympy系列(三)---简化操作

    目录 5.3简化操作 目录 前言 (一)有理数与多项式的简化 1.最简化-simplify() 2.展开-expand() 3.提公因式-factor() 4.合并同类项-ceiling() 5.简化 ...

  4. 数据库【mysql篇】典型的一些练习题目

    班级表 class 学生表student 老师表 teacher 课程表course 成绩表 score 准备数据 创建数据库 create database tang_test charset='u ...

  5. jenkins之Job建立-运行 git 脚本

    新建一个自由风格的项目,运行git脚本 1.点击菜单栏中的“新任务” 2.进入该页面后输入一个项目名称,然后选择“构建一个自由风格的软件项目”,滑动到最底端,点击ok(在左下角) 3.进入下图页面后 ...

  6. 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题

    最近需要https这里看到一份不错的博客,收录一下! Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla.Cisco.Akamai.IdenTrust ...

  7. Redis常用数据结构

    Redis常用数据结构包括字符串(strings),列表(lists),哈希(hashes),集合(sets),有序集合(sorted sets). redis的key最大不能超过512M,可通过re ...

  8. SpringCloud(5)路由网关Spring Cloud Zuul

    一个简单的微服务系统如下图: 1.为什么需要Zuul Zuul很容易实现 负载均衡.智能路由 和 熔断器,可以做身份认证和权限认证,可以实现监控,在高流量状态下,对服务进行降级. 2.路由网关 继续前 ...

  9. Python——高阶函数——map filter zip

    一.map函数 1.作用:它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 2.实例 def f(x): return x* ...

  10. MySQL 中触发器的应用

    在一个教育系统里面,有 科目表 ,章节表(每一科目对应若干大章节),小节表(每一大章节下面有若干小节),习题表(每一小节对应若干习题), 在后台管理系统中 有这样几个功能要实现,在 科目列表页面中  ...