tensorflow的安装:在本地的python 环境里 pip install -i https://pypi.douban.com/simple 安装成功后通过pip freeze 查看 tensor 的版本,2.0版本后集成了keras环境。
或者使用google的colab环境:在线tensor
使用方法参考博文:https://blog.csdn.net/weixin_44720401/article/details/106796787
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
# 手写数字 mnist, cifar10
from tensorflow.keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 将二位数据转换成图片显示
plt.imshow(x_train[0].reshape(28, 28), cmap='gray')
# 对数据做处理
x_train = x_train.reshape(-1, 784) / 255.0
x_test = x_test.reshape(-1, 784) / 255.0
# 或者使用提供的函数对x_train, x_test做标准化处理
scaler = StandardScaler()
x_train_scaled = scaler.fit_transform(x_train)
x_test_scaled = scaler.transform(x_test)
y_train = y_train.astype(np.float32)
y_test = y_test.astype(np.float32)
# tf.one_hot()
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)
from tensorflow.keras.layers import Dense
# 定义神经网络.
model = tf.keras.Sequential()
# 如果在这里展平数据
model.add(Flatten(input_shanpe=(28, 28))
# 正则化可以在每一层加入,一般用l2效果好,l1会使一些神经元失效。
model.add(Dense(64, activation='relu', kernel_regularizer='l1_l2', input_shape=(784, )))
# model.add(Dense(64, activation='relu', input_dim=784))
model.add(Dense(64, activation='relu'))
# 输出层的激活, 二分类是sigmoid, 多分类的话是softmax
model.add(Dense(10, activation='softmax'))
# 配置网络
# 如果非one_hot编码,loss='sprase_categorical_crossentropy'
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 训练网络
model.fit(x_train, y_train, batch_size=64, epochs=20, validation_data=(x_test, y_test), )
# 查看网络参数量
model.summary()
model.evaluate(x_test, y_test)
# 保存模型 HDF5 分层的数据结构.
model.save('./model.h5')
# 加载
model2 = tf.keras.models.load_model('./model.h5')
model2.evaluate(x_test, y_test)
激活函数使用relu的优点:
https://zhuanlan.zhihu.com/p/428448728#%E4%B8%80%E3%80%81%E4%BB%80%E4%B9%88%E6%98%AF%E6%BF%80%E6%B4%BB%E5%8
详细keras使用方法:keras 中文手册 https://keras.io/zh/optimizers/#adam