tensorflow中使用batchnormalization(代码片段)

pclover11 pclover11     2022-11-10     517

关键词:

在深度学习中为了提高训练速度,经常会使用一些正正则化方法,如L2、dropout,后来Sergey Ioffe 等人提出Batch Normalization方法,可以防止数据分布的变化,影响神经网络需要重新学习分布带来的影响,会降低学习速率,训练时间等问题。提出使用batch normalization方法,使输入数据分布规律保持一致。实验证明可以提升训练速度,提高识别精度。下面讲解一下在Tensorflow中如何使用Batch Normalization

有关Batch Normalization详细内容请查看论文:

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

 

关键函数

tf.layers.batch_normalization、tf.contrib.layers.batch_norm

这两个函数用法一致,以 tf.layers.batch_normalization 为例进行讲解

layer1_conv = tf.layers.batch_normalization(layer1_conv,axis=0,training=in_training)

其中 axis 参数表示沿着哪个轴进行正则化,一般而言Tensor是[batch, width_x, width_y, channel],如果是[width_x, width_y, channel,batch]则axis应该设为3

 

1 在训练阶段

训练的时候需要注意两点,(1)输入参数training=True,(2)计算loss时,要添加以下代码(即添加update_ops到最后的train_op中)。这样才能计算μ和σ的滑动平均(测试时会用到)

 update_op = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
  with tf.control_dependencies(update_op):
    train_op = optimizer.minimize(loss)

 

2 在测试阶段

测试时需要注意一点,输入参数training=False,

 

如何在 pytorch 和 tensorflow 中使用张量核心?

】如何在pytorch和tensorflow中使用张量核心?【英文标题】:Howtousetensorcoresinpytorchandtensorflow?【发布时间】:2021-12-2823:30:01【问题描述】:我正在使用带有张量核心的NvidiaRTXGPU,我想确保pytorch/tensorflow正在使用它的张量核心。我在... 查看详情

在 cmake 中使用预编译的 tensorflow

】在cmake中使用预编译的tensorflow【英文标题】:usepre-compiledtensorflowwithcmake【发布时间】:2016-06-2812:58:04【问题描述】:我在CLion中建立了一个使用CMake的c++项目。我正在使用各种第3方库,并且还想集成Tensorflow。我已经尝试bazel将... 查看详情

在 Tensorflow 函数中使用 @ 符号

】在Tensorflow函数中使用@符号【英文标题】:Using@signinTensorflowfunctions【发布时间】:2021-05-1318:02:08【问题描述】:我在Tensorflow教程中看到,他们通常在写“tf.functionenterlinkdescriptionhere”之前放一个“@”符号为什么需要这样做?... 查看详情

在 Tensorflow 中使用 BigQueryReader 读取数据

】在Tensorflow中使用BigQueryReader读取数据【英文标题】:readingdatawithBigQueryReaderinTensorflow【发布时间】:2017-08-2111:18:35【问题描述】:我尝试使用来自Tensorflow的BigQueryReader,但我没有成功读取数据。这是我的代码:importtensorflowastffr... 查看详情

如何让 Tensorflow Profiler 在 Tensorflow 2.5 中使用“tensorflow-macos”和“tensorflow-metal”工作

】如何让TensorflowProfiler在Tensorflow2.5中使用“tensorflow-macos”和“tensorflow-metal”工作【英文标题】:HowdoIgettheTensorflowProfilerworkinginTensorflow2.5with\'tensorflow-macos\'and\'tensorflow-metal\'【发布时间】:2021-10-0213:47:38【问题描述】:我正在运 查看详情

使用tensorflow识别照片中的物体

1.环境ubuntu14.04.5安装TensorFlow官方文档:https://www.tensorflow.org/install/install_linuxsudopipinstall--upgradehttps://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp27-none-linux_x86_64.whl 查看详情

在 Keras 中使用 TensorFlow 层

】在Keras中使用TensorFlow层【英文标题】:UsingTensorflowLayersinKeras【发布时间】:2017-12-1223:21:45【问题描述】:我一直在尝试使用池化层tf.nn.fractional_max_pool在Keras中构建顺序模型。我知道我可以尝试在Keras中制作自己的自定义图层,... 查看详情

如何使用 c++ 在 tensorflow 中保存模型

】如何使用c++在tensorflow中保存模型【英文标题】:Howtosaveamodelintensorflowbyusingc++【发布时间】:2017-11-1909:55:45【问题描述】:如何使用c++在Tensorflow中保存模型?我在谷歌和百度上搜索过,但没有找到任何解决方案。然后我看了ten... 查看详情

使用 CPU 的“Keras 后端 + Tensorflow”和“来自 Tensorflow 的 Keras”有啥区别(在 Tensorflow 2.x 中)

】使用CPU的“Keras后端+Tensorflow”和“来自Tensorflow的Keras”有啥区别(在Tensorflow2.x中)【英文标题】:Whatisdifferencebetween"Kerasbackend+Tensorflow"and"KerasfromTensorflow"usingCPU(inTensorflow2.x)使用CPU的“Keras后端+Tensorflow”和 查看详情

如何在 TensorFlow 中使用批量标准化?

】如何在TensorFlow中使用批量标准化?【英文标题】:HowcouldIusebatchnormalizationinTensorFlow?【发布时间】:2016-03-0104:58:36【问题描述】:我想在TensorFlow中使用批量标准化。我在core/ops/nn_ops.cc中找到了相关的C++源代码。但是,我没有在... 查看详情

如何让 Keras 在 Anaconda 中使用 Tensorflow 后端?

】如何让Keras在Anaconda中使用Tensorflow后端?【英文标题】:HowtomakeKerasuseTensorflowbackendinAnaconda?【发布时间】:2017-09-0518:01:14【问题描述】:我已经在我的Anaconda环境中安装了tensorflow-gpu。他们都运作良好。现在我正在尝试使用Tensor... 查看详情

使用 GPU 无法在 tensorflow 教程中运行词嵌入示例

】使用GPU无法在tensorflow教程中运行词嵌入示例【英文标题】:FailtorunwordembeddingexampleintensorflowtutorialwithGPUs【发布时间】:2016-02-1023:30:53【问题描述】:我正在尝试在https://github.com/tensorflow/tensorflow/tree/master/tensorflow/g3doc/tutorials/wor... 查看详情

如何使用 tensorflow 在 C++ 中训练模型?

】如何使用tensorflow在C++中训练模型?【英文标题】:HowtotrainamodelinC++withtensorflow?【发布时间】:2016-05-2704:25:05【问题描述】:我尝试用深度学习模型训练一个实验。我发现tensorflow是最好的方法。但是存在需要用python编写tensorflow... 查看详情

如何在 C++ 中使用 TensorFlow Estimator?

】如何在C++中使用TensorFlowEstimator?【英文标题】:HowtouseTensorFlowEstimatorfromC++?【发布时间】:2018-06-2416:39:22【问题描述】:我对TensorFlow很陌生,但我必须用C++实现一个TensorFlow模型。我假设我可以用Python定义一个模型(图)并将... 查看详情

如何使用 tensorflow 在 keras 中禁用 GPU?

】如何使用tensorflow在keras中禁用GPU?【英文标题】:HowtodisableGPUinkeraswithtensorflow?【发布时间】:2017-08-2114:05:05【问题描述】:我想比较使用和不使用gpu的代码的处理时间。我的keras后端是Tensorflow。所以它会自动使用GPU。我使用ke... 查看详情

无法在 Tensorflow 中使用序列模型

】无法在Tensorflow中使用序列模型【英文标题】:Can\'tuseSequentialModelinTensorflow【发布时间】:2022-01-1200:20:13【问题描述】:这是代码:defpoint_wise_feed_forward_network(d_model,dff):returntf.keras.Sequential([tf.keras.layers.Dense(dff,activation=\'relu\ 查看详情

如何使用 tensorflow 从 CNN 层中提取激活?

】如何使用tensorflow从CNN层中提取激活?【英文标题】:HowtoextractactivationfromCNNlayersusingtensorflow?【发布时间】:2018-11-2409:53:23【问题描述】:我想从全连接层中提取神经激活。在Caffe我是这样做的net.blobs[layer_name].data我如何在tensorf... 查看详情

在 windows 中使用 anaconda 安装 tensorflow

】在windows中使用anaconda安装tensorflow【英文标题】:Installingtensorflowwithanacondainwindows【发布时间】:2016-09-0422:58:22【问题描述】:我已经在Windows64位上安装了Anaconda。我已经下载了PyCharm用于创建项目,并在PyCharm的终端中使用以下... 查看详情