Kears构建简单的二分类网络
目标:二分类
网络:DNN
损失:二元交叉熵
代码:
import numpy as np import tensorflow as tf from sklearn.datasets import make_blobs from matplotlib import pyplot as plt from sklearn.preprocessing import MinMaxScaler X, y = make_blobs(n_samples=100, centers=2, n_features=2, random_state=1) Xa = [] Xb = [] for i in range(0, len(X)): Xa.append(X[i][0]) Xb.append(X[i][1]) plt.scatter(Xa, Xb, marker='o', c='', edgecolors='g') scalar = MinMaxScaler() scalar.fit(X) X = scalar.transform(X) input1 = tf.keras.layers.Input(shape=(2,)) dense1 = tf.keras.layers.Dense(units=10, activation='relu')(input1) output = tf.keras.layers.Dense(units=1, activation='sigmoid')(dense1) model = tf.keras.models.Model(inputs=input1, outputs=output) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, epochs=500, verbose=0, batch_size=10) Xnew = np.array([[0.89337759, 0.65864154]]) ynew = model.predict(Xnew) print(ynew)
注:对于二分类,在模型预测时,直接给出的是label为1的prob值
时刻记着自己要成为什么样的人!