1.Functional API搭建神经网络模型
导库、导入数据集、读取并观察数据集、从sklearn中导入数据、数据预处理、归一化、数据切分等操作,与【深度学习(上)】的Sequential模型是一样的步骤,此处省略!
构建神经网络模型
定义模型的输出层:参数为:训练集的特征集除了第一维以外的数据
inputs = keras.layers.Input(shape=X_train.shape[1:])
第一个隐藏层,Dense是全连接层,300是该层的神经元数量,激活函数为‘relu’
hidden1 = keras.layers.Dense(300,activation='relu')(inputs)
第二个隐藏层,100是神经元数量,激活函数为‘relu’
hidden2 = keras.layers.Dense(100,activation='relu')(hidden1)
将输入层和隐藏层连接起来,使用concatenate方法
concat=keras.layers.concatenate([inputs,hidden2])
输出层,10个神经元,激活函数为softmax
output = keras.layers.Dense(10,activation='softmax')(concat)
定义整个模型,Model用于创建一个模型,用于训练和预测
model_fun_WideDeep = keras.models.Model(inputs=[inputs],outputs = [output])
输出基本信息
model_fun_WideDeep.summary()
运行结果:
训练模型
编译模型
model_fun_WideDeep.compile(loss='sparse_categorical_crossentropy',optimizer='sgd',metrics=['accuracy'])
训练模型过程
h=model_fun_WideDeep.fit(X_train,y_train,batch_size=32,epochs=20,validation_data=(X_valid,y_valid))
参数1、2:训练集特征和标签
参数3:每次梯度更新使用的样本数量
参数4:遍历训练集的次数
参数5:评估性能
数据预处理
X_train_A,X_train_B = X_train[:,:200],X_train[:,100:]
X_valid_A,X_valid_B = X_valid[:,:200],X_valid[:,100:]
1行:前200个特征赋值给 X_train_A;第101个到最后一个特征,这部分被赋值给 X_train_B
2行:同理1
定义一个神经网络模型
同9.2,划分验证集,然后进行构建模型
训练模型
h=model_fun_MulIn.fit((X_train_A,X_train_B),y_train,batch_size=32,epochs=20,validation_data=((X_valid_A,X_valid_B),y_valid))
最后一个参数:提供了验证数据集,用于在训练过程中的每个 epoch 结束时评估模型的性能
展示
pd.DataFrame(h.history)
以二维数组形式展示出来
运行结果19:
画图
运行结果:
2.SubClassing API 搭建神经网络模型
class Model_sub_fnn(keras.models.Model):
2.1 定义模型结构,隐藏层1、2,输出层,隐藏层的激活函数
def __init__(self,units_1 = 300,units_2 = 100,units_out = 10,activation='relu'):
2.2调用keras.models.Model函数,并初始化
super().__init__()
self.hidden1 = keras.layers.Dense(units_1,activation=activation)
self.hidden2 = keras.layers.Dense(units_2,activation=activation)
self.main_output = keras.layers.Dense(units_out,activation = 'softmax')
2.3 定义方法
def call(self,data):
2.4将输入数据传给隐藏层1
hidden1 = self.hidden1(data)
hidden2 = self.hidden2(hidden1)
main_output = self.main_output(hidden2)
return main_output #返回最终输出
2.5 创建实例
model_sub_fnn = Model_sub_fnn()
2.6 编译和训练模型 同上面
运行结果:
2.7 显示基本信息
运行结果:
运行结果:
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 深度学习(下)
发表评论 取消回复