TensorFlow 是一个由 Google 开发的开源深度学习框架,用于构建、训练和部署机器学习模型。它提供了丰富的工具和库,支持各种机器学习任务,包括神经网络、深度学习、强化学习等。
注意,TensorFlow是深度学习框架,作为一个框架,他提供了许多高级API,例如:
这些API可以为代码的编写带来极大地便利,其中最常用有keras,nn等。我这里主要介绍keras。
一、keras
keras为构建、训练和部署深度学习模型提供了简单且直观的接口。官方文档
通过这些接口,可以大大减少我们的工作量。
二、导入需要的包
import tensorflow as tf
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from keras import layers
from tensorflow.python import keras
from sklearn import preprocessing
三、数据准备
这里我随便用了一个数据集,是物联网设备的网络流量数据,根据情况选用自己的数据集即可。
use_data=pd.read_csv('danmini_traffic.csv' ,header = None)
features = np.array(use_data.iloc[:, range(0, use_data.shape[1] - 1)])
根据数据情况决定是否需要标准化
#input_features = preprocessing.StandardScaler().fit_transform(features)
labels = use_data.iloc[:, -1]
四、模型构建
model = tf.keras.Sequential(
[layers.Dense(32, activation='sigmoid'),
layers.Dense(32, activation='sigmoid'),
layers.Dense(32, activation='sigmoid'),
layers.Dense(1)]
)
这是最简单的网络结构,一共有四层网络。这里可以查看官方文档,选择需要的网络和激活函数等。
五、模型训练
#加载模型
model.compile(optimizer=tf.keras.optimizers.SGD(0.001),#
loss='mean_squared_error', # 损失函数
metrics=['mse'])
#开始训练
history = model.fit(features,labels,batch_size=50, epochs=50, validation_split=0.1, verbose=1)
训练结果:
可以看到,训练结果很不错。损失值较小,因为这里使用的是监督学习,所以准确率偏高, 训练集和测试集的损失值差别不大,说明没有出现过拟合或欠拟合的情况。
打印一下网络模型结构: