深度学习(下)

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 显示基本信息

运行结果:
在这里插入图片描述
运行结果:
在这里插入图片描述

相关推荐

  1. Windows深度学习环境

    2024-06-11 23:46:03       11 阅读
  2. 最新ChatGPT支持的PyTorch机器学习深度学习

    2024-06-11 23:46:03       14 阅读
  3. 深度学习

    2024-06-11 23:46:03       31 阅读
  4. 深度学习????????

    2024-06-11 23:46:03       23 阅读

最近更新

  1. Vue小记——如何理解 $nextTick( ) ?

    2024-06-11 23:46:03       0 阅读
  2. IDM(Internet Download Manager)简介

    2024-06-11 23:46:03       0 阅读
  3. 深度神经网络是什么?

    2024-06-11 23:46:03       0 阅读
  4. 设计模式-组合模式Composite(结构型)

    2024-06-11 23:46:03       0 阅读
  5. 使用 Python进行自动备份文件

    2024-06-11 23:46:03       0 阅读
  6. React <> </>的用法

    2024-06-11 23:46:03       0 阅读
  7. 《Vue3 基础知识》Pinia 02 之 项目中从 Vuex 转 Pinia

    2024-06-11 23:46:03       0 阅读
  8. 前端面试题——React篇

    2024-06-11 23:46:03       0 阅读
  9. 【Windchill高级查询感悟笔记】

    2024-06-11 23:46:03       0 阅读

热门阅读

  1. c,c++,go语言字符串的演进

    2024-06-11 23:46:03       3 阅读
  2. Web前端GIS入门:从基础到实践的全方位探索

    2024-06-11 23:46:03       3 阅读
  3. LLVM Cpu0 新后端6

    2024-06-11 23:46:03       3 阅读
  4. 大模型开发Semantic Kernel 简介

    2024-06-11 23:46:03       3 阅读
  5. Spring Boot开发宝典!超实用50个注解一网打尽

    2024-06-11 23:46:03       4 阅读
  6. 求职力扣刷题DAY20--二叉树 part06

    2024-06-11 23:46:03       4 阅读
  7. Dubbo动态服务下线

    2024-06-11 23:46:03       4 阅读
  8. threading.Lock()互斥锁

    2024-06-11 23:46:03       3 阅读
  9. 内连接和外连接

    2024-06-11 23:46:03       3 阅读
  10. RapidJosn

    RapidJosn

    2024-06-11 23:46:03      4 阅读
  11. C# —— 显示转换

    2024-06-11 23:46:03       3 阅读