keras BatchNormalization 之坑】的更多相关文章

任务简述:最近做一个图像分类的任务, 一开始拿vgg跑一个baseline,输出看起来很正常: 随后,我尝试其他的一些经典的模型架构,比如resnet50, xception,但训练输出显示明显异常: val_loss 一直乱蹦,val_acc基本不发生变化. 检查了输入数据没发现问题,因此怀疑是网络构造有问题, 对比了vgg同xception, resnet在使用layer上的异同,认为问题可能出在BN层上,将vgg添加了BN层之后再训练果然翻车. 翻看keras BN 的源码, 原来kera…
win10下利用anaconda安装tensorflow和keras的教程都大同小异(针对CPU版本,我的gpu是1050TI的MAX-Q,不知为啥一直没安装成功),下面简单说下步骤. 一 Anaconda安装一般来说,python选择3.6的,目前虽然python到了3.7了,但是还不够稳定,所以选择python3.6的Anaconda3-5.2.0-Windows-x86_64版本,安装的时候把添加路径的选项一起选上就ok了,其他的一直next就行. 二 安装库打开Anaconda prom…
自定义tf.keras.Model需要注意的点 model.save() subclass Model 是不能直接save的,save成.h5,但是能够save_weights,或者save_format="tf" NotImplementedError: Saving the model to HDF5 format requires the model to be a Functional model or a Sequential model. It does not work…
经过网上查找,找到了问题所在:在使用keras编程模式是,中间插入了tf.reshape()方法便遇到此问题. 解决办法:对于遇到相同问题的任何人,可以使用keras的Lambda层来包装张量流操作,这是我所做的: embed1 = keras.layers.Embedding(, )(inputs) # embed = keras.layers.Reshape(-,, , )(embed1) # embed = tf.reshape(embed1, [-, , , ]) def reshape…
关于Keras的“层”(Layer) 所有的Keras层对象都有如下方法: layer.get_weights():返回层的权重(numpy array) layer.set_weights(weights):从numpy array中将权重加载到该层中,要求numpy array的形状与* layer.get_weights()的形状相同 layer.get_config():返回当前层配置信息的字典,层也可以借由配置信息重构: Input(shape=None,batch_shape=Non…
零.参考资料 有关FPN的介绍见『计算机视觉』FPN特征金字塔网络. 网络构架部分代码见Mask_RCNN/mrcnn/model.py中class MaskRCNN的build方法的"inference"分支. 1.Keras调用GPU设置 [*]指定GPU import os os.environ["CUDA_VISIBLE_DEVICES"] = "2" [**]按需分配 import tensorflow as tf import ker…
Mask_RCNN-2.0 网页链接:https://github.com/matterport/Mask_RCNN/releases/tag/v2.0 Mask_RCNN-master(matterport / Mask_RCNN)网页链接:https://github.com/matterport/Mask_RCNN 操作步骤 本文假设运行环境满足基本需求:Python = 3.6.8, tensorflow-gpu = 1.12.0, keras = 2.0.8, matplotlib =…
安装 Anaconda3 关键的一步: conda update pip 下面再去安装各种你需要的包,一般不会再报错. pip install -U tensorflow pip install -U keras GPU 版的 TensorFlow 的安装推荐使用 conda install tensorflow-gpu 避免出现各种 Bug. 如果需要安装 theano,则需要先安装它的依赖包,即 conda install mingw libpython pip install -U the…
Reshape 对于的张量x,x.shape=(a, b, c, d)的情况 若调用keras.layer.Reshape(target_shape=(-1, c, d)), 处理后的张量形状为(?, ?, c, d) 若调用tf.reshape(x, shape=[-1, c, d]) 处理后的张量形状为(a*b, c, d) 为了在keras代码中实现tf.reshape的效果,用lambda层做, 调用Lambda(lambda x: tf.reshape(x, shape=[-1, c,…
最近在搞Keras,训练完的模型要提供个预测服务出来.就想了个办法,通过Flask提供一个http服务,后来发现也能正常跑,但是每次预测都需要加载模型,效率非常低. 然后就把模型加载到全局,每次要用的时候去拿来用就行了,可是每次去拿的时候,都会报错. 如: ValueError: Tensor Tensor(**************) is not an element of this graph. 这个问题就是在你做预测的时候,他加载的图,不是你第一次初始化模型时候的图,所以图里面没有模型…