TF2-归一化

2023-12-02 00:40
文章标签 归一化 tf2

本文主要是介绍TF2-归一化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

# 归一化:
# 1:把数据变成(0,1)或者(1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。
# 2:把有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权。
#   归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

归一化算法有:
1、线性变换
y=(x-MinValue)/(MaxValue-MinValue)
2、对数函数转换
y = log10(x)
3、反余切函数转换
y = atan(x)*2/PI

import tensorflow as tf
from tensorflow import keras
import matplotlib as mpl
from matplotlib import pyplot as plt
%matplotlib inline
import sklearn
import numpy as np
import pandas as pd
import os
import sys
import time
#Get data:
fashion_mnist = keras.datasets.fashion_mnist                             #download the mnist data
(x_train_all,y_train_all),(x_test,y_test) = fashion_mnist.load_data()    #split data to train and test
x_valid ,x_train = x_train_all[:5000],x_train_all[5000:]                 #splot train data to train and valid
y_valid ,y_train = y_train_all[:5000],y_train_all[5000:]                 #splot train data to train and valid
print(x_valid.shape,y_valid.shape)
print(x_train.shape,y_train.shape)
print(x_test.shape,y_test.shape)
(5000, 28, 28) (5000,)
(55000, 28, 28) (55000,)
(10000, 28, 28) (10000,)
print(np.max(x_train),np.min(x_train))
255 0
#Normalization或StandarScaler(归一化)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()#归一化训练集,归一化输入的是float类型的二维数据,所以先转化为二维数据,得到结果之后在把shape换回来
x_train_scaled = scaler.fit_transform(         x_train.astype(np.float32).reshape(-1,1)
).reshape(-1,28,28)
#归一化验证集
x_valid_scaled = scaler.transform(x_valid.astype(np.float32).reshape(-1,1)
).reshape(-1,28,28)
#归一化测试集
x_test_scaled = scaler.transform(x_test.astype(np.float32).reshape(-1,1)
).reshape(-1,28,28)
print(np.max(x_train_scaled),np.min(x_train_scaled))
2.0231433 -0.8105136
# Tf.keras.Sequential (bulit model)
model = keras.models.Sequential()
model.add(keras.layers.Flatten(input_shape = (28,28)))
model.add(keras.layers.Dense(300,activation = "relu"))
model.add(keras.layers.Dense(100,activation = "relu"))
model.add(keras.layers.Dense(10,activation = "softmax"))#relu : y = max(x,0)
#softmax : change vertor to probability distributions#why sparse: y-> index  ,y ->one hot->[](vector)
model.compile(loss = "sparse_categorical_crossentropy",optimizer = "sgd",metrics = ["accuracy"])
#Train
history = model.fit(x_train_scaled,y_train,epochs=10,validation_data=(x_valid_scaled,y_valid))
Train on 55000 samples, validate on 5000 samples
Epoch 1/10
55000/55000 [==============================] - 4s 80us/sample - loss: 0.9240 - accuracy: 0.6899 - val_loss: 0.6467 - val_accuracy: 0.7802
Epoch 2/10
55000/55000 [==============================] - 3s 63us/sample - loss: 0.5935 - accuracy: 0.7941 - val_loss: 0.5394 - val_accuracy: 0.8146
Epoch 3/10
55000/55000 [==============================] - 3s 64us/sample - loss: 0.5202 - accuracy: 0.8170 - val_loss: 0.4891 - val_accuracy: 0.8310
Epoch 4/10
55000/55000 [==============================] - 3s 63us/sample - loss: 0.4811 - accuracy: 0.8304 - val_loss: 0.4669 - val_accuracy: 0.8382
Epoch 5/10
55000/55000 [==============================] - 4s 64us/sample - loss: 0.4558 - accuracy: 0.8385 - val_loss: 0.4417 - val_accuracy: 0.8486
Epoch 6/10
55000/55000 [==============================] - 4s 64us/sample - loss: 0.4375 - accuracy: 0.8444 - val_loss: 0.4285 - val_accuracy: 0.8546
Epoch 7/10
55000/55000 [==============================] - 4s 64us/sample - loss: 0.4234 - accuracy: 0.8501 - val_loss: 0.4178 - val_accuracy: 0.8556
Epoch 8/10
55000/55000 [==============================] - 4s 64us/sample - loss: 0.4116 - accuracy: 0.8540 - val_loss: 0.4094 - val_accuracy: 0.8576
Epoch 9/10
55000/55000 [==============================] - 4s 65us/sample - loss: 0.4018 - accuracy: 0.8578 - val_loss: 0.4007 - val_accuracy: 0.8614
Epoch 10/10
55000/55000 [==============================] - 4s 64us/sample - loss: 0.3931 - accuracy: 0.8609 - val_loss: 0.3955 - val_accuracy: 0.8598
# Show learn result
def plot_learning_curves(history):pd.DataFrame(history.history).plot(figsize = (8,5))plt.grid(True)plt.gca().set_ylim(0,1)plt.show()
plot_learning_curves(history)

在这里插入图片描述

# test
model.evaluate(x_test_scaled,y_test)
10000/10000 [==============================] - 0s 40us/sample - loss: 0.4323 - accuracy: 0.8447[0.4322594210624695, 0.8447]

这篇关于TF2-归一化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/443310

相关文章

【数据分享】2000—2023年我国省市县三级逐月归一化植被指数(NDVI)数据(Shp/Excel格式)

之前我们分享过2000—2023年逐月归一化植被指数(NDVI)栅格数据(可查看之前的文章获悉详情),该数据来源于NASA定期发布的MOD13A3数据集!很多小伙伴拿到数据后反馈栅格数据不太方便使用,问我们能不能把数据处理为更方便使用的Shp和Excel格式的数据! 我们特地对数值在-0.2—1之间的NDVI栅格数据进行了处理,将2000-2023年逐月的归一化植被指数栅格分别按照我国省级行政边

深度学习速通系列:归一化和批量归一化

在深度学习中,归一化和批量归一化是两种常用的技术,它们有助于提高模型的训练效率和性能。下面详细解释这两种技术: 归一化(Normalization) 归一化是指将数据的数值范围调整到一个特定的区间,通常是[0, 1]或者[-1, 1],或者使其具有零均值和单位方差。这样做的目的是减少不同特征之间的数值范围差异,使得模型训练更加稳定和高效。 常见的归一化方法包括: 最小-最大归一化(Min

【无标题】【Datawhale X 李宏毅苹果书 AI夏令营】批量归一化

1、批量归一化的作用 批量归一化(Batch Normalization,BN)的把误差曲面变得平滑,使训练能够得到快速收敛; 训练过程的优化:使用自适应学习率等比较进阶的优化训练方法; 训练对象的优化:批量归一化可以改变误差表面,让误差表面比较不崎岖 参数 w i w_i wi​是指训练参数或者训练的目标 1.1 特征归一化 当输入的特征,每一个维度的值,它的范围差距很大的时候,我们就可能

Datawhale X 李宏毅苹果书 AI夏令营 进阶 Task3-批量归一化+卷积神经网络

目录 1.批量归一化1.1 考虑深度学习1.2 测试时的批量归一化1.3 内部协变量偏移 2.卷积神经网络2.1 观察 1:检测模式不需要整张图像2.2 简化 1:感受野2.3 观察 2:同样的模式可能会出现在图像的不同区域2.4 简化 2:共享参数2.5 简化 1 和 2 的总结2.6 观察 3:下采样不影响模式检测2.7 简化 3:汇聚2.8 卷积神经网络的应用:下围棋 1.

Pytorch中不同的Norm归一化详细讲解

在做项目或者看论文时,总是能看到Norm这个关键的Layer,但是不同的Norm Layer具有不同的作用,准备好接招了吗?(本文结论全部根据pytorch官方文档得出,请放心食用) 一. LayerNorm LayerNorm的公示如下: y = x − E [ x ] Var ⁡ [ x ] + ϵ ∗ γ + β y=\frac{x-\mathrm{E}[x]}{\sqrt{\op

波导模式分析-归一化截止波数

归一化截止波数是指波导或传输线中的截止波数相对特定参考波数的归一化值。通常在波导分析中,它通过与自由空间波数的比值来表示。你可以根据给定的截止频率来计算归一化截止波数。 截止波数: 对于某一传播模式(如TE、TM模式),波导中的截止波数与截止频率之间的关系是: 其中: 是波导中的截止波数是波导中的截止频率是相应模式下的相速度 相速度: 相速度(Phase Velocity)是在波动

CV-CNN-2015:GoogleNet-V2【首次提出Batch Norm方法:每次先对input数据进行归一化,再送入下层神经网络输入层(解决了协方差偏移问题)】【小的卷积核代替掉大的卷积核】

GoogLeNet凭借其优秀的表现,得到了很多研究人员的学习和使用,因此GoogLeNet团队又对其进行了进一步地发掘改进,产生了升级版本的GoogLeNet。 GoogLeNet设计的初衷就是要又准又快,而如果只是单纯的堆叠网络虽然可以提高准确率,但是会导致计算效率有明显的下降,所以如何在不增加过多计算量的同时提高网络的表达能力就成为了一个问题。 Inception V2版本的解决方案就是修

GEE案例——基于光谱混合分析(SMA)的归一化差异水分指数(NDWFI)的水体监测

简介 本研究旨在开发一种新型水指数,以提高利用卫星图像感知和监测 SW 的能力,同时避开大量取样和复杂建模等劳动密集型技术,从而改进大规模 SW 测绘。 具体目标如下 (a) 引入一种新的水体指数,该指数的明确设计目的是改进对次要水体和易变水体的提取,使其非常适合于大规模、长期的水体分布图绘制;(b) 调查该新指数在阐明水体动态时空模式方面的可行性,从而推进对跨时空水体分布变化的理解;(c) 通

【机器学习】【数据预处理】数据的规范化,归一化,标准化,正则化

数据的规范化,归一化,标准化,正则化,这几个破词整得我头晕,首先这些词就没规范好,对数据做实验更晕,网上狂搜一阵后,发现数据归一化,标准化,正则化,还是有差别 数据规范化    一种是针对数据库的解释    规范化理论把关系应满足的规范要求分为几级,满足最低要求的一级叫做第一范式(1NF),在第一范式的基础上提出了第二范式(2NF),在第二范式的基础上又提出了第三范式(3NF),以后又提出

Layer Normalization(层归一化)里的可学习的参数

参考pyttorch官方文档: LayerNorm — PyTorch 2.4 documentation 在深度学习模型中,层归一化(Layer Normalization, 简称LN)是一种常用的技术,用于稳定和加速神经网络的训练。层归一化通过对单个样本内的所有激活进行归一化,使得训练过程更加稳定。 关于层归一化是否可训练,其实层归一化中确实包含可训练的参数。具体来说,层归一化会对激活值