1.深度神经网络DNN
指多个全连接层进行连接而形成的网络,层数太多不一定性能会更优,反而会下降,这是因为
- 层数太多,参数太多
- 导致了梯度消失
2.批归一化BatchNormalization
- 缓解梯度消失
3.新的激活函数selu
- 训练时间更短
- 训练性能更高
4.Dropout防止过拟合
一般在全连接层的最后几层进行使用
- Dropout
- AlphaDropout:性能更优:
- 均值和方差不变
- 归一化性质不变
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
import tensorflow as tf
from tensorflow import keras
# 输出库的名字和版本
print(sys.version_info)
for module in tf, mpl, np, pd, sklearn, tf, keras:
print(module.__name__, module.__version__)
# 指定GPU
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = '1'
config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.compat.v1.Session(config=config)
# 导入数据集 fashion_mnist
fashion_mnist = keras