- 博客(21)
- 资源 (9)
- 收藏
- 关注
原创 三十天玩转 Octave (1): 绘图指南
通过 Octave 的强大绘图功能,你可以轻松实现 2D 和 3D 图形的可视化,包括折线图、散点图、柱状图、直方图和极坐标图等。Octave 的绘图功能类似 MATLAB,适合数据分析、数学建模和科学计算的可视化需求。掌握这些基础后,你可以更高效地展示数据并得出可视化结论。如果你有更具体的绘图需求或问题,随时可以提出来,我可以为你提供更详细的指导!
2025-05-10 23:10:46
452
原创 动态规划不再难:一步一步教你攻克经典问题 (3)
在这一篇博客中,我们介绍了三个新的动态规划问题,完全背包,矩阵路径计数,和编辑距离计算。小伙伴们应该对动态规划的解题过程有了更深刻的认识。到这里我们已经对DP算法有了不错的理解,但是如果是参加面试的话还需要更多的练习。首先,面试官会经常要求对空间复杂度进行优化。另外面试过程中,面试官会将基础问题进行变种,以增加算法设计的难度。在今后的blog中,我会找一些 Leetcode 中的面试题,来为大家进行讲解。动态规划不再难:一步一步教你攻克经典问题 (1)-CSDN博客。
2025-05-10 15:21:11
1129
3
原创 算法与数据结构 - 二叉树结构入门
二叉树是计算机科学中最基础且重要的树形数据结构之一,非空时由根节点和两个不相交的子树(左子树和右子树)组成。树中每个节点(包括根节点)最多有两个子节点(称为左子节点和右子节点),普通二叉树无其他约束。我们可以看到 AVL 树和红黑树其实是二叉搜索树的变种。AVL 和 红黑树的代码相对比较复杂,涉及复杂的旋转问题。具体的代码,将在之后的博文里讨论。
2025-05-09 23:51:07
970
原创 动态规划不再难:一步一步教你攻克经典问题 (2)
本文总结了三个动态规划问题的基本解法,最长公共子序列,矩阵最短路径,和找零钱问题。通过不停的练习,可以锻炼大家对于算法递推公式的推导能力,更精确的把握如何设置边界条件和起始条件。最后,希望大家能更好的理解动态规划这个算法。动态规划不再难:一步一步教你攻克经典问题 (1)-CSDN博客。
2025-05-09 15:44:49
952
4
原创 动态规划不再难:一步一步教你攻克经典问题 (1)
动态规划(Dynamic Programming,简称DP)是一种通过将复杂问题分解成更小的子问题来求解的算法设计方法。它适用于求解具有重叠子问题和最优子结构性质的问题。动态规划通过记录已经计算过的子问题的解,避免了重复计算,从而大大提高了计算效率。
2025-05-08 23:50:32
1567
3
原创 知识复习 - Python 原生数据类型
数值类型intfloatcomplex字符串类型str序列类型listtuplerange集合类型setfrozenset映射类型dict布尔类型bool二进制类型bytesbytearraymemoryview空值类型None每种数据类型都有其独特的用途,根据不同的需求可以选择合适的数据类型来存储和操作数据。如果你有其他关于 Python 数据类型的具体问题,随时告诉我!
2025-05-07 23:38:05
924
原创 初创企业开源许可证选择指南:如何规避风险并加速发展?
目录1. 为什么初创企业要特别关注开源许可证?2. 常见的开源许可证比较分析3. 如何选择适合企业的许可证?2.1 原型验证阶段(0-1年)2.2 产品增长阶段(1-3年)2.3 融资/收购准备阶段4. 企业特殊场景解决方案5. 网上常见问题解答(FAQ)6. 结语:许可证是战略选择工业与商业软件对于初创企业是一笔很大的开销,所以很多创业公司更倾向于使用开源免费的软件与框架进行产品开发。在资源与资金有限的情况下,开源软件是快速构建产品的利器,能帮助创业公司快速发展。但是很多企业忽略了开源软件与框架的许可证要
2025-05-07 23:27:38
875
原创 Python 3 中 cls 和 self 参数的使用及注意事项
self 和 cls 参数在定义类的时候经常使用,但是很多小伙伴对其一知半解,现在明白了吗?self是实例方法的第一个参数,指代当前对象实例,可以通过它访问实例的属性和方法。cls是类方法的第一个参数,指代当前类本身,可以通过它访问类的属性和类方法。self和 cls都是 Python 面向对象编程中的重要概念,帮助区分实例与类的关系。参考文献python中cls和self的不同及使用_python cls和 self-CSDN博客。
2025-05-06 23:35:29
600
原创 Octave 主要扩展包介绍:提升数值计算,数据分析,及图像处理能力
Octave 是一个开源的数值计算软件,功能与 MATLAB 类似,广泛应用于科学计算、工程学以及数据分析领域。尽管 Octave 本身已经拥有强大的功能,但通过使用扩展包(Octave Packages),用户可以进一步提升 Octave 的能力,满足更多的需求。本文将介绍 Octave 的一些主要扩展包及其用途,帮助读者更好地利用 Octave 进行各类计算任务。Octave 的扩展包是由 Octave 社区或其他开发者开发的,它们通过提供额外的功能模块来增强 Octave 的计算能力。
2025-05-06 22:40:30
999
原创 知识复习 - Python 3 面向对象编程
使用class关键字定义类,类的属性和方法可以通过缩进块来定义。构造函数__init__用来初始化对象的属性。class Car:# 构造函数,初始化属性self.make = make # 品牌self.model = model # 型号self.year = year # 年份# 方法:描述对象的行为# 创建对象# 调用方法car1.display_info() # 输出: 2020 Toyota Corolla2. 类的属性和方法属性:类中的变量,用于保存对象的状态。方法。
2025-05-05 23:07:26
679
原创 Octave 简介:一款强大的开源科学计算工具
GNU Octave 是一款高层次的解释型编程语言,主要用于数值计算。其语法与 MATLAB 高度兼容,是 MATLAB 用户的理想替代工具。Octave 提供了广泛的数学功能,支持从基础算术到复杂数学建模和数据可视化的各种任务。与其他需要编写复杂代码的编程语言不同,Octave 的语法设计非常直观,适合无论是初学者还是资深专家使用。
2025-05-05 22:55:43
1208
原创 Python 3.x 自定义装饰器 常用应用场景 - 1(日志记录 计时 缓存 与 权限控制)
自定义装饰器在 Python 中非常灵活,能够增强和修改函数或方法的行为。它们常用于以下几种场景:日志记录、缓存、权限控制、性能测量、验证等。下面列出了一些常见的装饰器方法与功能。
2025-05-04 23:05:25
445
原创 Python 3.x 内置装饰器 (4) - @dataclass
对于可变类型(如 list、dict 等),如果你在类中直接给它们赋默认值,你可能会遇到问题,因为默认值会被共享到所有实例中。为了解决这个问题,应该使用 field(default_factory=...) 来为每个实例提供新的默认值。@dataclass 是Python 3.7 引入的一个装饰器,用来简化创建数据类(主要存储数据的类)的过程。总之,@dataclass 是一个特别强大,用法又特别灵活的类,小伙伴们掌握了多少。可以让你控制如何处理每个字段,例如设置默认值、指定字段是否可修改等。
2025-05-03 23:40:57
739
原创 Python 3.x 内置装饰器 (3) - @abstractmethod @wraps
2. @functools.wraps 是一个常用的装饰器,用于在自定义装饰器时保留原函数的元数据(如文档字符串、函数名等)。当你写自己的装饰器时,使用 @wraps 可以确保装饰后的函数看起来和原函数一致。1. @abstractmethod 装饰器用在抽象类中,用于声明一个抽象方法。函数原有的名称与文档被自定义的 wrapper 取代。@abstractmethod 和 @wrap 是两个特别常用的内置装饰类,小伙伴们明白了吗。@wrap 装饰保留了函数原有的名称和文档。装饰器确保所有继承了。
2025-05-03 22:36:25
369
原创 Python 3.x 内置装饰器 (2) - @cached_property and @lru_cache
cache_property: 这个装饰器件程序运行结果如下:我们可以看到,当第二次调用fibonacci方法时,我们不再重新进行递归计算,而是直接调用缓存中存储的上一个结果。@lru_cache:这个装饰器 is used to cache the results of expensive or frequently called functions. The acronymstands for@lru_cache。
2025-05-02 23:55:49
1273
原创 Python 3.x 内置装饰器 (1) - @staticmethod @classmethod @property
和静态方法(@staticmethod)与类方法(@classmethod)对应的是实例方法。实例方法接收类的一个实例(self)做为参数,允许我们访问该实例的属性。1. @staticmethod:用于在一个类中定义静态方法。3. @property:将方法变成属性调用。2. @classmethod:定义类方法。
2025-05-02 22:39:36
257
原创 知识复习 - Pytorch导出ONNX模型 动态输入参量
在使用Pytorch导出ONNX模型的时候,经常需要考虑动态维度,比如可变的batch size以及图片的输入与输出尺寸。我们可以通过修改torch.onnx.export函数的dynamic_axes来考虑动态维度。这里给一个简单的例子。参数中的 0、2、3 表示相应的维度设置为动态值;最后我们用onnxruntime 来测试导出的。
2025-04-30 23:43:35
267
4
原创 知识复习 - Pytorch导出ONNX模型 多输入参量
中,我们介绍了如何导出单静态输入Pytorch模型的ONNX格式。然而,有很多AI模型需要多个输入参数来进行推理,比如 BERT。这时候我们在导出ONNX模型的时候就要对这些输入参量进行处理,把他们放入一个Python元组中。整体来讲并没有什么难度,只是将输入参量按顺序放入了元组中并对torch.onnx.export函数的参数进行了简单修改。但是如果不注意,导出模型的时候可能会卡住,耽误很多时间。
2025-04-29 00:50:24
495
2
原创 知识复习 - Pytorch导出ONNX模型以及使用Netron进行ONNX模型的可视化
Open Neural Network Exchange(ONNX)是一种开放的深度学习模型交换格式。ONNX格式可以实现不同框架(比如Pytorch和Tensorflow)之间的模型互操作和跨平台部署。使用ONNX格式可以还可以提高模型的推理效率,并有广泛的社区支持。
2025-04-28 00:16:08
539
人事管理软件源码人事管理软件源码
2009-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人