python 神经网络教程,神经网络模型代码python,小白入门基础教程

文章目录

  • 前言
  • 1. 神经网络基础概念
    • 1.1 神经元
    • 1.2 激活函数
    • 1.3 神经网络结构
    • 1.4 安装 Python
    • 1.5 选择开发环境
    • 2. 使用numpy构建简单神经网络
  • 3. 使用PyTorch构建复杂神经网络


前言

本教程旨在为广大初学者和有一定基础的开发者提供一个系统、全面且深入的 Python 神经网络学习指南。无论你是对人工智能充满好奇的新手,还是希望在神经网络领域进一步提升技能的从业者,都能从本教程中找到适合自己的内容。
Python 作为一种功能强大、易于学习且应用广泛的编程语言,在神经网络领域中扮演着举足轻重的角色。它拥有丰富的科学计算和深度学习库,如 NumPy、PyTorch、TensorFlow 等,为开发者提供了便捷的工具和高效的开发环境。借助 Python,我们可以轻松地构建、训练和部署各种复杂的神经网络模型。


1. 神经网络基础概念

1.1 神经元

神经元是神经网络的基本单元,它接收多个输入,对输入进行加权求和,再通过一个激活函数处理后输出。

1.2 激活函数

激活函数为神经网络引入非线性因素,使网络能够学习复杂的模式。常见的激活函数有 Sigmoid、ReLU、Tanh 等。

1.3 神经网络结构

神经网络通常由输入层、隐藏层和输出层组成。隐藏层可以有多个,层数越多,网络越复杂,能学习的模式也越复杂。

1.4 安装 Python

访问 Python 官方网站,根据你的操作系统(Windows、Mac 或 Linux)下载并安装 Python 3.x 版本。安装时勾选 “Add Python to PATH”,方便在命令行中使用 Python。

Python 3.7安装教程:https://blog.csdn.net/u014164303/article/details/145620847
Python 3.9安装教程:https://blog.csdn.net/u014164303/article/details/145570561
Python 3.11安装教程:https://blog.csdn.net/u014164303/article/details/145549489

1.5 选择开发环境

下载 PyCharm 社区版(免费)或专业版(需付费或申请教育版)。安装完成后,打开 PyCharm,创建一个新的项目,在项目设置中选择之前创建的虚拟环境作为项目的 Python 解释器。PyCharm 功能强大,提供代码自动补全、调试等功能,适合开发大型项目。

Pycharm安装教程:https://blog.csdn.net/u014164303/article/details/145674773
PyCharm下载地址:https://pan.quark.cn/s/5756c8cf8b2a

2. 使用numpy构建简单神经网络

以下是一个使用numpy构建的简单两层神经网络示例,用于解决二分类问题。

import numpy as np# 定义激活函数及其导数
def sigmoid(x):return 1 / (1 + np.exp(-x))def sigmoid_derivative(x):return x * (1 - x)# 输入数据集
X = np.array([[0, 0, 1],[0, 1, 1],[1, 0, 1],[1, 1, 1]])# 输出数据集
y = np.array([[0], [1], [1], [0]])# 设置随机数种子以保证结果可复现
np.random.seed(1)# 初始化权重
syn0 = 2 * np.random.random((3, 4)) - 1
syn1 = 2 * np.random.random((4, 1)) - 1# 训练次数
for iter in range(60000):# 前向传播l0 = Xl1 = sigmoid(np.dot(l0, syn0))l2 = sigmoid(np.dot(l1, syn1))# 计算误差l2_error = y - l2# 根据误差调整权重l2_delta = l2_error * sigmoid_derivative(l2)l1_error = l2_delta.dot(syn1.T)l1_delta = l1_error * sigmoid_derivative(l1)syn1 += l1.T.dot(l2_delta)syn0 += l0.T.dot(l1_delta)print("Output After Training:")
print(l2)

3. 使用PyTorch构建复杂神经网络

PyTorch是一个广泛使用的深度学习框架,下面是一个使用PyTorch构建简单全连接神经网络进行手写数字识别的示例。
3.1 安装PyTorch
根据自己的系统和 CUDA 版本,从PyTorch 官方网站选择合适的安装命令进行安装。
3.2 代码示例

import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms
from torch.utils.data import DataLoader# 数据预处理
transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))
])# 加载训练集和测试集
train_dataset = datasets.MNIST(root='./data', train=True,download=True, transform=transform)
test_dataset = datasets.MNIST(root='./data', train=False,download=True, transform=transform)# 创建数据加载器
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=64, shuffle=False)# 定义神经网络模型
class SimpleNet(nn.Module):def __init__(self):super(SimpleNet, self).__init__()self.fc1 = nn.Linear(28 * 28, 128)self.fc2 = nn.Linear(128, 64)self.fc3 = nn.Linear(64, 10)self.relu = nn.ReLU()def forward(self, x):x = x.view(-1, 28 * 28)x = self.relu(self.fc1(x))x = self.relu(self.fc2(x))x = self.fc3(x)return x# 初始化模型、损失函数和优化器
model = SimpleNet()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)# 训练模型
def train(model, train_loader, criterion, optimizer, epoch):model.train()for batch_idx, (data, target) in enumerate(train_loader):optimizer.zero_grad()output = model(data)loss = criterion(output, target)loss.backward()optimizer.step()if batch_idx % 100 == 0:print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(epoch, batch_idx * len(data), len(train_loader.dataset),100. * batch_idx / len(train_loader), loss.item()))# 测试模型
def test(model, test_loader):model.eval()test_loss = 0correct = 0with torch.no_grad():for data, target in test_loader:output = model(data)test_loss += criterion(output, target).item()pred = output.argmax(dim=1, keepdim=True)correct += pred.eq(target.view_as(pred)).sum().item()test_loss /= len(test_loader.dataset)print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format(test_loss, correct, len(test_loader.dataset),100. * correct / len(test_loader.dataset)))# 训练和测试模型
for epoch in range(1, 5):train(model, train_loader, criterion, optimizer, epoch)test(model, test_loader)
```c

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SOME/IP--协议英文原文讲解10

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.2.2 Req…

Spring框架基本使用(Maven详解)

前言: 当我们创建项目的时候,第一步少不了搭建环境的相关准备工作。 那么如果想让我们的项目做起来方便快捷,应该引入更多的管理工具,帮我们管理。 Maven的出现帮我们大大解决了管理的难题!! Maven&#xf…

用大内存主机下载Visual Studio

用一台内存达到128G的主机下载Visual Studio 2022,用的是公司网络。下载速度让我吃了一惊,没人用网络了?还是网站提速了?以前最大只能达到5MB/秒。记录这段经历,是用来分析公司网络用的......

Ubuntu20.04.2安装Vmware tools

软件版本:Vmware Workstation Pro 17.6.2 操作系统镜像文件:ubuntu-20.04.2-desktop-amd64 方式1:用iso镜像安装 没用这种方法,太麻烦 方式2:用apt安装Open VM Tools 如果你使用的是较新的Ubuntu版本(如…

Mac系统下使用Docker快速部署MaxKB:打造本地知识库问答系统

随着大语言模型的广泛应用,知识库问答系统逐渐成为提升工作效率和个人学习的有力工具。MaxKB是一款基于LLM(Large Language Model)大语言模型的知识库问答系统,支持多模型对接、文档上传和自动爬取等功能。本文将详细介绍如何在Ma…

2526考研资料分享 百度网盘

通过网盘分享的文件:01、2026【考研数学】 链接: https://pan.baidu.com/s/1N-TlXcCKMcX1U-KBr0Oejg?pwducbe 提取码: ucbe 提取码:98wg--来自百度网盘超级会员v3的分享 通过网盘分享的文件:01、2026【考研政治】 链接: https://pan.baidu.com/s/1N-T…

【信息系统项目管理师-案例真题】2013下半年案例分析答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一【问题‍ 1】(12 分)【问题‍ 2】(10 分)【问题 3】( 3 分 )试题二【问题‍ 1】(3‍ 分)【问题‍ 2】(10‍ 分)【问题‍ 3】(3‍ 分)【问题‍ 4】(9‍ 分)试题三【问题‍ 1】(12‍ 分)‍【问题‍ 2】(8‍…

idea连接gitee(使用idea远程兼容gitee)

文章目录 先登录你的gitee拿到你的邮箱找到idea的设置选择密码方式登录填写你的邮箱和密码登录成功 先登录你的gitee拿到你的邮箱 具体位置在gitee–>设置–>邮箱管理 找到idea的设置 选择密码方式登录 填写你的邮箱和密码 登录成功

UNIAPP开发之利用阿里RTC服务实现音视频通话后端THINKPHP5

下面是一个使用ThinkPHP 5实现后端逻辑的示例。我们将创建一个简单的ThinkPHP 5项目来处理生成推流和播流地址的请求。 后端部分(ThinkPHP 5) 1. 初始化ThinkPHP 5项目 首先,确保你已经安装了Composer。然后使用Composer创建一个新的Think…

嵌入式开发岗位认识

目录 1.核心定义2.岗位方向3.行业方向4.技术方向5.工作职责6.核心技能7.等级标准8.优势与劣势9.市场薪资10. 发展路径11. 市场趋势12. 技术趋势 1.核心定义 嵌入式系统: 以应用为中心,以计算机技术为基础,软硬件可裁剪的专用计算机系统 特点…

图解循环神经网络(RNN)

目录 1.循环神经网络介绍 2.网络结构 3.结构分类 4.模型工作原理 5.模型工作示例 6.总结 1.循环神经网络介绍 RNN(Recurrent Neural Network,循环神经网络)是一种专门用于处理序列数据的神经网络结构。与传统的神经网络不同&#xff0c…

MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 2

第02章_MySQL的数据目录 1. MySQL8的主要目录结构 1.1 数据库文件的存放路径 MySQL数据库文件的存放路径:/var/lib/mysql/ MySQL服务器程序在启动时会到文件系统的某个目录下加载一些文件,之后在运行过程中产生的数据也都会存储到这个目录下的某些文件…

http 响应码影响 video 标签播放视频

背景 使用后端给的文件下载接口地址实现视频播放,但是 video 标签一直无法播放视频如下图,把接口地址放到浏览器请求能直接下载。但就是不能播放 原因 http 响应码不正确,返回201是无法播放视频200可以如下图 状态码的影响: 20…

OneNote手机/平板“更多笔记本”中有许多已经删掉或改名的,如何删除

问题描述: OneNote 在手机或平板上添加“更多笔记本”中,有许多已经删掉或改名的笔记本!如何删除? OR:如何彻底删除OneNote中的笔记本? 处理做法: 这个列表对应365里面的【最近打开】&#…

LeetCode--23. 合并 K 个升序链表【堆和分治】

23. 合并 K 个升序链表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 正文 这道题有多种解决方案 堆 比较容易,又比较直观的就是堆排序,将每个节点加入最小根堆中&…

【 Avalonia UI 语言国际化 I18n】图文结合教学,保姆级教学,语言国际化就是这么简单(.Net C#)

完整项目地址 github : https://github.com/Crazy-GrowUp/AvaloniaI18nTest/tree/master gitee :https://gitee.com/jack_of_disco/avalonia-i18n-test 0.项目新建 Properties 文件夹 对应的项目配置文件里面就会增加 <Folder Include"Properties\" /> 1.项…

点击el-dialog弹框跳到其他页面浏览器的滚动条消失了多了 el-popup-parent--hidden

点击el-dialog弹框跳到其他页面浏览器的滚动条消失了 在使用 el-dialog 弹框时&#xff0c;Element Plus 会在弹框打开时自动给 body 添加 el-popup-parent–hidden 类&#xff0c;以隐藏滚动条。如果在跳转到其他页面时滚动条没有恢复&#xff0c;可能是因为 el-dialog 没有正…

JWT认证机制

Session认证机制中需要配合cookie才能实现&#xff0c;由于cookie默认不支持跨域访问&#xff0c;当涉及到前端跨域请求后端接口时&#xff0c;需要做很多额外的配置&#xff0c;才能实现跨域session认证。所以这里不推荐使用session身份认证机制&#xff0c;一般推荐使用jwt认…

netcore 启用gzip压缩及缓存

public void ConfigureServices(IServiceCollection services) {....// 配置gzip 与 br的压缩等级为最优services.Configure<BrotliCompressionProviderOptions>(options > {options.Level CompressionLevel.Optimal;});services.Configure<GzipCompressionProvid…

qt:常见标签操作,倒计时功能,进度条与日历

1.标签常见函数 函数功能void setext(const QString &text)设置文本QString text()const获取文本void setPixmap(const QPixmap)与Pixmap()const设置和获取图像void setAlignment(Qt::Alignment alignment)设置对齐&#xff08;获取和上面一样&#xff09;void setWordWr…