tensorflow点滴笔记
1、模型保存
模型保存需要使用函数 tf.train.Saver(),
a)创建saver时,可以指定需要存储的tensor,如果没有指定,则全部保存。
b) 创建saver时,可以指定保存的模型个数,利用max_to_keep=4,则最终会保存4个模型。
c) saver.save()函数里面可以设定global_step,说明是哪一步保存的模型。
d) 程序结束后,会生成四个文件:存储网络结构.meta、存储训练好的参数.data和.index、记录最新的模型checkpoint。
示例: saver.save(sess, "model_ame, global_step=epoch)
https://blog.csdn.net/liuxiao214/article/details/79048136
2、"Can not convert a ndarray into a Tensor or Operation"报错
https://blog.csdn.net/michael__corleone/article/details/79007425
test_fc1, test_fc2, Ys = sess.run([test_fc1, test_fc2, fc3],
feed_dict = {x1:xs1, x2:xs2, test_x1:test_img_raw, test_x2:test_img_raw1})
错误指示是run这里出了错,原因:接收的参数名和run()里面的参数名一样了,一般 第一次不会报错,下一次运行中,test_fc1,test_fc2变量名已有了,直接跑会和你前面定义的test_fc1,test_fc2相关运算冲突。 所以将接收的变量名改了就可以了。
3、tensorflow的axis理解
https://blog.csdn.net/m0_37041325/article/details/77155517
tensorFlow里的axis概念和numpy里是一样的,指tensor的某一维。举例:
import tensorflow as tf x=tf.constant([[.,.],[.,.]])
xShape=tf.shape(x)
z1=tf.reduce_mean(x,axis=)#沿axis=0操作
z2=tf.reduce_mean(x,axis=)#沿axis=1操作 with tf.Session() as sess:
xShapeValue,d1,d2=sess.run([xShape,z1,z2])
print('shape= %s'%(xShapeValue))
print(d1)
print(d2) #输出:
shape= [ ]
[. .]
[1.5 3.5]
程序里定义了一个常量tensor,这个tensor的shape是[2,2]即2行2列(x00=1,x01=2,x10=5,x11=2),在程序中,当指定x在axis=0进行求平均操作时,就是指定x00,x10进行求平均,x01,x11进行求平均的操作,当指定x在axis=1进行求平均操作时,就是指定x00,x10进行求平均,x01,x11进行求平均操作。
总结起来也就是说,当指定axis进行操作时,就使tensor就沿着这个axis变化,而其他的axis不变,按照这样的规则,遍历一次tensor,把得到的元素进行相应的操作。在上面的程序中,指定axis=0,操作,则axis=1这个轴上的数就不变。
下面以几个函数的使用来更进一步说明,
//1. tf.reduce_sum(input_tensor, axis) 沿着维度sxis计算和 x= [[, , ], [, , ]] //求和,在所有维度操作,也就相当于对所有元素求和
tf.reduce_sum(x) ==> //在维度0上操作,在这个例子中实际就是按列(维度1)求和
tf.reduce_sum(x, ) ==> [, , ] //在维度1上操作,在这个例子中实际就是按行(维度0)求和
tf.reduce_sum(x, ) ==> [, ] //2. tf.concat(values, axis):Concatenates tensors along one dimension
t1 = [[, , ], [, , ]] //2*3维
t2 = [[, , ], [, , ]] //2*3维
tf.concat([t1, t2], ) == > [[, , ], [, , ], [, , ], [, , ]]
//在维度0上连接,那么第一个维度会增加,在这里就是行会增多,结果是4*3维矩阵. x=tf.ones((,,)) //shape (3,2,2)
C=[x,x,x]
print(tf.concat(C,).shape) == > (,,)
// 再看这个例子,三维矩阵的连接,在第3个维度上,也就是维度2, 结果第三个维度会增加,也就是(3,2,6)
4、 scope 命名方法
tf.name_scope()与tf.variable_scope()
代码示例(以卷积层为例): https://blog.csdn.net/Jerr__y/article/details/70809528
概念: https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/5-12-scope/
tf.name_scope() 主要是用来管理命名空间的,这样子让我们的整个模型更加有条理。而 tf.variable_scope() 的作用是为了实现变量共享,它和 tf.get_variable() 来完成变量共享的功能。
tensorflow点滴笔记的更多相关文章
- Tensorflow学习笔记2:About Session, Graph, Operation and Tensor
简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...
- Tensorflow学习笔记2019.01.22
tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...
- Tensorflow学习笔记2019.01.03
tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...
- TensorFlow学习笔记之--[compute_gradients和apply_gradients原理浅析]
I optimizer.minimize(loss, var_list) 我们都知道,TensorFlow为我们提供了丰富的优化函数,例如GradientDescentOptimizer.这个方法会自 ...
- 深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识
深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识 在tf第一个例子的时候需要很多预备知识. tf基本知识 香农熵 交叉熵代价函数cross-entropy 卷积神经网络 s ...
- 深度学习-tensorflow学习笔记(2)-MNIST手写字体识别
深度学习-tensorflow学习笔记(2)-MNIST手写字体识别超级详细版 这是tf入门的第一个例子.minst应该是内置的数据集. 前置知识在学习笔记(1)里面讲过了 这里直接上代码 # -*- ...
- TensorFlow基础笔记(0) 参考资源学习文档
1 官方文档 https://www.tensorflow.org/api_docs/ 2 极客学院中文文档 http://www.tensorfly.cn/tfdoc/api_docs/python ...
- TensorFlow基础笔记(3) cifar10 分类学习
TensorFlow基础笔记(3) cifar10 分类学习 CIFAR-10 is a common benchmark in machine learning for image recognit ...
- tensorflow学习笔记(4)-学习率
tensorflow学习笔记(4)-学习率 首先学习率如下图 所以在实际运用中我们会使用指数衰减的学习率 在tf中有这样一个函数 tf.train.exponential_decay(learning ...
随机推荐
- flask-sqlalchemy中Datetime的创建时间、修改时间,default,server_default,onupdate
记录第一次创建时间,default falsk中如下两个字段 create_time1 = db.Column(db.DateTime, default=datetime.now) create_ti ...
- Python框架学习之Flask中的常用扩展包
Flask框架是一个扩展性非常强的框架,所以导致它有非常多的扩展包.这些扩展包的功能都很强大.本节主要汇总一些常用的扩展包. 一. Flask-Script pip install flask-scr ...
- lintcode 515. Paint House
Paint House 自己的写法: class Solution { public: /** * @param costs: n x 3 cost matrix * @return: An inte ...
- c# WPF RichTextBox 文字颜色
public MainWindow() { InitializeComponent(); Run run = new Run("This is my text"); run.For ...
- 从源码看Spring Security之采坑笔记(Spring Boot篇)
一:唠嗑 鼓捣了两天的Spring Security,踩了不少坑.如果你在学Spring Security,恰好又是使用的Spring Boot,那么给我点个赞吧!这篇博客将会让你了解Spring S ...
- 面试 12:玩转 Java 快速排序
终于轮到我们排序算法中的王牌登场了. 快速排序由于排序效率在同为 O(nlogn) 的几种排序方法中效率最高,因此经常被采用.再加上快速排序思想——分治法也确实非常实用,所以 在各大厂的面试习题中,快 ...
- vue 二三倍图适配,1像素边框
//文件名为mixin.scss// 2,3倍图适配 @mixin bg-image($url){ background-image: url("~imgs/icon/" + $u ...
- 网络拓扑自动发掘之三层设备惯用的SNMP OID的含义
原文地址:https://blog.csdn.net/maty_wang/article/details/81305070 1. ipNetToMediaIfIndex Name/OID: ipNet ...
- OO博客作业2:第5-7周作业总结
(1)从多线程的协同和同步控制方面,分析和总结自己三次作业来的设计策略及其变化. 第5次作业:多线程电梯 基本照搬了课件上“生产者-消费者”模型的设计策略,将InputHandler设计为生产者线程, ...
- numpy中random的使用
import numpy as np a=np.random.random()#用于生成一个0到1的随机浮点数: 0 <= n < 1.0print(a)0.772000903322952 ...