参考:tensorflow书

1、模型的导出:

import tensorflow as tf
v1=tf.Variable(tf.constant(2.0),name="v1")
v2=tf.Variable(tf.constant(3.0),name="v2")
init_op=tf.global_variables_initializer()
saver=tf.train.Saver()
with tf.Session() as sess:
sess.run(init_op)
saver_path=saver.save(sess,"model.ckpt")
print("model saved in file:",saver_path)

2、模型的导入:

import tensorflow as tf
saver = tf.train.import_meta_graph("model.ckpt.meta")
with tf.Session() as sess:
saver.restore(sess, "model.ckpt")
print (sess.run(tf.get_default_graph().get_tensor_by_name("add:0")))

例1:模型的导入、导出的应用

import tensorflow as tf
var_1=tf.Variable(tf.constant([1,2],shape=[1,2]),name='var_1',dtype=tf.int32)
var_2=tf.placeholder(shape=[2,1],name='var_2',dtype=tf.int32)
var_3=tf.matmul(var_1,var_2,name='var_3')
with tf.Session() as sess:
saver=tf.train.Saver()
init=tf.global_variables_initializer()
sess.run(init)
saver.save(sess,'data.chkp')
saver=tf.train.import_meta_graph('data.chkp.meta')
predict=tf.get_default_graph().get_tensor_by_name('var_3:0')
sess.run(init)
print(predict.eval(session=sess,feed_dict={var_2:[[2],[2]]}))
with tf.Session() as sess:
saver.restore(sess,'data.chkp')
print(sess.run(var_3,feed_dict={var_2:[[5],[5]]}))

接上(若对变量名字作了改变,则在tf.train.Saver()中引入字典来作调整):

import tensorflow as tf
var_1=tf.Variable(tf.constant([1,2],shape=[1,2]),name='other_var_1')
var_2=tf.Variable(tf.constant([1,2],shape=[2,1]),name='other_var_2') #将上面代码的placeholder换成Variable
var_3=tf.matmul(var_1,var_2,name='var_3')
saver=tf.train.Saver({'var_1':var_1,'var_2':var_2})
with tf.Session() as sess:
saver.restore(sess,'data.chkp')
print(sess.run(var_3))

3、迭代的计数表示:

参考:http://blog.csdn.net/shenxiaolu1984/article/details/52815641

global_step = tf.Variable(0, trainable=False)
increment_op = tf.assign_add(global_step, tf.constant(1))
lr = tf.train.exponential_decay(0.1, global_step, decay_steps=1, decay_rate=0.9, staircase=False) #创建计数器衰减的tensor
tf.summary.scalar('learning_rate', lr) #对标量数据汇总和记录,把tensor添加到观测中
sum_ops = tf.summary.merge_all() #获取所有的操作
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
summary_writer = tf.train.SummaryWriter('/tmp/log/', sess.graph) #将监测结果输出目录
for step in range(0, 10): #迭代写入文件
   s_val = sess.run(sum_ops) # 获取serialized监测结果:bytes类型的字符串
   summary_writer.add_summary(s_val, global_step=step) # 写入文件
   sess.run(increment_op)

4、指数衰减法tf.train.exponential_decay()的使用

参考:http://blog.csdn.net/zsean/article/details/75196092

decayed_learning_rate=learining_rate*decay_rate^(global_step/decay_steps)     #每轮迭代通过乘以decay_rate来调整学习率值
global_step = tf.Variable(0)
learning_rate = tf.train.exponential_decay(0.1, global_step, 100, 0.96, staircase=True) #生成学习率,其中衰减率为0.96,每100轮巡检进行一次迭代,学习率乘以0.96
learning_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(....., global_step=global_step) #使用指数衰减学习率来进行梯度下降优化

注:Adam算法和传统的随机梯度下降不同。随机梯度下降保持单一的学习率(即alpha)更新所有的权重,学习率在训练过程中并不会改变。而Adam通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率。

5、通过自己创建collection组织对象,来构建loss

import tensorflow as tf
x1=tf.constant(1.0)
l1=tf.nn.l2_loss(x1)
x2 = tf.constant([2.5, -0.3])
l2 = tf.nn.l2_loss(x2)
tf.add_to_collection('losses',l1) #通过手动指定一个collection来将创建的损失添加到集合
tf.add_to_collection("losses", l2)
losses=tf.get_collection('losses') #创建完成后统一获取所有损失,losses是一个tensor类型的list
loss_total=tf.add_n(losses) #把所有损失累加起来得到一个tensor
sess=tf.Session()
init=tf.global_variables_initializer()
sess.run(init)
sess.run(losses)
sess.run(loss_total)

6、tf.nn.embedding_lookup(embedding, self.input_x)的含义

该函数返回embedding中的第input_x行所对应的内容,并得到这些行所组成的tensor,如下图:

tensorflow函数介绍(2)的更多相关文章

  1. tensorflow函数介绍(4)

    1.队列的实现: import tensorflow as tf q=tf.FIFOQueue(2,'int32') #创建一个先进先出队列,指定队列中最多可以保存两个元素,并指定类型为整数. #先进 ...

  2. tensorflow函数介绍(3)

    tf.nn.softmax_cross_entropy_with_logits(logits,labels) #其中logits为神经网络最后一层输出,labels为实际的标签,该函数返回经过soft ...

  3. tensorflow函数介绍(1)

    tensorflow中的tensor表示一种数据结构,而flow则表现为一种计算模型,两者合起来就是通过计算图的形式来进行计算表述,其每个计算都是计算图上的一个节点,节点间的边表示了计算之间的依赖关系 ...

  4. tensorflow函数介绍 (5)

    1.tf.ConfigProto tf.ConfigProto一般用在创建session的时候,用来对session进行参数配置: with tf.Session(config=tf.ConfigPr ...

  5. Tensorflow | 基本函数介绍 简单详细的教程。 有用, 很棒

     http://blog.csdn.net/xxzhangx/article/details/54606040 Tensorflow | 基本函数介绍 2017-01-18 23:04 1404人阅读 ...

  6. python strip()函数 介绍

    python strip()函数 介绍,需要的朋友可以参考一下   函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除 ...

  7. PHP ob_start() 函数介绍

    ob_start() 函数介绍: http://www.nowamagic.net/php/php_ObStart.php ob_start()作用: http://zhidao.baidu.com/ ...

  8. Python开发【第三章】:Python函数介绍

    一. 函数介绍 1.函数是什么? 在学习函数之前,一直遵循面向过程编程,即根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复 ...

  9. row_number() OVER(PARTITION BY)函数介绍

      OVER(PARTITION BY)函数介绍 开窗函数               Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个 ...

随机推荐

  1. 冲刺CSP-S集训考试反思+其它乱写(密码私信)

    RT.开坑. 10.1 开门黑23333. 放假回来稍困,而且感冒似乎愈加严重,导致我正常考试基本睁不开眼.一个小时勉强把题读懂,神志恍惚如斯. 看T2觉得估计又是各种推柿子堆定理的数学大题,写了个暴 ...

  2. ReactNative的学习笔记

    一.安装nodejs 查看是否安装:npm -v 二.安装react-native命令工具 npm install -g react-native-cli 三.查看 react-native --he ...

  3. ST表——————一失足成千古恨系列2

    在此先祝自己这个系列写的越少越好qwq(保证不超过4篇(flag已立)) 考试原题:(绝壁是看完复联出的) 第一反应:线段树??不对,是st表.嗯,没错.哎,st表咋写来着??完了凉了. 结果:写暴搜 ...

  4. 解决Win7部分便笺的元数据已被损坏的方法

    Win7部分便笺的元数据已被损坏的方法 我们使用键盘上"Win+F"组合键搜索功能,直接找到"inkobj.dll"这个文件,一般会搜索出来好多,先随便选一个. ...

  5. 在Python中操作文件之truncate()方法的使用教程

    在Python中操作文件之truncate()方法的使用教程 这篇文章主要介绍了在Python中操作文件之truncate()方法的使用教程,是Python入门学习中的基础知识,需要的朋友可以参考下 ...

  6. 设计模式 - 建造者模式 Builder Pattern

    简介 场景 在创建复杂对象时,用户无须关心该对象所包含的属性以及它们的组装方式,只需要指定复杂对象的类型和内容就可以构建它们. 模式定义 建造者模式:将一个复杂对象的构建与表示分离,使得同样的构建过程 ...

  7. Vagrant 手册之 Vagrantfile - Vagrant 设置 config.vagrant

    原文地址 配置的命名空间:config.vagrant config.vagrant 中的设置修改 Vagrant 自身的行为. 1. 可用设置 config.vagrant.host 设置运行 Va ...

  8. nacos 报错is not in serverlist

    描述 nacos 没有在节点列表里面 查看日志 cd /opt/nacos/ tailf /logs/naming-raft.log <!--报错--> 2019-08-16 17:48: ...

  9. Python笔记(十七)_面向对象编程

    面向对象编程 概念:简称OOP,是一种程序设计思想:OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数 面向对象的设计思想:抽象出类class,根据类class创建实例对象instan ...

  10. 08 (h5*) js第9天--原型、继承

    目录: 1:原型和原型链 2:构造函数的原型可以改变 3:原型的最终指向 4:先修改原型指向,在添加方法. 5:实例对象中的属性和原型属性重合, 6:一个神奇的原型链 7:继承 8:原型链 9:利用c ...