keras大法
文章平均质量分 66
keras相关
CVer儿
开源让世界更美好
展开
-
Keras fit_generator中customized generator和steps_per_epoch
fit_generator教程太多,这里只专注于steps_per_epoch。先看个官方的例子def generate_arrays_from_file(path): while True: with open(path) as f: for line in f: # create numpy arrays of input data # and labels, from each line in the file转载 2021-06-08 09:40:47 · 294 阅读 · 0 评论 -
用PyTorch重新创建Keras API
Francois Chollet写的《Deep Learning with Python》一书让我进入了深度学习的世界。从那时起我就爱上了Keras的风格。Keras是我的第一个框架,然后是Tensorflow,接着进入PyTorch。老实说,在Keras的模型训练中,我很兴奋这个进度条,真是太棒了。那么,为什么不尝试把Keras训练模型的经验带到PyTorch呢?这个问题让我开始了工作,最后我用所有那些花哨的进度条重现了Keras的Dense层、卷积层和平坦层。模型可以通过堆叠一层转载 2020-10-20 01:45:49 · 305 阅读 · 0 评论 -
keras的CNN的一些可视化方法
作者丨yishun@知乎(已授权)来源丨https://zhuanlan.zhihu.com/p/53683453极市导读对神经网络进行可视化分析不管是在学习上还是实际应用上都有很重要的意义,基于此,本文介绍了3种CNN的可视化方法:可视化中间特征图,可视化卷积核,可视化图像中类激活的热力图。每种方法均附有相关代码详解。>>加入极市CV技术交流群,走在计算机视觉的最前沿注:本文所有资料均来自Keras之父、Google人工智能研究员Francois Chollet的大作:《Pyt转载 2021-05-12 15:45:52 · 520 阅读 · 0 评论 -
Keras 高阶API
Keras API目前为止,介绍的神经网络模型都是通过Sequential模型来实现的。Sequential模型假设神经网络模型只有一个输入一个输出,而且模型的网络层是线性堆叠在一起的。这是一个经过验证的假设;配置非常普遍,到目前为止已经能够使用Sequential模型类覆盖许多任务和实际应用程序。但在许多情况下,这套假设过于僵化。一些网络模型需要几个独立的输入,其他需要多个输出,并且一些网络在层之间具有内部分支,使得它们看起来像层的图形而不是线性堆叠层。例如,某些任务需要多模式输入:它们合并来自转载 2021-05-12 14:03:30 · 299 阅读 · 0 评论 -
Keras 神经网络模型的多输出 loss weight metrics 设置
keras支持模型多输入多输出,本文记录多输出时loss、loss weight和metrics的设置方式。模型输出假设模型具有多个输出classify: 二维数组,分类softmax输出,需要配置交叉熵损失 segmentation:与输入同尺寸map,sigmoid输出,需要配置二分类损失 others:自定义其他输出,需要自定义损失具体配置model变量均为模型中网络层 123 inputs = [input_1 , input.转载 2021-04-11 14:48:21 · 2178 阅读 · 0 评论 -
Keras 分割网络自定义评估函数 - mean iou
Keras训练网络过程中需要实时观察性能,mean iou不是keras自带的评估函数,tf的又觉得不好用,自己写了一个,经过测试没有问题,本文记录自定义keras mean iou评估的实现方法。计算 IoU用numpy计算的,作为IoU的ground truth用作测试使用: 123456 def iou_numpy(y_true,y_pred): intersection = np.sum(np.multiply(y_t.转载 2021-04-11 14:45:27 · 901 阅读 · 0 评论 -
使用OpenCV+Keras实现torch的compose自定义预处理函数封装和数据拓展嵌入
理解问题在处理计算机视觉问题时,我们经常遇到需要对整个数据集应用某种形式的转换的情况。Keras中的ImageDataGenerator类提供了各种转换,如翻转、规格化等。然而,应用在Keras中不可用的自定义转换变得非常困难。在我们的特定示例中,我们将对我们的数据集应用去噪算法作为预处理转换。一种简单的方法是对数据集中的所有图像应用去噪函数,并将处理后的图像保存在另一个目录中。然而,这同时消耗了我们的时间和空间。另一种方法是使用preprocessing_function属性动态地执行这个转换转载 2021-04-09 11:43:33 · 481 阅读 · 0 评论 -
keras和torch实现ECANet通道注意力
his is an implementation of ECA-Net(CVPR2020,paper), created by Banggu Wu.https://github.com/BangguWu/ECANethttps://github.com/devenin/ECANet-kerasimport mathfrom keras.layers import *from keras.layers import Activationfrom keras.layers import Gl原创 2021-04-04 22:49:07 · 2668 阅读 · 12 评论 -
keras构建mobilenetv2网络
源码:https://github.com/xiaochus/MobileNetV2/blob/master/mobilenet_v2.py"""MobileNet v2 models for Keras.# Reference- [Inverted Residuals and Linear Bottlenecks Mobile Networks for Classification, Detection and Segmentation] (https://arxiv.org/ab.原创 2021-03-01 17:41:47 · 1095 阅读 · 0 评论 -
生成网络的边缘检测Edge_gan总结
最近刚好在做分割,顺手玩玩用GAN做边缘检测. 本意是想在BSDS轮廓分割数据集上做,同时验证针对样本极不平衡的损失函数挑选问题,简单做个小结整体结构为CGAN,由于训练数据太少,使用了预训练的VGG16作为baseline. BSDS训练集只有200张图像,因此使用canny算子生成了3万张边缘图像.使用标准二值交叉熵损失作为生成器损失函数. 训练30轮.结果如下:实验使用的训练集图像均为室内房屋图像,未出现人. 结果而言,网络具有较强的泛化能力.实验之初,考虑到BSDS训练集太少,因转载 2021-02-06 23:08:23 · 1277 阅读 · 0 评论 -
Keras数据增强并保存到本地
当需要对指定文件夹下的图片进行数据增广时,使用keras的ImageDataGenerator类的flow_from_directory()方法可快速的实现1.首先实例化ImageDataGenerator对象以自己想要的属性 img_datagen = keras.preprocessing.image.ImageDataGenerator(featurewise_center=False, samplew转载 2021-02-06 22:56:42 · 891 阅读 · 0 评论 -
Keras多标签分类实现与训练
简谈多分类与多标签分类简单的说,输入一张图片进行分类: * 这张图片里面的物体(通常认为只有一个物体)属于某一个类,各个类别之间的概率是竞争关系,取最高概率标签为物体的类别。所以,多分类最后的激活为softmax函数。 * 实际情况下,一个图片只能有一个物体未免太限制了,能不能一次性判断出图片里面多个物体,比如既有人又有车,网络输出含有每个物体的概率,其概率是非竞争的,这就是多标签分类。数据准备我自己做的是一个8标签的分类,当然了一张图片里面最多也就同时包含4个左右的物体数据目录如下:按..转载 2021-02-06 22:54:07 · 919 阅读 · 3 评论 -
Keras数据集加载小结
对于keras加载训练数据,官方上没有详说。然而网上查各种资料,写法太多,通过自己跑代码测试总结以下几条,方便自己以后使用。总的来说keras模型加载数据主要有三种方式:.fit(), .fit_generator()和.train_on_batch()。1.fit():上函数,各个参数的意义就不解释了fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0,转载 2021-02-06 22:52:03 · 1519 阅读 · 2 评论 -
Keras 入门课网络可视化及训练监控
本系列课程代码,欢迎star:https://github.com/tsycnh/Keras-Tutorials本节专注于Keras中神经网络的可视化,包括网络结构可视化以及如何使用TensorBoard来监控训练过程。这里我们借用第2课的代码内容来进行示例和讲解。网络前面的定义、数据初始化都一样,主要是fit函数启用TensorBoard在model的fit函数中加入TensorBoard的回调函数即可,训练数据就会自动保存在log_dir指定的目录内,然后在命令行启动命令 tensor转载 2021-02-01 16:40:21 · 303 阅读 · 0 评论 -
语义分割keras的dataloader实现
import numpy as npimport cv2import globimport itertoolsdef getImageArr( path , width , height , imgNorm="sub_mean" , odering='channels_first' ): try: img = cv2.imread(path, 1) if imgNorm == "sub_and_divide": img = np.float32(cv2.resize(im..转载 2021-01-09 18:44:42 · 471 阅读 · 0 评论 -
keras框架下神经网络训练中回调函数的实用教程
回调操作可以在训练的各个阶段执行,可能是在epoch之间,在处理一个batch之后,甚至在满足某个条件的情况下。回调可以利用许多创造性的方法来改进训练和性能,节省计算资源,并提供有关神经网络内部发生的事情的结论。本文将详细介绍重要回调的基本原理和代码,以及创建自定义回调的过程。ReduceLROnPlateau:ReduceLROnPlateau是Keras中默认包含的回调。神经网络的学习率决定了梯度的比例因子,因此过高的学习率会导致优化器超过最优值,而学习率过低则会导致训练时间过长。很难找到一转载 2020-09-02 16:33:08 · 621 阅读 · 0 评论 -
针对keras模型多输出或多损失方法使用
有些模型存在多个输出在计算loss的情况,其中比较典型的如hed边缘检测网络,该网络具体介绍可以看之前的博客;hed网络有多个输出,写法如下;实例一def hed(): # Input img_input = Input(shape=(480,480,3), name='input') # Block 1 x = Conv2D(64, (3, 3), activation='relu', padding='same', name='block1_conv1')(原创 2020-08-28 11:44:52 · 3219 阅读 · 0 评论 -
keras训练和加载自定义的损失函数
多分类语义分割损失函数:#多分类dicedef dice_coef_fun(smooth=0.001): def dice_coef(y_true, y_pred): #求得每个sample的每个类的dice intersection = K.sum(y_true * y_pred, axis=(1,2,3)) union = K.s...原创 2020-04-20 14:25:44 · 2669 阅读 · 4 评论 -
keras中正则项和drop_out的使用
dropoutDropout(0.5)使用dropout是要改善过拟合,将训练和测试的准确率差距变小训练集,测试集结果相比差距较大时,过拟合状态使用dropout后,每一周期准确率可能不高反而最后一步提升很快,这是训练的时候部分神经元工作,而最后的评估所有神经元工作正则化同样是改善过拟合作用import numpy as npfrom keras.datasets im...转载 2020-04-03 14:38:42 · 723 阅读 · 0 评论 -
kera中train_on_batch 自定义训练过程
train_on_batch 可以在keras中自定义精细化训练过程使用。使用示例:import osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'import numpy as npimport matplotlib.pyplot as pltfrom keras.models import Sequentialfrom keras.lay...转载 2020-03-22 18:42:18 · 3228 阅读 · 0 评论 -
keras使用笔记
记录keras一些知识点,有搬运注意:CNN每一层参数量计算----本层卷积核(3*3)* filters(本层滤波器数目) * n(上一层通道数) + b(本层滤波器数目)1. 创建一个回归的小网络不错链接:https://www.jianshu.com/p/122783a0c955# -*- coding: utf-8 -*-import numpy as np imp...原创 2020-02-16 23:15:33 · 272 阅读 · 0 评论 -
keras相关知识点整理资料
1. ModelCheckpointmodel_checkpoint = ModelCheckpoint('vnet_membrane.hdf5', monitor='val_loss',verbose=1, save_best_only=True,mode="min")参数 filename:字符串,保存模型的路径 monitor:需要监视的值 verbose...原创 2019-12-03 18:03:11 · 336 阅读 · 0 评论 -
keras相关知识点
1. model.history history字典类型,包含val_loss,val_acc,loss,acc四个key值 https://blog.csdn.net/nima1994/article/details/79947407 例子https://www.jianshu.com/p/45550d70c8e52.mode.fit和model.fit...原创 2019-10-24 09:14:10 · 224 阅读 · 0 评论 -
【keras实现各类经典网络与不错的小例子】
1.https://www.jianshu.com/p/6c6015d425f42.例子https://www.cnblogs.com/liuwenhua/p/11569615.html原创 2019-10-21 17:45:30 · 430 阅读 · 0 评论 -
keras单张预测与hdf5模型转化为.pb形式的脚本
单张预测:# 单张预测image = Image.open(r'0_predict.png')test = cv2.resize(np.array(image),(512,512))test = test.astype('float32')test=np.expand_dims(test,0)print(test.shape)# test = np.reshape(test...原创 2019-10-15 21:56:29 · 646 阅读 · 0 评论 -
keras的batch数据生成器使用ImageDataGenerator
官方封装的训练集batch生成器是ImageDataGenerator对象的flow方法(或flow_from_directory),该函数返回一个和python定义相似的generator。其实主要就是建立并使用dataGenerator生成器从一个图像列表或者文件夹中生成一个batch_size的数据流。keras中文文档解释链接:https://keras.io/zh/prepro...原创 2019-09-23 00:02:05 · 1803 阅读 · 0 评论 -
keras_unet学习博客
1. unet网络和fcn网络特征融合方式区别是:对于提取到的相同尺度空间的特征图,fcn是对应通道的像素相加;Unet是底维特征和高维特征通道相加,对应的特征图厚度增加,维度拼接融合,提取底维空间信息和高维语义信息;https://www.jianshu.com/p/0bb14fb7de622. Unet选用loos函数问题在医学图像中,经常是正样本(肿瘤区域等)出现频率小,且有时正样本...原创 2019-09-12 16:39:28 · 553 阅读 · 0 评论 -
keras文档
http://www.dataguru.cn/article-12365-1.htmlhttps://keras-cn.readthedocs.io/en/latest/getting_started/functional_API/keras经典网络:https://www.cnblogs.com/skyfsm/p/8451834.html原创 2019-09-11 23:47:50 · 247 阅读 · 0 评论