自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 深度学习(6):Dataset 和 DataLoader

并实现上述两个方法。

2024-09-25 15:11:24 353

原创 深度学习(5):逻辑斯蒂回归Logistic

逻辑斯蒂回归:一种用于二分类问题的模型,使用 Sigmoid 函数将线性组合映射为概率,损失函数为交叉熵损失。交叉熵:衡量两个概率分布之间差异的度量,用于逻辑斯蒂回归等模型的损失函数。KL 散度:衡量两个概率分布之间差异的非对称度量,交叉熵可以视为熵和 KL 散度的组合。关系:在逻辑斯蒂回归中,最小化交叉熵损失等价于最小化真实分布和模型预测分布之间的 KL 散度。

2024-09-24 20:36:16 778

原创 深度学习(4):torch.nn.Module

要创建自定义的神经网络模型,需要继承nn.Module构造函数__init__:在这里定义网络的层和子模块。前向方法forward:定义数据如何经过网络进行前向传播。# 定义网络层# 定义前向传播过程return out在大多数情况下,不需要手动实现反向传播函数。PyTorch 的自动求导机制(autograd)会根据前向传播中的操作,自动计算梯度。self.flatten = nn.Flatten() # 将输入展开为一维。

2024-09-24 18:49:27 1223

原创 深度学习(3):Tensor和Optimizer

优化器位于 torch.optim 包中,是实现各种优化算法的核心组件。它们的主要功能是调整网络参数以减少计算出的损失值。每一个优化器都继承自 torch.optim.Optimizer,并实现特定的优化策略。Optimizer(优化器):在 PyTorch 中,优化器负责管理和更新模型的参数,特别是在训练过程中根据计算出的梯度来更新参数以最小化损失函数。Tensor(张量):在 PyTorch 中,Tensor 是一种多维数组, 可以在 GPU 上进行高效的数值计算。

2024-09-24 18:20:20 518

原创 深度学习(2):梯度下降

但在多变量函数中,梯度是一个向量,其分量是各个单一变量的偏导数。这个向量指向函数增长最快的方向,其向量的模(大小)表示在那个方向上的最大变化率。类似y = ax + b这种单变量的函数来说,导数就是它的斜率,这种情况下可以说梯度就是导数。所以我们沿着梯度的反方向走,这就是下降最快的方向,这样就能够使得损失函数最快的下降了。

2024-09-24 17:13:14 1119

原创 深度学习(1):基础概念与创建项目

Anaconda 是一个开源的 Python 和 R 语言发行版,主要用于科学计算和数据分析。它集成了大量常用的数据科学包,如 NumPy、Pandas、SciPy 等,并包含 Conda 包管理器,方便环境管理和包依赖。由于其强大的并行计算能力,GPU 被广泛应用于深度学习、科学计算和数据分析等需要高计算量的领域。:由 Google 开发,支持静态和动态图计算,适用于从研究到生产的各个环节。这两个框架都支持 GPU 加速,利用 GPU 的并行计算能力加速深度学习模型的训练和推理。

2024-09-23 12:53:02 521

原创 ByteCinema(1):用户的登录注册

JWT(JSON Web Token)是一种基于 JSON 的开放标准(RFC 7519),用于在各方之间安全地传输信息。它可以被用来进行身份验证和信息交换。由于 JWT 是经过数字签名的,因此信息是可信任的。

2024-09-22 20:02:42 966

原创 numpy学习

【代码】numpy学习。

2024-06-03 16:47:01 298

原创 动态代理笔记(自用)

定义接口,这个接口是我们接下来需要做增强的接口。

2024-04-23 18:08:43 849

原创 Java反射笔记(自用)

官方定义: 反射(Reflection)是一个强大的机制,它允许程序在运行时查询和操作对象的类信息。使用反射API,可以动态地创建对象、调用方法、访问字段(即便它们被定义为私有的),并且能够加载类。

2024-04-22 16:02:51 868

原创 docker分layer的好处

增量更新:重用共享层:缓存机制优化:减少总体体积:更快的部署和扩展:安全性和版本控制:

2024-04-19 15:32:43 560

原创 Java异常

检查型异常需要编译时必须被处理,非检查型异常需要程序员修改代码逻辑,Error一般会是系统级错误checked需要继承Exception,unchecked需要继承RuntimeException及其子类。

2024-04-19 14:45:16 672

原创 MySQL的分层

网络连接层主要有连接池和线程池。主要用于连接与线程处理。比如连接处理、授权认证、安全等。(通信协议,线程,验证)

2024-04-18 17:40:00 694

原创 Mysql基础知识学习总结

在SQL中,增加(INSERT)、删除(DELETE)和修改(UPDATE)是数据库操作中最基本的数据操作语句。这个命令是数据库设计和调试时的一个有用工具,它可以快速显示表的列信息,包括列的名称、数据类型、是否允许空值、键信息以及其他可能的属性。命令是一个强大的工具,主要用于MySQL和类似的数据库管理系统。它用来显示各种数据库对象(如数据库、表、索引)的信息,以及数据库服务器的状态和变量。这个命令显示所有MySQL系统变量的设置,这些变量可以影响服务器的操作。这个命令显示指定表的所有索引的详细信息。

2024-04-18 16:51:13 754

原创 Java中的集合

IterableIterable提供了一种统一的方式来获取Iterator,后者才是执行实际遍历的工具。通过调用方法获得的迭代器并不直接指向集合的第一个元素,而是位于第一个元素之前的一个位置。可以将其视为一个头节点,它初始时位于集合的“开始位置之前”。这是为了允许迭代器在开始遍历前有一个统一的起点。使用迭代器的 remove() 方法时,它并不是移除下一个元素,而是移除最近通过 next() 方法返回的元素。

2024-04-18 11:44:52 626

原创 序列化与反序列化

序列化是指将对象的状态信息转换为可以存储或传输的数据格式的过程。这种数据格式通常是字节流,但也可以是其他格式如XML或JSON。反序列化则是序列化的逆过程,它将序列化后的数据格式重新转换回原来的对象。

2024-04-18 11:21:12 424

原创 Jackson知识点记录

中安全地提取数据(__value)。这些方法会尝试将节点的值转换为请求的类型,如果节点值不是期望的类型或节点为空,则返回一个默认值(例如,asInt()对于非数值或null节点会返回0)。是一个重要的类,用于表示JSON数据的结构化形式。它是一个抽象的、不可变的数据类型,代表JSON数据的节点。以下是Jackson中主要的。在Jackson的JsonNode类中,方法系列主要用于从不同类型的。在Jackson库中,

2024-04-17 18:16:18 945

原创 Comparable 和 Comparator

用途:如果对象有一个自然的排序顺序(如数字、字母顺序等),通常使用Comparable。如果需要多种排序方式或者排序对象时不想修改对象的类,使用Comparator。实现方式Comparable嵌入到类中,Comparator作为独立的实现。灵活性Comparator比Comparable更灵活,提供了更多的控制权和定制排序选项。

2024-04-17 11:20:17 603

原创 Java中stream()的使用

流的中间操作不会立即执行,只有在遇到终端操作时才会执行。这意味着中间操作会形成一种流水线,只有当结果真正需要时才开始计算,这有助于优化性能,特别是在处理大数据或复杂操作链时。API 提供了一种高级的抽象,使我们可以将集合转换成一种流式的处理模式,从而能大链式地执行一系列操作。:流的操作通常是函数式的,意味着你可以传递 lambda 表达式或方法引用来执行操作。:流不会改变原有的数据结构,它们只提供了一种在数据源上执行操作的方法。通过重复使用给定的操作,将流中的元素组合起来,返回一个。

2024-04-16 10:59:41 2445

原创 Java中Map的几种排序方式

比如根据多个字段或条件排序,可以自定义比较器(Comparator)// 自定义比较器来进行排序.stream()// 根据值降序排列,如果值相等,则按键升序排列= 0)?})));

2024-04-16 10:44:29 7392

原创 大数据基础学习

大数据(Big Data)是指无法在合理时间内用传统数据库管理工具进行捕捉、管理和处理的庞大、复杂的数据集合。(3V特点)体积(Volume):数据量巨大,从TB(太字节)到PB(拍字节)乃至更高。速度(Velocity):数据以高速率产生和收集,包括实时数据流。多样性(Variety):数据来自多种来源,包括结构化数据、非结构化数据和半结构化数据,如文本、图片、视频等。行式存储更适合事务处理和需要频繁读写完整记录的应用场景(如OLTP系统)。列式存储。

2024-04-10 15:11:43 1130

原创 生命周期模型

这些模型各有特点,选择适合项目特定需求、团队结构和客户期望的模型是关键。随着项目进展,可能需要根据实际情况调整采用的模型或方法。

2024-03-17 00:38:50 1116

原创 内聚与耦合

每个例子都展示了从偶然内聚到功能内聚的逐步提高内聚水平的过程,反映出模块内部元素之间关系的紧密程度。高内聚通常与高质量的软件设计相关联。

2024-03-16 17:07:30 453

原创 Canal的入门操作记录

canal其实就是假装自己是从数据库,来监听主数据库的binlog得到数据的变化信息canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )canal 解析 binary log 对象(原始为 byte 流)

2024-03-10 16:55:17 579

原创 MVCC------Mysql并发事务控制的工具

readView解决的是一个事务查询选择版本的问题,在内部定义了一些匹配规则和当前的一些事务id判断该访问那个版本的数据,不同的隔离级别快照读是不一样的,最终的访问的结果不一样。隐藏字段是指:在mysql中给每个表都设置了隐藏字段,有一个是trx_id(事务id),记录每一次操作的事务id,是自增的;undo log主要的作用是记录回滚日志,存储老版本数据,在内部会形成一个版本链,在多个事务并行操作某一行记录,记录不同事务修改数据的版本,通过roll_pointer指针形成一个链表。

2024-03-10 15:45:50 458

原创 “删边“的并查集------反向并查集

第一行输入三个正整数n,m,q,代表总人数,初始的朋友关系数量,发生的事件数量。接下来的m行,每行输入两个正整数u,v,代表初始编号u的人和编号v的人是朋友关系。注:介绍可以有多层,比如 2 号把 1 号介绍给 3 号,然后 3 号再把 1 号介绍给 4 号,这样 1 号和 4 号就认识了。小美认为,在人际交往中,但是随着时间的流逝,朋友的关系也是会慢慢变淡的,最终朋友关系就淡忘了。1 u v:代表编号 u 的人和编号 v 的人淡忘了他们的朋友关系。显然,查找公共祖先的很容易就能想到并查集的数据结构。

2024-03-09 18:05:40 993 9

原创 P4学习(七)实验四:Explicit Congestion Notification

如果在 ingress 或 parse 阶段进行标记,每个进入交换机的数据包都需要经过拥塞检测处理,即使这些数据包可能不会遇到任何拥塞。:如果在 ingress 阶段进行标记,随着数据包经过网络中的多个交换机,每个交换机都可能基于自身的状态对数据包进行重新标记,导致标记的不一致性。:Egress 阶段更接近于数据包实际离开交换机的时刻,因此在这个点进行标记可以基于最新的网络状态信息(如队列长度、传输速率等)。0x1:我们取的是tos的后两位作为cen的filed字段,所以这里的ecn=1;

2024-01-25 12:38:25 1048

原创 P4学习(六)实验三:a Control Plane using P4Runtime

翻译自官网这个目录包含了几个Python文件,每个文件都承担着特定的角色以支持P4网络设备的控制和管理。helper.py包含类,用于解析p4info文件。提供从实体名称到ID号以及从ID号到实体名称的转换方法。构建与P4程序相关的P4Runtime表项的部分。switch.py包含类,负责获取gRPC客户端存根并建立与交换机的连接。提供辅助方法来构造P4Runtime协议缓冲消息,并执行P4Runtime gRPC服务调用。bmv2.py包含类,它扩展了。

2024-01-22 22:16:14 1416 1

原创 P4学习(五)实验二:Basic Tunneling

我们可以看到只要带上了隧道标签的数据包的type字段都被处理成0x1212(我们自定义的一个值用于标签),同时最后dst_ip为h3的但带上了隧道标签也走了隧道,证明了我们在parse里的解析逻辑是正确的。

2024-01-19 16:09:55 931

原创 P4学习(四)实验一:Basic Forwarding

"make"是linux的一个工具,通过读取文件makefile来执行操作。会发现全部ping不通,也就代表basic.p4中的丢弃所有的包是成功的。①先从start这个state开始,直接跳到解析etherHead的部分。①emit 用于将头部字段添加到正在构建的数据包中。②从数据包里提取出Ethernet header。②写与Parse的extract的反逻辑就行。Match-Action 的流水线集合。③判断包头中的Type是否为Ipv4。Parse采用状态机风格。所以本段code的思路是。

2024-01-18 18:27:41 1098

原创 力扣第 379 场周赛VP

假设在当前步选共有为最优解,此时剩余集合元素个数为k,而选独有的会有k + 1 和 k 两种可能。找最长对角线,很显然直接比较a^2 + b ^ 2就行。①nums1独有的 ②nums2独有的③共有的。注意更新时考虑对角线长度相等时候去面积最大。最多元素个数 ===> 考虑贪心。很显然有独有就选独有的是最优解。

2024-01-09 17:34:13 441 1

原创 P4学习(三)基础

但需要更长的时间的是,你知道你必须更新你的交换芯片ASIC,以支持新的数据平面协议。当然,如果你想添加一个新功能,例如在你的系统中支持一个新的协议,你需要改变固定功能的芯片,这在最好的情况下可能需要4年的时间!4年后,你可能已经找到了一种方法来绕过它,或者如果你决定仍然需要它,那么你必须更换所有的硬件,这是非常昂贵的,而且可能是很大的痛苦。当然,如果你想添加一个新功能,例如在你的系统中支持一个新的协议,你需要改变固定功能的芯片,这在最好的情况下可能需要4年的时间!此外,这种方法提供了有限的可编程性。

2024-01-08 22:51:23 1080

原创 P4学习(二) 阅读《P4: Programming Protocol-Independent Packet Processors》论文

相较于不停地扩展首部字段长度,为了避免规范的首部字段泛滥现象。P4被提出用于解析数据包和匹配报头字段图一 P4与现有API的关系新的“OpenFlow 2.0”API被配置用于灵活的机制来解析数据包和匹配报头字段可编程解析器:数据包首先通过一个可编程解析器。与OpenFlow假设的固定解析器不同,P4的模型支持可编程解析器,这允许定义新的报头格式,从而增加处理不同类型数据包的灵活性。匹配+动作阶段:经过解析器处理后,数据包进入多个匹配+动作阶段。这些阶段可以是串行的、并行的,或者两者的结合。

2024-01-08 17:23:22 942

原创 P4学习(一) 环境搭建

本文仅用作记录实验过程借鉴了这些。

2024-01-07 14:19:23 1661

原创 机器学习笔记一之入门概念

线性模型假设输入特征和输出结果之间存在线性关系。这意味着模型的输出是输入特征的加权和,可能再加上一个常数(偏差项)。

2024-01-06 16:14:26 1242

原创 牛客小白月赛85

1.回血只能一次性恢复完 —> 考虑贪心找到最后一次必须回血的位置2.在最后一次必须回血的位置前的回血能回就回,因为最后都要回满的,所以早回晚回不影响选择的最优性3.找最后一次回血的位置考虑后缀数组来判断二 烙饼1.题目最少工作时间 ===> 保证每台烙饼机工作时间最长 ===> 即空闲时间最短显然构造答案ans = max(mx(a[i]), (sum(a[i]) + m - 1)/m);①mx(a[i]) > 平均烙饼时长:一块饼不能分开烙,所以最短时间为mx(a[i]);②mx(a

2024-01-06 14:38:58 399

原创 牛客小白月赛76 题解

牛客小白月赛

2023-07-15 14:01:52 775 3

原创 IDEA的debug学习

IDEA的debug简单教程

2023-01-23 16:59:25 142

原创 Cisco系列第一节-----前提基础知识

因为同类设备的话,用直通线无法判断发送和接受的方向,所以必须得用交叉线,而不同类设备可以直接使用直通线。(因为这里只做一个模拟,所以就只需要对ip进行配置,具体情况具体分析)找到你的这个发送简单协议单元的组件,然后选择你发送的终点和起点。然后上面的两个线序标准又两两之间构成三种线缆(如下)认识一下常用的基础三个组件的形状。***线序标准***右下角可以看到结果(

2022-10-11 15:10:56 704

原创 力扣6159. 删除操作后的最大子段和

2. 每次找出当前删除pos的最小上界r和最大下界l,去multiset中删去[l+1,r-1]的值,然后把[l+1,pos-1]和[pos+1,r-1]加入到其中,因为multiset的增删都是logn的,所以是可以的。因为修改数组的长度与原数组长度是相同的,所以我们可以逆着去推,区间合并比分割区间简单点,这里子段是连续的,所以可以考虑不断合并,这里采用并查集,数组中有负值的时候应该使用线段树。...

2022-08-26 18:30:52 180 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除