耐心的小黑
七月份就上班了,比较忙!
展开
-
tensorflow2.x学习笔记二十九:官方API文档小总结
一、tf下的常用API(下面这几个都比较常用,主要是定义处理数据)1、tf.constant,tf.variable(它有比constant更多的属性,比如.assign,.assign_add,.assign_sub,这几个属性是直接将返回值给var变量本身,也即直接改变本身的值),tf.string,tf.range,tf.ones,tf.zeros,tf.linespace;tf.meshgrid.tf.RaggedTensor;定义数据2、tf.fill,tf.shape,tf.one原创 2020-12-06 22:03:06 · 2184 阅读 · 0 评论 -
tensorflow2.x学习笔记二十八:使用LearningRateScheduler实现学习率衰减
下面使用一段伪代码来说明如何使用LearningRateScheduler:1、返回值为lr的衰减函数,作为LearningRateScheduler的参数from tensorflow.python.keras.callbacks import LearningRateSchedulernum_epochs =20learning_rate=0.3#定义学习率衰减函数def scheduler(epoch): if epoch < num_epochs * 0.4:原创 2020-08-30 23:03:30 · 3264 阅读 · 0 评论 -
tensorflow2.x学习笔记二十七:TFLite的转换、解释和量化
一、转换TensorFlow Lite 转换器根据输入的 TensorFlow模型生成 TensorFlow Lite FlatBuffer 文件 (.tflite)。该转换器支持 SavedModel目录、tf.keras 模型和 concrete functions。1、saved_model转换成TFLite,注意这里提供的是.pb文件的目录saved_model_to_tflite_converter = tf.lite.TFLiteConverter.from_saved_model原创 2020-08-29 22:48:25 · 3238 阅读 · 0 评论 -
tensorflow2.x踩坑记录二:加载含Lambda层的模型时,出现name tf is not defined
一、问题描述:最近在学习一个TF2.x的yolov4项目,当我看明白主程序的整个检测过程以及一些网络搭建的代码之后,就准备将模型保存成.pb或者.h5格式,然后在其他程序中直接调用进行推理。保存的时候没有出现问题,成功的保存为了.pb文件,但是在使用tf.keras.models.load_model加载模型的时候,出现了name tf is not defined的报错。大概流程如下:self.yolo_model.save('./saved_model')model=tf.keras.model原创 2020-08-26 10:06:13 · 3764 阅读 · 0 评论 -
tensorflow2.x学习笔记二十六:特征列feature_column
特征列feature_column特征列 通常用于对结构化数据实施特征工程时候使用,图像或者文本数据一般不会用到特征列。一,特征列用法概述使用特征列可以将类别特征转换为one-hot编码特征,将连续特征构建分桶特征,以及对多个特征生成交叉特征等等。要创建特征列,请调用 tf.feature_column模块的函数。该模块中常用的九个函数如下图所示,所有九个函数都会返回一个 Cate...原创 2020-04-14 22:47:26 · 2519 阅读 · 0 评论 -
tensorflow2.x学习笔记二十五:tf.where和tf.boolean_mask的使用
一、tf.wheretf.where(condition, x=None, y=None,name=None)condition:一个Tensor,数据类型为bool类型如果x、y均为空,那么返回condition中值为True的位置如果x、y不为空,那么x、y必须有相同的形状。如果x、y是标量,那么condition也必须是标量。如果x、y是向量,那么condition必须...原创 2020-04-16 15:19:07 · 1742 阅读 · 0 评论 -
tensorflow2.x学习笔记二十四:tf.keras.metrics的使用
一、metrics的简单介绍 在tensorflow2.x中我们进行模型编译的时候,会看到其中有一个参数是metrics,它用来在训练过程中监测一些性能指标,而这个性能指标是什么可以由我们来指定。指定的方法有两种:直接使用字符串使用tf.keras.metrics下的类创建的实例化对象或者函数下面先举个例...原创 2020-04-02 14:30:48 · 14369 阅读 · 2 评论 -
tensorflow2.x学习笔记二十三:卷积(转置卷积)层中的padding=valid和same的区别(含ZeroPadding2D)
对于转置卷积和卷积,输入高宽(i),输出高宽(o),步长(s),卷积核的高宽(k)(设定高宽相等都为k)满足以下关系:1. 卷积: padding = 'same’时,o = i/s 向上取整 padding = 'valid’时...原创 2020-03-20 17:40:18 · 2451 阅读 · 1 评论 -
tensorflow2.x学习笔记二十二:tensorflow(keras)常用激活层
一、LeakyReLU'''它的计算公式是:f(x) = alpha * x for x < 0, f(x) = x for x >= 0.'''tf.keras.layers.LeakyReLU( alpha=0.3, **kwargs)二、Softmax'''axis:用来设置对哪一个轴进行操作'''tf.keras.la...原创 2020-03-22 15:12:23 · 1216 阅读 · 0 评论 -
tensorflow2.x学习笔记二十一:常用神经网络层
一、Add用于将多个张量进行相加,需要注意的是这些张量必须有相同的形状(包括通道数)tf.keras.layers.Add(**kwargs)input1 = keras.layers.Input(shape=(16,))x1 = keras.layers.Dense(8, activation='relu')(input1)input2 = keras.layers.Input(sh...原创 2020-03-22 14:33:24 · 1114 阅读 · 0 评论 -
tensorflow2.x学习笔记二十:损失函数之解析交叉熵
SparseCategoricalCrossentropy类的使用:tf.keras.losses.SparseCategoricalCrossentropy( from_logits=False, reduction=losses_utils.ReductionV2.AUTO, name='sparse_categorical_crossentropy')参数解...原创 2020-03-21 15:02:27 · 1851 阅读 · 0 评论 -
tensorflow2.x学习笔记十九:损失函数之平均绝对值、均方误差
一、MeanAbsoluteError类tf.keras.losses.MeanAbsoluteError( reduction=losses_utils.ReductionV2.AUTO, name='mean_absolute_error')mae = tf.keras.losses.MeanAbsoluteError()loss = mae(([0., 0., 1...原创 2020-03-21 13:44:21 · 2187 阅读 · 0 评论 -
tensorflow2.x学习笔记十八:损失函数之交叉熵
下面都是我自己的一些简单的总结,如果有错误的地方,还请大家指出来。一、BinaryCrossentropy类和binary_crossentropy函数BinaryCrossentropy类的使用:tf.keras.losses.BinaryCrossentropy( from_logits=False, label_smoothing=0, reduction=losse...原创 2020-03-21 12:05:49 · 1726 阅读 · 0 评论 -
tensorflow2.x学习笔记十七:ImageDataGenerator的使用
tf.keras.preprocessing.image.ImageDataGenerator( featurewise_center=False, samplewise_center=False, featurewise_std_normalization=False, samplewise_std_normalization=False, zca_whiten...原创 2020-03-20 22:07:24 · 3642 阅读 · 1 评论 -
tensorflow2.x学习笔记十六:tf.keras.utils.get_file函数的使用
tf.keras.utils.get_file( fname, origin, untar=False, md5_hash=None, file_hash=None,cache_subdir='datasets', hash_algorithm='auto', extract=False, archive_format='auto', cache_dir=Non...原创 2020-03-20 20:52:28 · 11176 阅读 · 1 评论 -
tensorflow2.x学习笔记十五:tf.keras.utils.to_categorical函数的使用
tf.keras.utils.to_categorical(y, num_classes=None, dtype=‘float32’)res=tf.keras.utils.to_categorical( (5,6,7), num_classes=10, dtype='float32')[[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.] [0. 0. 0. 0. 0. ...原创 2020-03-20 20:06:44 · 2767 阅读 · 0 评论 -
tensorflow2.x学习笔记十四:tf.data.Dataset.from_tensor_slices以及Dataset部分属性的使用方法
一、tf.data.Dataset.from_tensor_slices,它有三种用法,可以传入tensor、元组以及字典。下面就举几个例子:直接传入tensor,有一点需要注意的是,它是按照传入的tensor的第0维进行划分以产生数据集传入元组传入字典二、使用from_tensor_slices生成的dataset的一些属性方法,apply、as_numpy_iterator、...原创 2020-03-29 10:40:25 · 3550 阅读 · 0 评论 -
tensorflow2.x学习笔记十三:使用 tf.data下的API构建数据通道Dataset
我们可以从以下七种数据结构中构建数据通道:Numpy array,Pandas DataFrame,Python generator,csv文件,文本文件,文件路径,tfrecords文件由于从tfrecord文件中构建数据通道比较复杂,所以接下来就只介绍前面六种情况。下面在介绍的时候也会指出使用了的tf.data下的五种API,其中 Numpy array和Pandas DataFrame使用的是同一种API。一、从Numpy array构建数据管道(tf.data.Dataset.转载 2020-08-30 21:52:35 · 2047 阅读 · 0 评论 -
tensorflow2.x学习笔记十二:使用多GPU训练模型
一、前言如果使用多GPU训练模型,推荐使用内置fit方法,较为方便,仅需添加2行代码。MirroredStrategy过程简介:训练开始前,该策略在所有 N 个计算设备上均各复制一份完整的模型;每次训练传入一个批次的数据时,将数据分成 N 份,分别传入 N 个计算设备(即数据并行);N 个计算设备使用本地变量(镜像变量)分别计算自己所获得的部分数据的梯度;使用分布式计算的 All-reduce操作,在计算设备间高效交换梯度数据并进行求和,使得最终每个设备都有了所有设备的梯度之和;使用梯度求和原创 2020-08-30 10:13:56 · 3960 阅读 · 0 评论 -
tensorflow2.x学习笔记十一:@tf.function(AutoGraph)的使用规范
一、前言有三种计算图的构建方式:静态计算图,动态计算图,以及Autograph。TensorFlow 2.0主要使用的是动态计算图和Autograph。动态计算图易于调试,编码效率较高,但执行效率偏低。静态计算图执行效率很高,但较难调试。而Autograph机制可以将动态图转换成静态计算图,兼收执行效率和编码效率之利。当然Autograph机制能够转换的代码并不是没有任何约束的,有一些编码规范需要遵循,否则可能会转换失败或者不符合预期。下面就来介绍一下使用Autograph的编码规范。二、Au转载 2020-08-30 09:46:09 · 2139 阅读 · 0 评论 -
tensorflow2.x学习笔记十:使用tf.function(Autograph)提高代码性能(含函数签名的使用)
一、基本概念 AutoGraph是TF提供的一个非常具有前景的工具, 它能够将一部分python语法的代码转译成高效的图表示代码. 由于从TF 2.0开始, TF将会默认使用动态图(eager execution), 因此利用AutoGraph, 在理想情况下, 能让我们实现用动态图写(方便, 灵活), 用静态图跑...原创 2020-04-01 21:04:08 · 2187 阅读 · 0 评论 -
tensorflow2.x学习笔记九:保存和加载模型
一、模型的保存我们在保存模型的时候既可以保存整个模型,也可以只保存权重1. 保存整个模型**:有两种方式,一种是直接调用saved_model下的save API;另一种是添加callback参数,后者要注意save_weights_only 参数要设为Falsetf.saved_model.save(model, os.path.join("gr...原创 2020-03-21 21:57:09 · 2417 阅读 · 0 评论 -
tensorflow2.x学习笔记八:自定义网络层、模型以及损失函数
一、自定义网络层layer继承tf.keras.layers.Layer类使用tf.keras.layers.Lambda类下面这个例子就包含了以上两种形式:from tensorflow import kerasclass CustomizedDenseLayer(keras.layers.Layer): def __init__(self, units, activat...原创 2020-04-01 22:33:45 · 1826 阅读 · 0 评论 -
tensorflow2.x学习笔记七:生成、解析、读取csv文件
一、数据准备,使用的是房价预测的数据集from sklearn.datasets import fetch_california_housinghousing = fetch_california_housing()#数据划分from sklearn.model_selection import train_test_splitx_train_all, x_test, y_train...原创 2020-03-29 15:24:12 · 1662 阅读 · 1 评论 -
tensorflow2.x学习笔记六:训练模型的三种方式
模型的训练主要有内置fit方法、内置tran_on_batch方法、自定义训练循环。注:fit_generator方法在tf.keras中不推荐使用,其功能已经被fit包含。一、内置fit方法该方法功能非常强大, 支持对numpy array, tf.data.Dataset以及Python generator数据进行训练。并且可以通过设置回调函数实现对训练过程的复杂控制逻辑。tf.keras.backend.clear_session()def create_model():转载 2020-08-17 22:55:31 · 2740 阅读 · 0 评论 -
tensorflow2.x学习笔记五:构建模型的三种方式
前言可以使用以下3种方式构建模型:使用Sequential按层顺序构建模型,使用函数式API构建任意结构模型,继承Model基类构建自定义模型。对于顺序结构的模型,优先使用Sequential方法构建。如果模型有多输入或者多输出,或者模型需要共享权重,或者模型具有残差连接等非顺序结构,推荐使用函数式API进行创建。如果无特定必要,尽可能避免使用Model子类化的方式构建模型,这种方式提供了极大的灵活性,但也有更大的概率出错。一,Sequential按层顺序创建模型tf.keras.ba转载 2020-08-17 22:31:09 · 2450 阅读 · 0 评论 -
tensorflow2.x学习笔记四:自动微分机制(tf.GradientTape)
参考链接:eat_tensorflow2_in_30_days 神经网络通常依赖反向传播求梯度来更新网络参数,求梯度过程通常是一件非常复杂而容易出错的事情。而深度学习框架可以帮助我们自动地完成这种求梯度运算。Tensorflow一般使用梯度磁带tf.GradientTape来记录正向运算过程,然后反播磁带自动得到梯...转载 2020-04-03 10:56:32 · 2154 阅读 · 0 评论 -
tensorflow2.x学习笔记三:Tensor(张量)的定义、切片
一、创建张量原创 2020-04-16 13:14:57 · 2076 阅读 · 0 评论 -
tensorflow2.x踩坑记录1:运行tf2.x出现如下错误:Blas GEMM launch failed或者Failed to get convolution algorithm
我的第一篇CSDN博客,我比较喜欢把笔记都记录在Word上,然后保存好;但是对于一些学习中遇到的错误,一些不管大小的坑,还是试着分享出来,也方便以后自己查看==运行新版的tf2.0或者tf2.1出现这个错误:Blas GEMM launch failed : a.shape=(300, 1), b.shape=(1, 10), m=300, n=10, k=1经过查找相关资料和自己试验,发现这...原创 2020-02-12 09:52:36 · 3979 阅读 · 7 评论 -
tensorflow2.x学习笔记二:将keras项目移植到tensorflow2.x下需要注意的问题
基础知识看的差不多的了,所以最近开始玩一些有趣的项目。因为现在tensorflow已经作为keras的后端,将其集成了过来,API是在tf.keras下面,所以keras的项目也可以直接拿来用为了方便移植,我们一般都是直接从import导入模块的地方对代码进行微调,这样下面的代码基本上不用修改。本来想着直接在keras前面加上tensorflow就可以了,但是好像出了点问题,但至少我出了问题。我...原创 2020-02-20 12:12:58 · 1676 阅读 · 2 评论 -
tensorflow2.x学习笔记一:简述在Anaconda下安装tf2.1的步骤
首先在官网下载安装好Anaconda,目前tf2.1支持python3.5-3.7,所以应该下载所需版本安装CUDA传送门和CUDNN传送门,注意一定要和目前的tf2.1支持的版本匹配,比如CUDA10.1,cuDNNv7.6.5。具体安装过程,参考此处传送门在Anaconda中创建虚拟环境,在开始菜单中打开 Anaconda Prompt,然后在命令行输入conda create -n t...原创 2020-02-12 11:48:40 · 3209 阅读 · 0 评论