文章目录
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
%matplotlib
1 tf.keras
import tensorflow as tf
tf.__version__ # 2.2.0版本
1.1 tf.keras 实现线性回归
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
data = pd.read_csv('dataset/income.csv')
sns.lmplot(x='Education', y='Income', data=data)
x = data.Education
y = data.Income
model = tf.keras.Sequential()
model.add(
tf.keras.layers.Dense(1, input_shape=(1,))
)
model.summary()
model.compile(optimizer='adam', loss='mse')
model.fit(x, y, epochs=500)
1.2 多层神经网络——回归
from sklearn.datasets import load_boston
import pandas as pd
boston = load_boston()
data = pd.DataFrame(boston.data, columns=boston.feature_names)
data['PRICE'] = boston.target
x = data.iloc[:, :-1]
y = data.iloc[:, -1]
model = tf.keras.Sequential([
tf.keras.layers.Dense(10, input_shape=(13,), activation='relu'),
tf.keras.layers.Dense(1)
])
model.summary()
model.compile(optimizer='adam', loss='mse')
model.fit(x, y, epochs=1000)
1.3 多层神经网络——二分类
from sklearn.datasets import load_breast_cancer
breast_cancer = load_breast_cancer()
data = pd.DataFrame(breast_cancer.data, columns=breast_cancer.feature_names)
data['label'] = breast_cancer.target
X = data.iloc[:, :-1]
y = data.iloc[:,-1]
y.value_counts()
model = tf.keras.Sequential([
tf.keras.layers.Dense(10, input_shape=(30,), activation='relu'),
tf.keras.layers.Dense(10, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.summary()
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
history = model.fit(X, y, epochs=100)
history.history.keys() # >> dict_keys(['loss', 'accuracy'])
import matplotlib.pyplot as plt
plt.plot(history.history.get('loss'))
# plt.plot(history.history.get('accuracy'))
1.4 多层神经网络——多分类
# fashion_mnist数据集
fashion_mnist = tf.keras.datasets.fashion_mnist.load_data()
(X_train, y_train), (X_test, y_test) = fashion_mnist
X_train.shape, y_train.shape
# 查看随机10个样本图片