Keras
mjiansun
Live and Learn.
展开
-
DropConnect与Dropout区别
训练神经网络过程中,过拟合常常出现为了避免出现过拟合Hinton提出使用Dropout层来减少过拟合Dropout就是将某些神经网络的隐层单元的输出设置为0从而反向传播的时候不会进行参数的更新现在很多机器学习框架已经帮我们实现好了Dropout层了我们只需传入保留率,这是一个数值在0-1的超参数就可以实现DropoutDropConnect而DropConnect它丢弃掉的是神经元与神经元之间的连接,可能这个神经元与那个神经元连接被丢弃,但它依旧是有之前计算出来的输出的下面我们转载 2021-05-19 10:59:32 · 669 阅读 · 0 评论 -
AttributeError: ‘Model‘ object has no attribute ‘metrics_tensors‘
keras 本地版本过高,三种解决办法,任选其一:1、降低本地版本到2.2.5以下,当然要高于2.0.82、修改代码,将self.keras_model.metrics_tensors.append(loss)改成self.keras_model.add_metric(loss, name)或改为(我用的这种)self.keras_model.metrics.append(loss)3、初始化self.keras_model.metrics_tensors =转载 2020-10-14 13:58:46 · 2276 阅读 · 0 评论 -
keras和Tensorflow同时加载多个模型,以及与keras模型混用
Tensorflow同时加载使用多个模型(keras同理,只要是tf的后端)Tensorflow,所有操作对象都包装在相应的session中,所以想要使用不同的模型就要将这些模型加载到不同session中,并且声明使用的时候申请是哪个session,从而避免由于session和想使用的模型不匹配导致错误,而使用多个graph就需要为每个graph使用不同的session,但是每个graph也可以在多个session中使用,这个时候就需要在每个session中使用的时候明确使用的graph。g1 =转载 2020-08-07 11:00:04 · 1585 阅读 · 6 评论 -
【keras】读取模型进行测试的方式
from keras.preprocessing import imageimport numpy as npfrom keras.models import load_modelimport osfrom keras.applications.resnet50 import preprocess_inputfrom shutil import copyfilefrom keras....转载 2020-04-17 13:45:52 · 1756 阅读 · 0 评论 -
【Keras】自动分配显存,不占用所有显存
自动分配显存,不占用所有显存import keras.backend.tensorflow_backend as KTFimport tensorflow as tfimport osos.environ["CUDA_VISIBLE_DEVICES"] = "1"config = tf.ConfigProto()config.gpu_options.allow_growth=T...原创 2019-12-26 16:41:12 · 2048 阅读 · 0 评论 -
【Keras】可视化神经网络特征
图从别人那截取的。。。https://github.com/keplr-io/quiver原创 2019-12-17 15:18:21 · 195 阅读 · 0 评论 -
【Keras】Sequential
目录开始使用 Keras Sequential 顺序模型指定输入数据的尺寸模型编译模型训练样例类似 VGG 的卷积神经网络开始使用 Keras Sequential 顺序模型顺序模型是多个网络层的线性堆叠。你可以通过将网络层实例的列表传递给Sequential的构造器,来创建一个Sequential模型:from keras.models impo...转载 2019-11-15 13:17:04 · 219 阅读 · 1 评论 -
【Keras】多GPU训练和模型保存
multi_gpu_modelkeras.utils.multi_gpu_model(model, gpus=None, cpu_merge=True, cpu_relocation=False)将模型复制到不同的 GPU 上。具体来说,该功能实现了单机多 GPU 数据并行性。 它的工作原理如下:将模型的输入分成多个子批次。 在每个子批次上应用模型副本。 每个模型副本都在专用...转载 2019-11-14 15:01:00 · 1826 阅读 · 0 评论 -
【Keras】训练的流程
目录这里以Sequential为例声明堆叠模型compile配置学习状态训练迭代模型评估模型预测(这步是不需要compile那步操作的)这里以Sequential为例声明Sequential模型如下所示:from keras.models import Sequentialmodel = Sequential()堆叠模型可以简单地使用...转载 2019-11-14 14:42:40 · 750 阅读 · 0 评论 -
【Keras】Model 类(函数式 API)
目录Model 类(函数式 API)Model 类模型方法compilefitevaluatepredicttrain_on_batchtest_on_batchpredict_on_batchfit_generatorevaluate_generatorpredict_generatorget_layerModel 类(函数式 API)...转载 2019-11-14 14:37:26 · 7833 阅读 · 0 评论 -
【Keras】keras model.compile(loss='目标函数 ', optimizer='adam', metrics=['accuracy'])
讲解了各种losshttps://www.cnblogs.com/smuxiaolei/p/8662177.html转载 2019-11-14 13:40:18 · 5940 阅读 · 5 评论 -
【Keras】compile理解
你需要一个编译的模型来训练(因为训练使用损失函数和优化器)。但是没有必要编译模型进行预测。另外再次加载时模型时,你紧跟着就是一个compile是不会对加载过的模型进行随机初始化,仅仅是改变了模型的优化状态而已。再次编译的后果:如果再次编译模型,则将丢失优化程序状态。这意味着你的训练在开始时会受到一点点影响,直到它调整学习速度,动力等等。但是对于重量绝对没有损害(当然,除非你的初始学习率...转载 2019-11-14 13:38:23 · 3857 阅读 · 1 评论 -
【Keras】创建训练和测试模型的思路
还在整理中 ====================(1)使用一个标志位,假设为mode,然后在读取数据的时候判断,在构建模型的时候判断。就如https://github.com/matterport/Mask_RCNN代码中写的。(2)直接使用keras的Model(),包起来,但是还是需要重新构建测试模型。emmm,这种我再想想他是怎么操作的。https://github.com/Ol...原创 2019-11-13 23:49:54 · 570 阅读 · 0 评论 -
【Keras】Callbacks
回调函数使用回调函数是一个函数的合集,会在训练的阶段中所使用。你可以使用回调函数来查看训练模型的内在状态和统计。你可以传递一个列表的回调函数(作为callbacks关键字参数)到Sequential或Model类型的.fit()方法。在训练时,相应的回调函数的方法就会被在各自的阶段被调用。Callbackkeras.callbacks.Callback()用来组...转载 2019-11-13 23:02:09 · 695 阅读 · 0 评论 -
【Keras】数据自动生成器,继承keras.utils.Sequence
#coding=utf-8'''Created on 2018-7-10'''import kerasimport mathimport osimport cv2import numpy as npfrom keras.models import Sequentialfrom keras.layers import Denseclass DataGenerator(k...转载 2019-11-13 17:34:26 · 1067 阅读 · 0 评论 -
【MaskRCNN】源码系列六:train的Loss
==========================正在整理中 ================== # Losses rpn_class_loss = KL.Lambda(lambda x: rpn_class_loss_graph(*x), name="rpn_class_loss")( [input_rpn_...原创 2019-10-23 15:40:04 · 481 阅读 · 1 评论 -
【MaskRCNN】源码系列五:train的MASK
mrcnn_mask = build_fpn_mask_graph(rois, mrcnn_feature_maps, input_image_meta, config.MASK_POOL_...原创 2019-10-23 15:01:54 · 1107 阅读 · 0 评论 -
【MaskRCNN】源码系列四:train的RCNN
目录DetectionTargetLayerdetection_targets_graph去0操作trim_zeros_graph处理特别拥挤的实例计算overlaps候选正负ROIS抽选部分正负ROIS参与训练确定参与训练ROIs所对应的标签计算训练正样本与gt_box之间的偏移值为训练ROIS分配掩膜规范输出的形状fpn_classifie...原创 2019-10-21 15:33:13 · 877 阅读 · 1 评论 -
【Tensorflow】tf.image.non_max_suppression()
在吴恩达老师深度学习yolo算法实现自动驾驶的编程题中出现了这个函数,这个函数的功能是在检测算法中我们的一个目标被检测了多次,如何排除掉多余的边界框。比如下面的图,来自于编程题中的图片,下面的这个车被多次检测到,存在多个边界框,保留概率最大的那个,去除掉与这个概率最大的边界框的IoU大于一个阙值的其余边界框。这个过程就成为非最大值抑制=NMS函数原型:tf.image.non_max...转载 2019-10-21 14:56:00 · 1586 阅读 · 0 评论 -
【keras】获取中间层的输出
1.使用函数模型API,新建一个model,将输入和输出定义为原来的model的输入和想要的那一层的输出,然后重新进行predict.#coding=utf-8import seaborn as sbnimport pylab as pltimport theanofrom keras.models import Sequentialfrom keras.layers impor...转载 2019-10-18 17:14:25 · 1059 阅读 · 0 评论 -
Keras vs PyTorch
Keras vs PyTorch:debug 和内省Keras 封装了大量计算模块,这使得确定导致问题的代码较为困难。相比起来,PyTorch 更加详细,我们可以逐行执行脚本。和 debug NumPy 类似,我们可以轻松访问代码中的所有对象,使用 print 语句(或任何标准 Python debug 语句)查看有问题的代码。Keras 用户创建的标准网络要比 PyTorch 用户创...转载 2019-10-17 15:37:15 · 1349 阅读 · 0 评论 -
【MaskRCNN】源码系列三:train&test的RPN
目录预设anchorsget_anchorRPN模型build_rpn_modelProposalLayerbatch_sliceapply_box_deltas_graphclip_boxes_graphNMS我们简单做个总结预设anchorsRPN定义在mrcnn/model.py的MaskRCNN()类中的build函数中。 ...原创 2019-10-14 14:52:55 · 663 阅读 · 0 评论 -
【MaskRCNN】源码系列二:train&test特征图
目录Stage1Stage2(C2)conv_blockidentity_blockStage3(C3)Stage4(C4)Stage5(C5)P5P4P3P2最终的P2、P3、P4、P5、P6RPN和MRCNN使用特征图特征图:是指通过CNN提取,被后续的RPN,RCNN使用的特征图。要求输入图像必须是64的倍数,具体原因请看下面的介绍。...原创 2019-10-12 16:53:27 · 1025 阅读 · 0 评论 -
在 Windows 下安装 COCO API(pycocotools)
本内容将介绍在 Windows 下安装 COCO API(pycocotools)。 本来 COCO 对 Windows 是不支持的。不过为了支持 Windows ,有人对 COCO 做了一些修改。下面是 COCO 在 GitHub 上源码地址信息: COCO 地址: https://github.com/cocodataset/cocoapi 支持 Windows 的 COC...转载 2019-08-01 09:49:49 · 3273 阅读 · 2 评论 -
keras slice layer 层 实现
注意的地方: keras中每层的输入输出的tensor是张量, 比如Tensor shape是(N, H, W, C), 对于tf后台, channels_lastDefine a slice layer using Lamda layerdef slice(x, h1, h2, w1, w2): """ Define a tensor slice function ""...转载 2019-07-11 11:03:37 · 512 阅读 · 0 评论 -
keras多显卡训练
完整实例'''Trains a simple deep NN on the MNIST dataset.Gets to 98.40% test accuracy after 20 epochs(there is *a lot* of margin for parameter tuning).2 seconds per epoch on a K520 GPU.''' from __...转载 2018-12-26 10:35:05 · 879 阅读 · 1 评论 -
keras 提高 GPU利用率
用H5py + 自定义Generator + 调batch size https://github.com/fchollet/keras/issues/1627https://github.com/fchollet/keras/issues/2674https://github.com/fchollet/keras/issues/2708https://github.com/f...转载 2018-08-16 13:57:01 · 5247 阅读 · 0 评论 -
Keras指定使用GPU
亲测有用CUDA_VISIBLE_DEVICES=1 python train.py转载 2017-08-23 19:30:44 · 4115 阅读 · 2 评论 -
keras tensorboard的使用, 设置GPU使用的内存, 强制只使用cpu
强制只使用cpu: import osos.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # see issue #152os.environ["CUDA_VISIBLE_DEVICES"] = ""keras2.0版本已经添加了一些贡献者的新建议,用keras调用tensorboard对训练过程进行跟踪观察非常方便了。直接上例转载 2017-08-23 19:16:51 · 900 阅读 · 0 评论 -
Keras设定GPU使用内存大小(Tensorflow backend)
通过设置Keras的Tensorflow后端的全局变量达到。import osimport tensorflow as tfimport keras.backend.tensorflow_backend as KTFdef get_session(gpu_fraction=0.3): '''Assume that you have 6GB of GPU memory and w转载 2017-08-23 19:13:40 · 1901 阅读 · 0 评论 -
Keras以及Tensorflow强制使用CPU,GPU
Keras如果是使用Theano后端的话,应该是自动不使用GPU只是用CPU的,启动GPU使用Theano内部命令即可。 对于Tensorflow后端的Keras以及Tensorflow会自动使用可见的GPU,而我需要其必须只运行在CPU上。网上查到三种方法,最后一种方法对我有用,但也对三种都做如下记录:使用tensorflow的 with tf.device('/cpu:0'):函数。简单...转载 2017-08-23 19:12:31 · 41226 阅读 · 1 评论 -
keras可视化pydot graphviz问题
http://www.jianshu.com/p/f3a0b2ca0ca8如果已经安装了graphviz和pydot,那么就先卸载pydot,所以接下来正确的安装顺序是graphviz->grapphviz软件本身->pydot,这样运行就没有问题啦sudo pip install graphvizsudo apt-get install graphvizsu...转载 2017-07-04 21:35:16 · 1534 阅读 · 0 评论 -
【Keras】keras.layer.input()
Input(shape=None, batch_shape=None, name=None, dtype=None, sparse=False, tensor=None)shape参数和batch_shape参数只能使用其中一个。shape参数:会自动在最前面补充一个维度,比如a = Input(shape=[3,None]),那么此时a的具体形状...转载 2019-09-05 15:59:03 · 1328 阅读 · 0 评论 -
【MaskRCNN】源码系列一:train数据处理三
目录data_generator(接着数据处理二,data_generator中还有一部分没讲)build_rpn_targetsdata_generator(接着数据处理二,data_generator中还有一部分没讲)build_rpn_targets rpn_match, rpn_bbox = build_rpn_targets(image.sha...原创 2019-10-11 17:17:52 · 762 阅读 · 2 评论 -
【MaskRCNN】源码系列一:train数据处理二
目录data_generator(最关键部分)generate_pyramid_anchorgenerate_anchorsload_image_gtdata_generator(最关键部分)上面这段代码只关注数据处理部分,也就是当中的data_generator函数,这里我只介绍train_generator是如何生成的。def data_generator(da...原创 2019-10-11 14:47:52 · 1792 阅读 · 0 评论 -
【MaskRCNN】源码系列一:train数据处理一
目录coco数据数据读取代码句句解读data_generator(最关键部分)coco数据首先我处理的是coco数据集,coco数据集具体的文件夹路径和方式为:有人 文件夹中没有annotations,只有annotations_trainval2014,那只需要将annotations_trainval2014改为annotations。在这个annota...原创 2019-10-08 14:08:56 · 1692 阅读 · 0 评论 -
【MaskRCNN】训练自己的数据集
该版本为tensorflow+keras版本的https://github.com/matterport/Mask_RCNN。本代码实现了一张图片的多个人体检测及分割。一、环境cuda版本:9.0https://developer.nvidia.com/cuda-90-download-archivecudnn版本:7.1具体是哪个版本我忘了,验证的话,可以在安装te...原创 2019-09-23 16:55:50 · 2976 阅读 · 2 评论 -
【MaskRCNN】使用训练好的模型进行测试
环境请参考博客https://blog.csdn.net/u013066730/article/details/101209325代码下面的test.py位于Mask_RCNN\samples\test.pyimport osimport sysimport randomimport mathimport numpy as npimport skimage.ioimp...原创 2019-09-23 17:08:35 · 2186 阅读 · 2 评论 -
UserWarning: Matplotlib is currently using agg,which is a non-GUI backend, so cannot show the figure
在跑 mask-rcnn 代码的时候,遇到了 plt 无法显示图像的问题。经一番排查,发现发生在coco.py文件将 “Agg” 改为 “TkAgg”,问题解决import matplotlib; matplotlib.use('TkAgg')...转载 2019-09-11 18:43:30 · 463 阅读 · 0 评论 -
【Keras】TimeDistributed的理解和用法
之前一直在看one-stage目标定位的算法,主要是速度快。今天无聊就看下mask-rcnn的源码,了解下主要结构和训练过程。看网络图中发现了使用TimeDistributed层,平常自己没有用过这样的层,所以看官方文档和其他人的博客,发现有的博客理解的并不太正确,所以还是简单介绍下吧。只是个人理解,如有问题欢迎指出。TimeDistributed顾名思义就是使用时间序列来进行一系列张...转载 2019-09-11 15:12:31 · 2881 阅读 · 1 评论