一、使用Sequential方式
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
# 绘图
import seaborn as sns
import pandas as pd
from keras import Sequential
from keras.layers import Dense,Activation
# 数值计算
import numpy as np
# sklearn中的相关⼯具
# 划分训练集和测试集
from sklearn.model_selection import train_test_split
# 逻辑回归
from sklearn.linear_model import LogisticRegressionCV
# tf.keras中使⽤的相关⼯具
# ⽤于模型搭建
import tensorflow as tf
#from tensorflow.keras import Sequential
# 构建模型的层和激活⽅法
#from tensorflow.keras.layers import Dense, Activation
# 数据处理的辅助⼯具
from sklearn.datasets import load_iris
dic = load_iris()
#print(dic)
# dict['key_name'] 访问字典的一对键值对
feature = pd.DataFrame(dic['data'], columns=['sepal_length (cm)',
'sepal_width (cm)',
'petal_length (cm)',
'petal_width (cm)'])
target = pd.DataFrame(dic['target'], columns=['species'])
# 在上述代码块的尾部添加
iris = pd.concat([feature, target], axis = 1)
sns.pairplot(iris,hue="species")
#plt.show()
#iris.head()
X=iris.values[:,:4]
y=iris.values[:,4]
# 将数据集划分为训练集和测试集
train_X, test_X, train_y, test_y = train_test_split(X,y,
test_size=0.5,
random_state=0)
train_y_one=pd.get_dummies(train_y)
test_y_one=pd.get_dummies(test_y)
#print(train_y_one)
model=Sequential([
Dense(10, activation="relu", input_shape=(4,)),
# 隐藏层2,激活函数是relu
Dense(10, activation="relu"),
# 输出层
Dense(3,activation="softmax")
])
#model.summary()
#print(tf.__version__)
model.compile(optimizer="adam",
loss="categorical_crossentropy",
metrics=["accuracy"])
model.fit(train_X,train_y_one,epochs=1000,batch_size=5,verbose=1)
通过function API构建
#function API构建神经网络
import tensorflow as tf
from keras.layers import Input, Dense
from keras.models import Model
import keras
inputs = Input(shape=(3,))
#第一隐藏层
x = Dense(3,activation='relu',name='layer1')(inputs)
#第二隐藏层
x = Dense(2,activation='relu',name='layer2')(x)
#输出层
outputs=Dense(2,activation='sigmoid',name='layer3')(x)
#创建模型
model = Model(inputs=inputs,outputs = outputs)
model.summary()#展示模型结果
keras.utils.plot_model(model,show_shapes=True)