1.instanceNormalization在keras_contrib中,而keras_contrib不能以常规pip方式导入,而是

pip install git+https://www.github.com/keras-team/keras-contrib.git

但是这样还需要下载git工具,我先去官网下载,翻墙后下载速度还是接近10k的高速,然后我去github下载,然并卵,依旧慢,然后我发现腾讯的软件管家可以直接下,,,,和安装常规软件差不多。
ok,软件下好了,我发现我又不太想用了,,,,哈哈

2.然后我直接去github找到keras_contrib,把它下面的InstanceNormalization这个类直接ctrl c了下来放到我的代码里面,然后像BN一样使用即可。使用和地址如下:

o=InstanceNormalization()(input)
https://github.com/keras-team/keras-contrib/blob/master/keras_contrib/layers/normalization/instancenormalization.py
这个类如下:
from keras.layers import Layer, InputSpec
from keras import initializers, regularizers, constraints
from keras import backend as Kclass InstanceNormalization(Layer):"""Instance normalization layer.Normalize the activations of the previous layer at each step,i.e. applies a transformation that maintains the mean activationclose to 0 and the activation standard deviation close to 1.# Argumentsaxis: Integer, the axis that should be normalized(typically the features axis).For instance, after a `Conv2D` layer with`data_format="channels_first"`,set `axis=1` in `InstanceNormalization`.Setting `axis=None` will normalize all values in eachinstance of the batch.Axis 0 is the batch dimension. `axis` cannot be set to 0 to avoid errors.epsilon: Small float added to variance to avoid dividing by zero.center: If True, add offset of `beta` to normalized tensor.If False, `beta` is ignored.scale: If True, multiply by `gamma`.If False, `gamma` is not used.When the next layer is linear (also e.g. `nn.relu`),this can be disabled since the scalingwill be done by the next layer.beta_initializer: Initializer for the beta weight.gamma_initializer: Initializer for the gamma weight.beta_regularizer: Optional regularizer for the beta weight.gamma_regularizer: Optional regularizer for the gamma weight.beta_constraint: Optional constraint for the beta weight.gamma_constraint: Optional constraint for the gamma weight.# Input shapeArbitrary. Use the keyword argument `input_shape`(tuple of integers, does not include the samples axis)when using this layer as the first layer in a Sequential model.# Output shapeSame shape as input.# References- [Layer Normalization](https://arxiv.org/abs/1607.06450)- [Instance Normalization: The Missing Ingredient for Fast Stylization](https://arxiv.org/abs/1607.08022)"""def __init__(self,axis=None,epsilon=1e-3,center=True,scale=True,beta_initializer='zeros',gamma_initializer='ones',beta_regularizer=None,gamma_regularizer=None,beta_constraint=None,gamma_constraint=None,**kwargs):super(InstanceNormalization, self).__init__(**kwargs)self.supports_masking = Trueself.axis = axisself.epsilon = epsilonself.center = centerself.scale = scaleself.beta_initializer = initializers.get(beta_initializer)self.gamma_initializer = initializers.get(gamma_initializer)self.beta_regularizer = regularizers.get(beta_regularizer)self.gamma_regularizer = regularizers.get(gamma_regularizer)self.beta_constraint = constraints.get(beta_constraint)self.gamma_constraint = constraints.get(gamma_constraint)def build(self, input_shape):ndim = len(input_shape)if self.axis == 0:raise ValueError('Axis cannot be zero')if (self.axis is not None) and (ndim == 2):raise ValueError('Cannot specify axis for rank 1 tensor')self.input_spec = InputSpec(ndim=ndim)if self.axis is None:shape = (1,)else:shape = (input_shape[self.axis],)if self.scale:self.gamma = self.add_weight(shape=shape,name='gamma',initializer=self.gamma_initializer,regularizer=self.gamma_regularizer,constraint=self.gamma_constraint)else:self.gamma = Noneif self.center:self.beta = self.add_weight(shape=shape,name='beta',initializer=self.beta_initializer,regularizer=self.beta_regularizer,constraint=self.beta_constraint)else:self.beta = Noneself.built = Truedef call(self, inputs, training=None):input_shape = K.int_shape(inputs)reduction_axes = list(range(0, len(input_shape)))if self.axis is not None:del reduction_axes[self.axis]del reduction_axes[0]mean = K.mean(inputs, reduction_axes, keepdims=True)stddev = K.std(inputs, reduction_axes, keepdims=True) + self.epsilonnormed = (inputs - mean) / stddevbroadcast_shape = [1] * len(input_shape)if self.axis is not None:broadcast_shape[self.axis] = input_shape[self.axis]if self.scale:broadcast_gamma = K.reshape(self.gamma, broadcast_shape)normed = normed * broadcast_gammaif self.center:broadcast_beta = K.reshape(self.beta, broadcast_shape)normed = normed + broadcast_betareturn normeddef get_config(self):config = {'axis': self.axis,'epsilon': self.epsilon,'center': self.center,'scale': self.scale,'beta_initializer': initializers.serialize(self.beta_initializer),'gamma_initializer': initializers.serialize(self.gamma_initializer),'beta_regularizer': regularizers.serialize(self.beta_regularizer),'gamma_regularizer': regularizers.serialize(self.gamma_regularizer),'beta_constraint': constraints.serialize(self.beta_constraint),'gamma_constraint': constraints.serialize(self.gamma_constraint)}base_config = super(InstanceNormalization, self).get_config()return dict(list(base_config.items()) + list(config.items()))
3.其余类可以类似的使用

keras 的InstanceNormalization的使用相关推荐

  1. 【小白学PyTorch】扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization

    <<小白学PyTorch>> 扩展之Tensorflow2.0 | 21 Keras的API详解(上)卷积.激活.初始化.正则 扩展之Tensorflow2.0 | 20 TF ...

  2. TensorFlow 2 和 Keras 高级深度学习:6~10

    原文:Advanced Deep Learning with TensorFlow 2 and Keras 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文 ...

  3. Keras框架下的保存模型和加载模型

    在Keras框架下训练深度学习模型时,一般思路是在训练环境下训练出模型,然后拿训练好的模型(即保存模型相应信息的文件)到生产环境下去部署.在训练过程中我们可能会遇到以下情况: 需要运行很长时间的程序在 ...

  4. TensorFlow Keras API用法

    TensorFlow Keras API用法 Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,可以编译和拟 ...

  5. Keras神经网络集成技术

    Keras神经网络集成技术 create_keras_neuropod 将Keras模型打包为神经网络集成包.目前,上文已经支持TensorFlow后端. create_keras_neuropod( ...

  6. 常用深度学习框——Caffe/TensorFlow / Keras/ PyTorch/MXNet

    常用深度学习框--Caffe/TensorFlow / Keras/ PyTorch/MXNet 一.概述 近几年来,深度学习的研究和应用的热潮持续高涨,各种开源深度学习框架层出不穷,包括Tensor ...

  7. Keras运行速度越来越慢的问题

    Keras运行迭代一定代数以后,速度越来越慢,经检查是因为在循环迭代过程中增加了新的计算节点,导致计算节点越来越多,内存被占用完,速度变慢.判断是否在循环迭代过程中增加了新的计算节点,可以用下面的语句 ...

  8. Keras ImageDataGenerator用于数据扩充/增强的原理及方法

    摘要 在这篇博客中,您将学习如何使用Keras的ImageDataGenerator类执行数据扩充/增强.另外将介绍什么是数据增强,数据增强的类型,为什么使用数据增强以及它能做什么/不能做什么. 有三 ...

  9. Keras TensorFlow教程:使用自己的数据集进行训练

    大多数Keras教程都尝试使用图像分类数据集(如MNIST(手写识别)或基本对象CIFAR-10(基本对象识别))来开启Keras库的基础知识学习. 这篇文章将对Keras入门教程进行不同的尝试.使用 ...

最新文章

  1. Python使用matplotlib可视化散点图、并在可视化图像的底部和右边添加边缘直方图、自定义边缘直方图的色彩(Marginal Histogram)
  2. Unity Shader 2D水流效果
  3. PHP JSON文件解析并获取key、value,判断key是否存在
  4. 可逆矩阵的秩等于矩阵的阶数_矩阵论一些总结点
  5. 乐佰小迪智能机器人怎么使用_425台云洲智能水面救生机器人在山东寿光投入使用...
  6. 中国酸性蒸汽清洗系统市场趋势报告、技术动态创新及市场预测
  7. mysql 升级mariadb_mariadb升级
  8. 史上最全的Java进阶书籍推荐
  9. 绑定小程序数据助手,查看小程序的统计数据-微信小程序开发-视频教程22
  10. 2023第八届少儿模特明星盛典 福州赛区 初赛圆满收官
  11. linux的批处理文件怎么写,Linux下批处理文件编写
  12. 脱离鼠标后必须记住地快捷命令方式
  13. pycharm中安装pymysql
  14. 人工智能热潮_团结与增强现实热潮
  15. 解决 cannot connect to 192.168.1.136:5555: 由于目标计算机积极拒绝,无法连接。 (10061)
  16. 一文看懂:光学行业 三摄+潜望式+3D
  17. 魅族手机便签的备忘录内容误删了怎么办?
  18. Vmware16安装(详细)
  19. 云原生周报 | 百度开源千万级CPS压测软件 dperf;BFE Server v1.5.0 发布
  20. 2020年面试题总结

热门文章

  1. 第二章分析方法——5W2H分析方法、逻辑树分析方法、行业分析方法
  2. BMP位图图像文件—图像信息丰富,几乎不进行压缩
  3. C语言位图图像文件缩放(西电C程序作业3)
  4. mysql order 走索引么_mysq order by 不走索引问题
  5. 初次使用Cadence Pspice仿真功能详细教程
  6. SAS:大数据价值化是渐进的 虽有挑战但要乐观
  7. 《响应式web设计》读书笔记(一)入门
  8. 华为鸿蒙什么时候上线,果然,库克又杀回来了,华为鸿蒙一出来,iPhone就降价了...
  9. 空间转换案例-3D导航
  10. 云呐|公司固定资产如何管理,单位固定资产管理办法