• Python深度学习实战-基于class类搭建BP神经网络实现分类任务(附源码和实现效果)


    一、实现功能

            上篇文章介绍了用Squential搭建BP神经网络,Squential可以搭建出上层输出就是下层输入的顺序神经网络结构,无法搭出一些带有跳连的非顺序网络结构,这个时候我们可以选择类class搭建封装神经网络结构。

    1. 第一步:import tensorflow as tf:导入模块

    2. 第二步:制定输入网络的训练集和测试集

    3. 第三步:搭建网络结构

    4. 第四步:model.compile():配置训练方法

    5. 第五步:model.fit():执行训练过程

    6. 第六步:model.summary():打印网络结构

    二、实现代码

    1. import tensorflow as tf
    2. from sklearn.datasets import load_iris
    3. from sklearn.model_selection import train_test_split
    4. from sklearn.preprocessing import StandardScaler
    5. class NeuralNetwork(tf.keras.Model):
    6. def __init__(self, input_size, hidden_size, output_size):
    7. super(NeuralNetwork, self).__init__()
    8. self.dense1 = tf.keras.layers.Dense(hidden_size, activation='relu')
    9. self.dense2 = tf.keras.layers.Dense(hidden_size, activation='relu')
    10. self.dense3 = tf.keras.layers.Dense(output_size, activation='softmax')
    11. def call(self, inputs):
    12. x = self.dense1(inputs)
    13. x = self.dense2(x)
    14. x = self.dense3(x)
    15. return x
    16. # 加载鸢尾花数据集
    17. iris = load_iris()
    18. X = iris.data
    19. y = iris.target
    20. # 数据预处理
    21. scaler = StandardScaler()
    22. X = scaler.fit_transform(X)
    23. # 划分训练集和测试集
    24. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    25. # 创建模型实例
    26. input_size = X.shape[1]
    27. hidden_size = 64
    28. output_size = len(set(y))
    29. model = NeuralNetwork(input_size, hidden_size, output_size)
    30. # 编译模型
    31. model.compile(optimizer='adam',
    32. loss='sparse_categorical_crossentropy',
    33. metrics=['accuracy'])
    34. # 训练模型
    35. model.fit(X_train, y_train, epochs=10, batch_size=32)
    36. model.summary()
    37. # 评估模型
    38. test_loss, test_accuracy = model.evaluate(X_test, y_test)

    三、实现效果

    作者简介:

    本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据挖掘相关科研工作,对数据挖掘有一定认知和理解,会结合自身科研实践经历不定期分享关于python、机器学习、深度学习基础知识与案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。关注V订阅号:数据杂坛,即可在后台联系我获取相关数据集和源码,送有关数据分析、数据挖掘、机器学习、深度学习相关的电子书籍。

  • 相关阅读:
    Spring HandlerInterceptor工作机制
    Power BI依据列中值的范围不同计算公式增加一列
    关于 SAP UI5 SimpleForm 控件里的 ColumnsL 和 labelSpanXL 的测试
    【Verilog基础】【计算机体系架构】一文搞懂 Cache 缓存(cache line、标记Tag、组号/行号index,块内地址offset)
    信用卡使用雷区大揭秘:为何你贷款被拒?
    C++ 变量的声明和初始化方式
    罗德与施瓦茨与中关村泛联院合作开展6G技术研究与早期验证
    10Linux 进程管理学习笔记
    Python如何向C指针传递数据
    Aspectj基础原理解析
  • 原文地址:https://blog.csdn.net/sinat_41858359/article/details/134032833