1
2
3
4
5
6
7
8
9
10
11
12
13
14
title: Linux系统上常用软件集锦
date: 2020-07-20 00:00:00
updated: 2022-01-05 00:00:00
tags: [Linux,四大组件,Activity]
type: [Linux,四大组件,Activity]
comments: Activity的生命周期完全解析
description: Activity的生命周期完全解析
keywords: Activity的生命周期完全解析
top_img:
mathjax:
katex:
aside:
aplayer:
highlight_shrink:

[TOC]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 我们在所有的是训练集、验证集、测试集的数据,再增加一个归一化的数据

print("数据归一化之前:",np.max(x_train),np.min(x_train))

# x = (x - u) / std
# 均值:所有样本数据的平均值
# 方差:方差是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。
# 概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。
# 统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。
# 上面是归一化的逻辑。上面 x 减去均值 除以方差。就得到了归一化的目的。

# 下面是实现方法:
# 我们从sklearn执行器里面导入StandardScaler
from sklearn.preprocessing import StandardScaler
# 进行StandardScaler(标准缩放器)的实例化
scaler = StandardScaler()
# x_train:[None,28,28] -> [None,784]

# 针对训练集进行归一化
# fit_transform将其转成归一化之后的矩阵。先转成二维的矩阵,然后再转成三维矩阵
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))

# TODO 为什么做数据归一化之后。模型的效果会好很多??
# 稳定
# 波动变小

测试一下训练的模型

1
2
# 我们在测试集合上来进行测试一下我们的模型。
model.evaluate(x_test_scaled,y_test)

归一化的目的