tensorflow
NuerNuer
这个作者很懒,什么都没留下…
展开
-
tensorflow 和 pytorch 中调整 feature map 尺寸实现上采样
原创 2022-04-19 10:49:56 · 1657 阅读 · 0 评论 -
图像重建生成领域指标之Sharpness Difference(SD)计算方法
该指标在2016年的leCunn的一篇文章中有详细的解释,https://arxiv.org/abs/1511.05440具体的实现方式:import numpy as npimport osimport cv2import tensorflow as tffrom tensorflow.keras import layersimport tensorflow.compat.v1 as tf1tf1.disable_v2_behavior()def log10(t): .原创 2022-04-07 22:19:10 · 1235 阅读 · 1 评论 -
Tensorflow1.x 和 2.x如何读取ckpt中保存了那些参数
对于1.x的tf版本,网上已经有很多介绍了,这里给出代码:import tensorflow as tf import osfrom tensorflow.python import pywrap_tensorflow model_dir='./model'#设置模型所在文件夹checkpoint_path = os.path.join(model_dir, "fineturing_model.ckpt")#定位ckpt文件# 从checkpoint中读出数据reader = py原创 2022-03-09 16:22:27 · 819 阅读 · 2 评论 -
tensorflow实现梯度累计,再回传
由于主机显卡只有12g的显存,且只装了一块30系列的卡,因此在跑代码时难免会遇到batch_size不能太大的尴尬,因此可以通过,梯度累计的方式进行优化,来变相扩大batch_size。上代码,解释:def train(): ... ... trainable_vars = tf.trainable_variables() # set trainable variables vit_trainable_vars = [var for var原创 2022-01-16 22:18:39 · 3526 阅读 · 0 评论 -
记录之tensorflow和pytorch中的取范数归一化操作
最近在将tensorflow翻译成torch的时候遇到了一个问题,就是有一个函数 tf.nn.l2_normalize没有找到相应的替换函数,无奈自己手写了一个这样的操作,最近在阅读令一个torch源码时发现了,就及时记录tf:import tensorflow as tftf.nn.l2_normalize(x, dim, epsilon=1e-12, name=None)参数:x:输入;dim:为l2范化的维数epsilon:范化的最小值边界torch:import.原创 2022-01-16 21:24:09 · 1015 阅读 · 0 评论 -
记录之使用3080ti运行tensorflow-gpu=1.x版本的源码
环境:Anaconda3,ubuntu18.04,RTX3080ti,python3.7RTX3080ti显卡是当前市面上比较新的,算力比较强的显卡,且这类显卡采用了安培架构仅支持cuda11.x及以上版本。关于tf-gpu,cuda,cudnn间的对应关系,我们可以查看:从源代码构建 | TensorFlow关于驱动和cuda,cudnn的对应关系,我们可以查看:Release Notes :: CUDA Toolkit Documentation##问题1:我的30系列卡的驱动为450.x.x..原创 2021-11-29 22:20:15 · 3104 阅读 · 4 评论 -
记录之关于tensoflow中使用Adam优化算法导致模型保存时参数的变化的记录
1.tensorflow ‘/conv/biases/Adam_1’not in ckpt file这类问题是加载预训练模型时常常遇到的,原因就是在使用rmsprop或者adam优化器的时候,他们会在自己内部建立一个adam或者rmsprop变量,然而我们在使用SGD优化器的时候不会新建变量,所以不会出现在这种问题。 问题原因:这类变量在我们的训练初始化图时是存在的,但是我们的预训练模型由于某种保存机制,导致预训练模型中没有这类变量的值(实际上这类变量是没有什么意义的),...原创 2021-11-25 11:18:48 · 1469 阅读 · 0 评论 -
坑 之 Tensorflow安装在导入模块时会出现ImportError: DLL load failed: 找不到指定的模块的问题
最近在使用tensorflow-gpu的时候遇到了这个问题,特此记录一下。问题描述:windows下,安装tensorflow-gpu时选择了1.13.0。在调用时便出现了这个问题。经过查询发现,最有可能的原因就是tf-gpu版本有问题,因为我的同学之前有遇到过安装tf2.x后,出现这种问题。当时我给的建议是将tf版本回退至1.13.1,他的问题就解决了。然而我的tf-gpu版本已经可以安装的所有版本中最低的,已经无法回退。于是就尝试将版本升级,升到了1.15.0。令人惊喜的是,问题解决了。所以,出原创 2021-04-05 18:10:16 · 246 阅读 · 2 评论 -
tf记录 之 tf.boolean_mask函数
tf.boolean_mask 的作用是 通过布尔值 过滤元素def boolean_mask(tensor, mask, name="boolean_mask", axis=None): """Apply boolean mask to tensor.tensor:被过滤的元素mask:一堆 bool 值,它的维度不一定等于 tensorreturn: mask 为 true 对应的 tensor 的元素当 tensor 与 mask 维度一致时,return 值为一维那么r原创 2021-03-15 23:04:23 · 459 阅读 · 0 评论 -
tf之ValueError: Tried to convert ‘values‘ to a tensor and failed. Error: None values not supported
在实验中遇到这个问题:ValueError: None values not supported.经查阅资料发现,是因为有的变量没有被求梯度,因此在计算利用梯度反向更新时会造成这种错误。这里,我的代码是: update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS) with tf.control_dependencies(update_ops): optimizer = tf.train.MomentumOptimiz原创 2021-03-15 22:55:32 · 3686 阅读 · 0 评论 -
坑 之 TypeError: Cannot create initializer for non-floating point type.
Placeholder的数据类型和网络输入类型不匹配会导致此错误我在定义网络时的placeholder类型是tf.float32然而在传参时使用的类型是tf.int32. 因此产生了上述报错,解决办法是修改传入的参数数据类型。...原创 2021-03-01 23:07:45 · 479 阅读 · 0 评论 -
坑 之 TypeError: List of Tensors when single Tensor expected
我再使用tf.constant的时候出现了上述错误,经查阅资料发现。报错的原因:tf.constant传参时不可以是tensor,应该是numpy等类型的。这是一个小的问题,更正就好了例:a = tf.constant(1) #正确print(a) #正常输出b = tf.constant(a) #报错print(b) #报错...原创 2021-03-01 23:03:08 · 1325 阅读 · 0 评论 -
坑 之 Tensor XXX must be from the same graph as Tensor XXX
从报错信息上就能看出来我们的问题出在哪里,就是说我们的两个tensor来自两个不同的计算图,这样执行时自然会报错,那么是什么语原因呢?先看一下出错的代码:.......src = src_path + "/" + fileprint("start to process %s"%src)img = tf.read_file(src)img_org = tf.image.decode_jpeg(img)#----------------------------------------#tf.r原创 2020-12-24 17:14:34 · 2490 阅读 · 0 评论 -
tensorflow 之 最近用到的几个小操作tf.reshape,tf.convert_to_tensor,tf.where
1.tf.reshape() #调整tensor的形状img = ....img_res = tf.reshape(img, [-1])着重记录是shape=[-1]时,相当于flatten操作,与此对应的是在tf.placeholder()中shape=None时,要求输入为一维。2.tf.convert_to_tensor() #将ndarray等转换为tensorx = np.array([[1,1],[2,2]])tx = tf.convert_to_tensor(x)3原创 2020-12-24 16:48:38 · 185 阅读 · 1 评论 -
坑 之 tensorflow使用sess.run处理图片时越来越慢,占用内存越来越大的问题
最近在项目中需要使用tensorflow来对图片进行预处理,但是使用sess.run时代码越来越慢,知道最后几分钟才能处理一张图片,这可怎么能行,我的数据集有数万张图片......原始代码def process(img, .. , .. ,): ....... return imgdef main(): ....... with tf.Session() as sess: for i in range(len(dataset)):原创 2020-12-24 15:32:21 · 677 阅读 · 3 评论 -
tensorflow.python.framework.errors_impl.InvalidArgumentError: slice index 0 of dimension 0 out of bo
tensorflow.python.framework.errors_impl.InvalidArgumentError: slice index 0 of dimension0 out of bounds. for 'strided_slice' (op: 'StridedSlice') with input shapes: [0], [1], [1], [1] and with computed input tensors: input[1] = <0>, input[2] = <原创 2020-12-22 13:14:29 · 885 阅读 · 0 评论 -
记录 之 tensorflow常见的数据预处理操作
今天我们简单的介绍几个比较常用的函数:一.裁剪及pad操作0.tf.image.random_crop(image, shape)#按shape随机裁剪#原始图像#裁剪形状,[a,b,..]1.tf.image.central_crop(image, 0.6)# 原始图像# 裁剪比例2.tf.image.crop_to_bounding_box(image, offset_height, offeset_width, target_height, target_width)#裁剪#原创 2020-12-14 17:15:29 · 315 阅读 · 0 评论 -
tf报错之raise TypeError(“pred must not be a Python bool“)
查阅资料发现原来是代码里定义的字符常量不是tf.bool类型错误出处:is_training = Falseresult = tf.cond( is_training, lambda: npu_ops.dropout(X, keep_prob), # tf.nn.dropout(X, keep_prob), lambda: tf.identity(X), name='dropout' )解决办法,将其定义为tf.bool原创 2020-12-07 11:46:30 · 986 阅读 · 0 评论 -
tf报错 之 assertion failed: [Need value.shape >= size, got ] [336 210 3] [224 224 3]
根据信息提示,我们定位到了报错函数,函数原型:tf.image.random_crop(image,size,seed=None,name=None)产生这个问题的原因是:图片原来的 height或 width 要小于 你设置的裁剪值 的大小解决办法:1.将裁剪值调小,但如果你的数据集比较大的话,这种方法可能要用很多次,才能找到最合适的最小值2.先统一将图片resize成一个统一的大小,在进行裁剪,这样就方便不少resize函数:tf.image.resize(image,size)...原创 2020-12-05 15:59:15 · 445 阅读 · 0 评论 -
tfrecord数据报错 InvalidArgumentError: Feature: feature (data type: string) is required but could not
InvalidArgumentError: Feature: feature (data type: string) is required but could not be found.问题原因: 生成的.tfrecord数据中的key(键值)和你在代码中读取的 key 不匹配导致的。我们在使用不是自己产生的数据时经常会出现这样的错误。既然数据已经生成了,就不可能再去修改数据了,所以将你读取的代码中的键值改成生成时的就OK了例:我产生报错的原因生成时: feature = {原创 2020-12-05 15:52:10 · 1702 阅读 · 0 评论 -
记录 之 tf.placeholder() 函数的意义及用法
函数原型:tf.placeholder(dtype, shape=None, name=None)参数释义:1.dtype:数据类型。常用的是tf.float32,tf.float64等数值类型 2.shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定) 3.name:名称在编写程序时,首先构筑整个系统的graph,此时图中的节点是未经初始化的,代码并未生效...原创 2020-12-05 15:26:46 · 2829 阅读 · 1 评论 -
记录 之 tf.data进行数据集处理常用的几个函数介绍
1.tf.data.Dataset.from_tensor_slices(),前面的文章我们有介绍过。2.tf.data.Dataset.shuffle(buffer_size = n)这里的shuffle函数是将数据集进行混洗,已达到次序的优化,这里的buffer_size的作用是先从原数据集中预取n个数据,然后每次从缓冲区中抽取一个元素,来达到输入数据无序的目的,buffer_size的大小设置也会影响实验结果,一般将buffer_sizeshe设置为len(your_dataset),即buf原创 2020-11-23 21:45:20 · 664 阅读 · 0 评论 -
记录 之 tensorflow函数:tf.data.Dataset.from_tensor_slices
tf.data.Dataset.from_tensor_slices(),是常见的数据处理函数,它的作用是将给定的元组(turple)、列表(list)、张量(tensor)等特征进行特征切片。切片的范围是从最外层维度开始的。更具体的,假设我们有一组特征集合(features),以及这组数据集合所对应的标签集合(labels),那么我们如何将每个数据与其对应的标签进行组合,构成一个个完整训练数据集合([feature_1, label_1],[feature_2, label_2],........).讲原创 2020-11-23 20:42:00 · 1959 阅读 · 0 评论 -
记录 之 tensorflow 常用函数:tf.split(),tf.clip_by_value() 和 tf.cond()
1.tf.split(axis, num_or_size_splits,value)该函数是通道拆分函数,将原来的的多通道tensor,拆分为单通道axis:拆分的维度num_or_size_splits:拆分为几份value:需要拆分的tensor实例:import tensorflow as tfa = tf.random_uniform((4,2,3))c1,c2,c3 = tf.split(axis = 2, num_or_size_splits = 3, value =原创 2020-11-23 17:48:09 · 207 阅读 · 0 评论 -
记录 之 tensorflow中几个常用的函数:tf.unstack,tf.concat() 和 tf.stack() 等
1.tf.to_int32();tf.to_float()等 函数,主要是强制类型转换函数;2.tf.shape(tensor);获取tensor的尺寸3.tf.round(a);四舍五入函数,张量的值四舍五入为最接近的整数4.tf.unstack(matrix, axis = ‘ ’);矩阵分解函数matrix:需要拆解的矩阵axis:沿某一维度进行拆解,值得注意的是,在使用的时候,axis = 不可缺省,axis 取值范围是[-a,a),a是matrx的维度例:impor...原创 2020-11-23 16:57:17 · 576 阅读 · 0 评论 -
关于tensorflow和keras那些事儿
大家知道,tensorflow和keras的安装分开来相对简单的,但是,一旦这两个东西放到一起用的时候,就会出现这样或那样的错误,接下来,我就给大家分享一下,如果在安装keras和tensorflow后出现下列几个问题的时候应该怎么做。1.ImportError: cannot import name pywrap_tensorflow2.ImportError: cannot import name np_utils3.from tensorflow.python.keras._impl.ke原创 2020-11-15 17:20:03 · 444 阅读 · 0 评论 -
tensorflow 之 tf.tile()函数
这个函数是用来进行tensor维度扩展的,我们来看一下是怎么用的。函数定义:tf.tile(input,multiples,name = None)input:表示输入tensormultiples:表示各个维度扩展的倍数例:import tensorflow as tfa = tf.constant([[1, 2], [3, 4]], dtype=tf.float32)a1 = tf.tile(a, [2, 3])with tf.Session() as sess: .原创 2020-08-04 11:28:59 · 360 阅读 · 0 评论 -
Tensorflow之flags的用法介绍
1.功能解释tensorflow中flags用于接收命令行传递参数,可以全局的更改代码中的参数。Tensorflow使用flags类定义命令行参数。网络模型中有大量的超参数需要我们赋值,所以此方法,提供了一种简便的方式对模型超参数进行调整。整体思路就是,我们可以现在一个.py文件内定义参数,然后将参数保存至变量集FLAGS里,即我们对超参数的赋值,后面需要调用时,我们通过FLAGS对象来调用。其实,这和argparse的用法、功能是类似的。基本定义函数类型,分别定义不同数据类型:①flags.原创 2020-07-01 01:14:03 · 4160 阅读 · 1 评论 -
Tensorflow中文文档
链接:http://www.tensorfly.cn/tfdoc/get_started/introduction.html原创 2020-05-13 22:44:58 · 146 阅读 · 0 评论 -
Tensorflow加载模型(进阶版):如何利用预训练模型进行微调(fintuning)
我们要使用别人已经训练好的模型,就必须将.ckpt文件中的参数加载进来。我们如何有选择的加载.ckpt文件中的参数呢。首先我们要查看.ckpt都保存了哪些参数:上代码:import tensorflow as tf import osfrom tensorflow.python import pywrap_tensorflowmodel_dir='./model'#设置模型...原创 2020-05-02 01:42:19 · 1997 阅读 · 11 评论 -
Tensorflow载入模型详解,方法一(基础版):针对测试模型性能 和 使用模型。
我们知道了如何保存我们的模型接下来,我们就要相办法加载模型,调用模型,这也是我们用来做验证也好、做应用也好必须要做的。当然这里我们只考虑应用和验证,且只涉及模型部分,数据预处理,大家要自己加油啦。下一篇文章将为大家讲解如何加载别人的预训练模型进行微调(fintuning)。上代码:import tensorflow as tfsess = tf.Session()...原创 2020-04-26 00:38:34 · 590 阅读 · 1 评论 -
Tensorflow保存模型详解(进阶版二):如何保存最近的.ckpt文件 及 如何分开保存.ckpt数据文件和.meta图文件
在学会了如何有选择的保存变量后,我们来学习如何如何分开保存.ckpt数据文件和.meta图文件 和 如何 保存最近几轮的.ckpt数据文件。直接上代码:import tensorflow as tfmodel_dir = 'xx/xxx/'model_name = 'data_model_name'meta_name = 'meta_model_name'#启动一个会话,意...原创 2020-04-25 16:54:32 · 897 阅读 · 0 评论 -
Tensorflow详解保存模型(进阶版一):如何有选择的保存变量
当然掌握了基础版还不够,我们来看一下进阶版一:如何有选择的保存变量:这里还要另外涉及两个函数:tf.variable_scope("xxx") 和 tf.get_variable(name,shape,initializer = initializer)简单介绍,详细介绍还请大家在查阅其他资料:tf.varibale_scope("xxx"),是定义变量的作用范围的函数,相当于把变...原创 2020-04-25 14:07:57 · 415 阅读 · 0 评论 -
Tensorflow详解保存模型(基础版)
我们都知道tensorflow最后生成的模型文件含:checkpointxxxxx.metaxxxxx.ckpt.data-xxxxxxxx.index学习和使用tensorflow的小伙伴肯定都会进行这个过程,我们来看一下怎么操作上代码:import tensorflow as tfmodel_name = 'xx/xxx/xxx'#启动一个会...原创 2020-04-25 12:54:57 · 260 阅读 · 0 评论