- 博客(22)
- 收藏
- 关注
原创 Java单例模式深度解析与最佳实践
单例模式(Singleton Pattern)是一种创建型设计模式,通过限制类实例化次数为一次,实现全局唯一访问点的目标。主要使用场景:①配置管理类(如数据库连接配置)② 资源控制器(线程池/连接池管理)③ 日志记录器(避免多实例写日志冲突)
2025-04-16 09:00:00
388
原创 Java Stream转List的两种写法:`collect(Collectors.toList())`与`toList()`的区别详解
Java Stream转List的两种写法:`collect(Collectors.toList())`与`toList()`的区别详解
2025-03-28 00:19:05
419
原创 【最佳实践】用优雅的方式安置静态常量:枚举 > 常量类 > 接口
private UserConstants() {} // 私有构造函数,防止实例化。
2025-03-28 00:11:13
522
原创 mybatis plus关闭驼峰/下划线映射
但是在运行的时候我们看到报错内容是user_account,查看手册得知,这是因为mybatis plus3自动进行了映射,默认开启。在使用mybatis plus框架的时候,明明数据库采用的是驼峰形式,xml文件里面的配置也没问题。在application.yml中关闭映射。
2025-03-23 00:12:22
211
原创 MySQL可重复读级别解决幻读问题
幻读是指同一事务中执行相同的SELECT语句,但因其他事务的INSERT或DELETE使得数据发生变化,导致查询结果前后不一致。场景事务A开始,并执行SELECT语句查询满足条件的记录。事务B在事务A未提交之前,插入或删除满足条件的新数据。事务A再次执行相同的查询,但查询结果发生变化,这就是幻读。示例-- 事务 A 开始-- 查询出 3 条数据-- 事务 B 插入新数据COMMIT;-- 事务 B 提交-- 事务 A 再次查询-- 现在查询出 4 条数据(幻读)
2025-03-07 02:42:26
699
原创 在PyTorch中集成TensorBoard:代码位置与注意事项详解
通过在代码中正确地集成TensorBoard,可以实时监控训练和验证过程中的损失变化,方便调试和优化模型。记录位置:确保在计算完需要记录的值之后,再调用等方法。参数正确性的参数要正确,标签名称清晰,数值准确,全局步骤数递增。日志目录管理:确保日志目录的唯一性,防止日志覆盖或混淆。性能考虑:避免过于频繁地记录数据,以免影响训练速度和日志文件大小。异常处理:考虑在程序异常退出时,仍然能够正确关闭writer,释放资源。
2024-11-26 08:00:00
1643
原创 机器学习dataloader中shuffle=True及使用随机种子控制随机性
数据随机打乱顺序,增强训练过程的随机性,防止模型记住数据顺序,从而提高泛化能力。随机种子控制:通过设置随机种子,我们可以确保实验结果的一致性和可复现性。即使数据顺序是随机的,使用相同的种子可以保证每次训练的数据顺序和其他随机操作一致。训练集 vs 验证集/测试集:训练集需要打乱数据顺序,以确保模型在每个 epoch 上看到不同的数据顺序,从而避免过拟合。而验证集和测试集的顺序不应打乱,保持一致性是为了准确评估模型的性能。
2024-11-25 11:21:22
1462
3
原创 __init__、__len__、__getitem__及其他常用魔法方法
魔法方法是Python中的一类特殊方法,它们是内置的,可以让开发者在自定义类时重载Python的运算符或改变对象的行为。魔法方法也被称为“特殊方法”或“dunder方法”(因为它们的名字通常由两个下划线包围)。这些方法允许你定义和控制常见的对象行为,例如初始化、索引、运算符重载等。通过实现这些方法,你可以使你的类对象更加灵活和强大。通过这种方式,我们可以让自定义类像内建类型一样,具有与标准Python类型相同的行为。
2024-11-25 10:58:26
541
原创 YAML 配置文件的使用与注意事项
文件与脚本之间的相对位置,以及理解 YAML 中列表和键值对的区别,可以更好地管理项目中的配置文件。同时,掌握一些常用细节如错误处理、环境变量的使用、设置默认值等,可以使你的项目更加健壮和安全。当我们需要定义多个路径时,比如训练数据和验证数据的路径,这些路径可以存储在一个列表中,因此每一项前面都要使用。通过这种方式,项目中的配置管理更加灵活,可以根据需要调整或扩展不同的配置模块,而不必修改一个巨大的单一配置文件。相对路径的好处在于,无需硬编码具体的绝对路径,从而提高代码的可移植性。
2024-11-24 23:37:25
1330
原创 Python 判断 `None`:`==` vs `is`,你真的用对了吗?
在 Python 编程中,判断变量是否为 None 可以使用 == 或 is,但它们之间有显著区别。== 是值比较运算符,可能会受到重载 __eq__() 方法的影响,而 is 是身份比较运算符,用来检查两个对象是否为同一个内存实例。在判断 None 时,is None 更加精确和高效,因此 Python 社区推荐使用 if root is None:,这符合最佳实践,能避免潜在的错误并提升代码可读性和性能。
2024-11-06 23:13:34
771
原创 【小白向】leetcode中序遍历二叉树的三种实现方式
三种实现二叉树中序遍历的方法:递归遍历 + 闭包函数、显式栈模拟递归(颜色标记法)、递归调用 + 辅助函数。
2024-11-06 22:50:09
1191
原创 BN 与 LN:深度学习中的两种归一化技术对比
在深度学习中,归一化技术对模型训练的稳定性和速度起着至关重要的作用。Batch Normalization (BN) 和 Layer Normalization (LN) 是最常用的两种归一化方法,但它们适用的场景和效果差别较大。BN 通常用于卷积神经网络(CNN),而 LN 则更适合于序列数据和 Transformer 结构。本文详细对比了 BN 和 LN 的适用场景及它们在不同数据结构中的表现差异。
2024-10-30 11:10:21
1264
原创 Excel处理的易错问题
在使用 Pandas 处理 Excel 数据时,进行切片及删除列的常见易错问题。首先,在修改切片数据时,如果需要同时修改原始数据,不需要使用 `.copy()`;若只想修改切片而不影响原始数据,则应使用 `.copy()`。其次,删除列时,使用 `difference()` 函数会按字典序重新排序列名,若不希望改变列顺序,建议使用 `drop()` 函数。通过代码示例清晰展示了不同场景下的处理方法及输出结果。
2024-09-11 18:11:44
419
原创 vscode激活环境报错:CommandNotFoundError: Your shell has not been properly configured to use ‘conda active
conda init重启powershell,conda activate依旧报错。
2024-07-30 17:21:07
944
1
空空如也
如何在一组二维数组中剔除未知字符串?
2022-10-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人