首页 > 编程语言 >*Python*机器学习算法——神经网络和深度学习

*Python*机器学习算法——神经网络和深度学习

时间:2024-09-10 14:25:05浏览次数:11  
标签:Dense sigmoid Python 学习 神经网络 train test import model

        神经网络和深度学习是现代机器学习的重要组成部分,它们在图像识别、语音识别、自然语言处理等多个领域取得了显著的成功。本文将详细介绍神经网络和深度学习的基本函数概念,并通过一个简单的例子来展示如何使用Python和Keras库构建一个神经网络模型。

1、前置库与数据导入

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D, Dropout, LSTM, GRU, Embedding
from tensorflow.keras.datasets import mnist
import numpy as np

# 加载MNIST数据集
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# 数据预处理
x_train, x_test = x_train / 255.0, x_test / 255.0  # 归一化到 [0, 1]

2、 激活函数
        激活函数用于引入非线性因素,使得神经网络能够学习复杂的非线性关系。常见的激活函数有ReLU、Sigmoid和Tanh。
        ReLU(Rectified Linear Unit)
                公式:

                                        $f(x) = \max(0, x)$
                优点:计算简单,梯度不会消失
                缺点:可能会导致“死神经元”现象

# 使用ReLU激活函数
model_relu = Sequential([
    Flatten(input_shape=(28, 28)),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')
])

model_relu.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model_relu.fit(x_train, y_train, epochs=5)
test_loss, test_acc = model_relu.evaluate(x_test, y_test)
print(f'Test accuracy (ReLU): {test_acc}')

        Sigmoid
                公式:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        $f(x) = \frac{1}{1 + e^{-x}}$
                优点:输出范围在0到1之间,适合概率预测
                缺点:梯度消失问题

# 使用Sigmoid激活函数
model_sigmoid = Sequential([
    Flatten(input_shape=(28, 28)),
    Dense(128, activation='sigmoid'),
    Dense(10, activation='softmax')
])

model_sigmoid.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model_sigmoid.fit(x_train, y_train, epochs=5)
test_loss, test_acc = model_sigmoid.evaluate(x_test, y_test)
print(f'Test accuracy (Sigmoid): {test_acc}')

        Tanh
                公式:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

标签:Dense,sigmoid,Python,学习,神经网络,train,test,import,model
From: https://blog.csdn.net/m0_57916248/article/details/142060926

相关文章

  • 基于Python django旅游网站系统【041】
    基于Pythondjango旅游网站系统【041】【开发工具】1.数据库:mysql2.开发工具:pycharm等python开发工具均可【技术简介】前端bootstrap样式数据存mysqldjango框架【功能说明】1.用户登录注册2.首页展示、热门推荐、猜你喜欢、景点介绍等等3.景点评论、打分、收藏4.旅......
  • 基于python Django音乐网站系统【042】
    基于pythonDjango音乐网站系统【042】【开发工具】1.数据库:mysql2.开发工具:pycharm等python开发工具均可【技术简介】前端bootstrap样式数据存mysqldjango框架【功能说明】1.用户登录2.首页展示、热门推荐、热门下载3.景点评论、打分、收藏4.歌曲详情、歌曲播放、......
  • 卷积神经网络(李沐老师课程)
    卷积神经网络(李沐老师课程)回顾MLP单层(上述列子需要14GBGPU)找寻图片上的人在哪里找寻图片上的人的两个基本原则从全连接层出发到卷积卷积层二维交叉相关二维卷积层案列交叉相关和卷积代码的实现importtorchfromtorchimportnnfromd2limportt......
  • Java学习 - 多线程第二部分
    1.线程池1.1线程状态介绍当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程状态被定义在了java.lang.Thread.State枚举类中,State枚举类的源码如下:publi......
  • Java学习 - 反射&动态代理
    马上就要把Java的基础部分更新完了,后面会更新一些别的内容,也会多学习一些别的东西提升一下自己。加油加油加油!1.反射1.1反射的概述:**专业的解释(了解一下):**是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意......
  • Java学习 - 网络编程
    1.网络编程入门1.1网络编程概述计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序......
  • Xshell 7 官方正版免费下载安装及使用(学校家庭版,满足正常学习工作)
    ​NetSarangComputer,Inc.以过去10年免费提供强大的SSH和SFTP/FTP客户端而自豪。我们的免费许可证不仅是免费的价格,而且没有广告或其他剥削用户的方式。我们认为,来自各种背景和环境的用户都应该能够访问功能强大、功能丰富的SSH和SFTP/FTP客户机。无论是学习、教学,还是仅......
  • Vue入门学习笔记-从入门到模版语法
    前言建议:建议学习HTML5+CSS3+JavaScript之后在学VueHTML和JavaScript需要着重学习,如果还学了jQuery更好Vue本身是基于JavaScript开发的框架,完全兼容JavaScript语法本学习笔记着重记录Vue语法和使用的相关特性,目的是为了后端开发人员快速上手Vue开发。 Vue和jQuery的区......
  • 分享一个基于python的电子书数据采集与可视化分析 hadoop电子书数据分析与推荐系统 sp
    ......
  • 如何通过Python获取一座城市的天气?
    Hello,大家好呀,今天给大家带来一期如何通过Python来获取城市的天气的教程。因为我们需要用到APIKey,所以我们需要注册一个天气服务提供商的官方网站账号这里以和风天气为例。首先,进入和风天气官网用户中心|和风天气(qweather.com)。点击免费注册,输入邮箱和密码。注册完......