tensorflow
MatthewHsw
搬砖新兵
展开
-
tensorflow 2.0模式下训练的模型如何转成 tf1.x 版本的pb模型
升级到tf 2.0后, 训练的模型想转成1.x版本的.pb模型, 但之前提供的通过ckpt转pb模型的方法都不可用(因为保存的ckpt不再有.meta)文件, 尝试了好久, 终于找到了一个方法可以迂回转到1.x版本的pb模型.Note: 本方法首先有些要求需要满足:可以拿的到模型的网络结构定义源码网络结构里面的所有操作都是通过tf.keras完成的, 不能出现类似tf.nn 的tensor...原创 2019-11-22 18:00:16 · 5492 阅读 · 6 评论 -
tensorflow 2.0 分布式训练(单机多卡模式)
方式一:import tensorflow as tffrom nets.single_posenet import singlePosenet from configs.spn_config import paramsfrom dataset.dataset import get_datasetimport osimport timeif __name__ == '__main...原创 2019-10-17 12:16:58 · 5741 阅读 · 1 评论 -
tensorflow ckpt转pb,修改pb里面的节点信息,pb转tvm里的一些坑
之前写过一篇文章有关tensorflow ckpt和pb模型之间转换的操作, 这次再详细说下里面的一些坑.ckpt 转 pb如果只有ckpt文件,例如三个ckpt文件model-xxx.data, model-xxx.meta, model-xxx.index, 转成pb文件方式很简单,按照上面的链接就可以,只需要确定好输出节点名称就可以。如果不知道,可以打印ckpt里面的节点名称,或者使用t...原创 2019-08-20 20:44:15 · 4488 阅读 · 2 评论 -
tensorflow 2.0 learning_rate schedules
除了可以使用tensorflow自己定义好的learning_rate schedules外,我们也可以自定义tensorflow的learning_rate schedule,由于2.0的eager模式,这个改变十分简单:def lr_fn(epoch, base_lr=1e-4): # based on your strategy to change lr for epoch in...原创 2019-08-14 19:44:19 · 1848 阅读 · 0 评论 -
tensorflow2.0-数据处理
首先生成个list或者numpy, 然后初始化dataset:dataset = tf.data.Dataset.from_tensor_slices(img_ids)img_ids 是包含所有需要训练的图片id集合, 这行代码执行完之后, 在dataset里面的每一个元素都是一个tensor, 每个tensor的值是图片id.执行shuffle, 在这里先执行shuffle而不是之...原创 2019-08-14 19:43:15 · 5338 阅读 · 0 评论 -
tensorfow estimator: WarmStartSettings
tensorflow version: v 1.13在tf.estimator.WarmStartSettings里, 是可以设置具体restore哪些变量, 里面有两个参数,ckpt_to_initialize_from, 就是需要restore的ckpt地址, 例如xx/model.ckpt-xxvars_to_warm_start, 就是判断哪些变量需要被restore的. 需...原创 2019-07-01 18:26:58 · 2002 阅读 · 1 评论 -
tensorflow反卷积 tf.layers.conv2d_transpose 和 tf.nn.conv2d_transpose
首先, 引用一篇博文的图,讲解的很清楚,这篇博文讲解的也很清楚,还有手写代码实现,我就说下我自己的理解.tensorflow的反卷积也被成为转置卷积, 在执行反卷积的时候, tensorflow通常会做以下几个操作:根据设置的stride对featuremap填充0, 具体来说, 就是将featuremap填充至(h*stride+1, w*stride+1)大小. 填充方式为在原来的fea...原创 2019-02-26 19:18:51 · 3066 阅读 · 2 评论 -
tensorflow模型转ncnn
第一步把tensorflow保存的.ckpt模型转为pb模型, 并记下模型的输入输出名字.第二步去ncnn的github上把仓库clone下来, 按照上面的要求装好依赖并make.第三步是修改ncnn的CMakeList, 具体修改的位置有:ncnn/CMakeList.txt 文件, 在文件开头处加入add_definitions(-std=c++11), 末尾处加上add_subdir...原创 2019-02-28 20:06:35 · 3872 阅读 · 5 评论 -
tensorflow tf.space_to_batchnd函数理解
最近需要将tensorflow转ncnn模型, 发现无论是普通的卷积还是分组卷积, 只要有dilation > 1的情况出现, tensorflow在做空洞卷积的时候, 就会执行:SpaceToBatchND操作conv操作BathToSpaceND操作其中, 第二步的conv操作已经是普通的卷积操作了, 即dilation=1的普通卷积.tensorflow这样做的目的, 是...原创 2019-02-16 20:21:11 · 4363 阅读 · 2 评论 -
tensorflow获取模型节点名称及将.ckpt转为.pb文件
将tensorflow的ckpt模型转为pb文件, 需要知道网络的输出节点名称, 如果不指定输出节点名称, 程序就不知道该freeze哪些节点, 就没有办法保存模型.获取ckpt模型中的节点名称from tensorflow.python import pywrap_tensorflowcheckpoint_path = 'model.ckpt-xxx'reader = pywrap_te...原创 2019-02-14 16:39:11 · 11732 阅读 · 7 评论 -
tensorflow遇到的一些问题
问题: 通过tfrecord读取的数据在tensorboard上显示,图片和label不一致原因: tfrecord读取是一个batch一个batch进行读取,根据自己设置的缓冲区大小,它会一次性读取缓冲区大小个batch放在缓冲区内。原来的代码在summary.image的时候,label是通过placeholder summary的,而image则是直接传入的从tfrecord里读取到的...原创 2018-12-07 20:52:46 · 481 阅读 · 0 评论 -
tensorflow save使用
tensorflow在save model的时候,如果选择了global_step选项,会把对应的学习率也保存下来,然后restore的时候会把学习率也恢复,此时可以在restore的时候指定恢复的tensor名字就行,通过saver.restore(var_list=var_list)就行,这样就忽略了学习率,仅恢复了权重. 但需要注意的是, 在restore的时候,如果是通过tf.get_co...原创 2018-11-30 20:44:22 · 805 阅读 · 0 评论 -
tf.layers.separable_conv2d
tensorflow里的深度可分离卷积的实现API. 也即是MobileNet V1和V2里提到的depthwise conv + pointwise conv. 函数接口:@tf_export('layers.separable_conv2d')def separable_conv2d(inputs, filters, ...原创 2018-12-04 20:46:10 · 2128 阅读 · 3 评论 -
tf.data.Dataset的一些小坑
我们使用数据的时候都是用batch来做输入,使用tf.data.Dataset的时候,一般会这样写:dataset = dataset.batch(batch_size).repeat(epochs)用来说明我们需要对整个数据集进行多少个epochs,每次的输入大小是多少个batch.注意:如果我们的数据集的数量为N,而N%batch_size刚好能整除的话,上述代码是没有任何bug的,...原创 2018-11-08 10:10:18 · 5759 阅读 · 4 评论 -
tensorflow使用tf.keras.Mode写模型并使用tf.data.Dataset作为数据输入
单输入,单输出的model使用tf.data.Dataset作为数据输入很方便,定义好数据的input和对应的label,组成一个tf.data.Dataset类型的变量,直接传入由tf.keras.Model构成的模型进行model.fit即可,例如:a = tf.keras.layers.Input(shape=(368, 368, 3))conv1 = tf.keras.layers....原创 2018-11-07 21:15:25 · 6521 阅读 · 1 评论