自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 经验笔记:标准卷积与深度可分离卷积的区别

相比之下,深度可分离卷积(depth-wise separable convolution)通过将卷积分解为两个更简单的步骤,实现了显著的效率提升。本文将对比这两种卷积方式,深入探讨它们的工作原理及其对计算量的影响,并提供相应的实例代码。通过将标准卷积分解为depth-wise convolution和point-wise convolution两步,深度可分离卷积有效地将原本呈乘法关系的计算量转换为相加的关系。当输入和输出通道数较大时,这种转换可以大幅减少所需的参数数量和计算量,从而提高了模型的效率。

2024-12-08 10:50:28 1091

原创 经验笔记:使用 PyTorch 计算多分类问题中Dice Loss 的正确方法

Dice Loss 是一种广泛应用于图像分割任务中的损失函数,它基于 Dice 系数(也称为 F1-score),用于衡量预测结果与真实标签之间的相似度。在 PyTorch 中,计算 Dice Loss 时,我们需要注意如何正确地对张量求和以保留类别信息,从而准确评估模型性能。使用最终得出的Dice_Loss为0.6250而使用最终得出的Dice_Loss为0.5000。可见,对于输入张量为来说,与是两种不同的算法,并且才是保留种类区别的正确计算方法。

2024-12-07 14:15:37 1198

原创 Git 提交的相对引用

八叉合并是指在一个合并提交中合并多个分支(超过两个)。这种合并可以通过git merge命令的一次调用完成。例如,假设你有三个特性分支feature1feature2和feature3,你可以将它们一次性合并到main虽然 Git 支持这种合并,但由于其复杂性和维护难度,这种操作在实际项目中非常少见。

2024-11-22 19:44:24 962

原创 使用VS Code 编辑MarkDown文件

本文使用插件:Markdown All in One。默认情况下,目录会在保存文件时自动更新。在Vs Code中显示并运行命令(您可以更改设置以禁用它。

2024-11-21 20:18:05 282

原创 经验笔记:git checkout 与 git switch

在使用 Git 进行版本控制时,和git switch是两个常用的命令,用于分支管理和文件恢复。虽然它们有一些相似之处,但各自的功能和使用场景有所不同。本文将详细介绍这两个命令的用法、区别和实际应用示例,帮助你更好地理解和使用它们。

2024-11-21 07:27:12 1542

原创 项目必备文件:.gitignore、LICENSE 和 README.md

gitignore文件是项目管理中非常重要的工具,不仅可以帮助你保持仓库的整洁,还可以保护敏感信息。通过高级用法和最佳实践,你可以更有效地利用.gitignore文件,提高项目的可维护性和安全性。将.gitignoreLICENSE和README.md放在项目的根目录下,不仅符合开发惯例,还能确保这些重要文件容易被发现和使用。这些文件共同构成了项目的基础设施,确保项目的顺利开发、使用和维护。希望这篇经验笔记对你有所帮助!

2024-11-20 19:13:31 752

原创 经验笔记:Git 中的远程仓库链接及上下游关系管理

远程仓库的链接信息:克隆仓库时自动记录。--track选项:在创建新分支时自动设置跟踪关系。命令:手动设置本地分支与远程分支的跟踪关系。上下游关系:描述本地分支与远程分支之间的关系。git clone默认操作:克隆仓库并设置默认分支的跟踪关系。命令:从所有远程仓库获取最新数据。希望这篇详细的经验笔记能帮助你更好地理解和应用这些 Git 命令。

2024-11-20 16:52:59 630

原创 经验笔记:远端仓库和本地仓库之间的连接(以Gitee为例)

希望这份经验笔记对你有所帮助!

2024-11-20 16:22:23 746

原创 经验笔记:Git Merge 和 Git Rebase 的作用、区别和联系

git merge和git rebase都是 Git 中用于合并分支的命令,但它们的工作方式和效果不同。git merge保留了分支的历史,适合快速解决小冲突和常规的代码合并。git rebase修改了历史,适合重构代码和保持线性的提交历史。选择哪种方式取决于你的具体需求和团队的工作流程。希望这篇总结对你有所帮助!

2024-11-19 15:04:14 968

原创 经验笔记:Git 基础操作指南

主要的区别在于,git pull 默认会先执行 git fetch,然后执行 git merge,而 git pull --rebase 则是在 git fetch 之后执行 git rebase。保存并关闭编辑器后,Git 会再次打开编辑器,让您重新输入第一个提交的信息。保存并关闭编辑器后,Git 会再次打开编辑器,让您编写合并后的提交信息。如果你需要将本地分支与远程分支同步,可以先获取远程分支的最新更改,然后合并到本地分支。安装完成后,打开命令行工具,配置您的 Git 账户信息,包括用户名和邮箱。

2024-11-18 20:40:49 1263

原创 经验笔记:从生成 SSH 密钥到成功连接测试(以Gitee为例)

通过以上步骤,你可以生成并配置 SSH 密钥对,确保能够顺利连接到 Gitee。生成 SSH 密钥对:选择合适的加密算法,使用ssh-keygen命令生成 Gitee 的 ED25519 密钥对,并设置一个 passphrase。同时,使用有意义的邮箱地址命名密钥,以便于管理和识别。配置文件:编辑文件,指定 Gitee 主机和对应的私钥文件。将公钥添加到 Gitee:复制公钥内容并将其添加到 Gitee 的设置中。测试连接:使用ssh -T命令测试与 Gitee 的连接。克隆或推送代码。

2024-11-18 10:07:26 1190

原创 使用 Vue 和 ECharts 创建交互式图表

在现代 Web 应用中,数据可视化是一个重要的组成部分。它不仅能够帮助用户更好地理解复杂的数据,还能提升用户体验。

2024-11-15 19:58:47 1313

原创 自由软件与开源软件:异同与联系

开源不仅仅意味着访问源代码。开源软件的分发条款必须符合以下十条标准1. 免费再分发许可证不应限制任何一方将软件作为包含来自多个不同来源程序的聚合软件分发的一部分出售或免费提供。许可证不应要求为此类销售收取版税或其他费用。2. 源代码程序必须包括源代码,并且必须允许以源代码形式以及编译后的形式进行分发。如果某种形式的产品未随附源代码,则必须有一种广为人知的方式,能够以不超过合理复制成本的价格(最好是从互联网上免费下载)获得源代码。源代码必须是程序员修改程序所偏好的形式。故意混淆的源代码是不允许的。

2024-10-31 20:35:58 1029

原创 经验笔记:Python 脚本打包为可执行文件(.exe)

在开发完一个Python脚本后,你可能希望将其分享给没有Python环境的用户。这时,将Python脚本打包成独立的可执行文件(.exe)是一个很好的选择。本文档将介绍如何使用工具来完成这一过程,并提供一些实用的技巧和注意事项。

2024-09-23 09:20:48 629

原创 油猴插件:视频倍速脚本(0.5倍速-3.0倍速)

(关闭再打开)浏览器,即可运行。

2024-09-15 22:52:34 4715 1

原创 经验笔记:Web 浏览器存储手段

以上就是使用 IndexedDB 的基本步骤。IndexedDB 提供了强大的数据存储能力,并且可以通过索引来优化数据检索性能。在实际应用中,可能还需要处理更复杂的场景,比如数据迁移、错误处理等。务必确保你的代码能够妥善处理各种异常情况。

2024-09-10 18:43:53 987

原创 经验笔记:面向切面编程(AOP)

横切关注点指的是那些分散在多个模块中的公共功能,如日志记录、性能监控、事务管理和安全性控制等。AOP 是一种强有力的编程范式,它通过模块化横切关注点,简化了代码结构,提高了开发效率。虽然引入 AOP 会带来一定的学习曲线和潜在的复杂性,但对于大型项目和企业应用来说,它的优势是显而易见的。这些场景都是典型的横切关注点,通过AOP可以更加优雅地处理这些问题,避免在业务代码中散布这些逻辑,从而保持业务代码的简洁性和可维护性。在实际开发中,根据项目的具体需求,可以选择适当的AOP框架和技术来实现这些功能。

2024-09-10 17:52:45 761

原创 经验笔记:Node.js 中的 process.nextTick

是Node.js中一个强大而灵活的工具,用于在当前同步操作完成后立即执行回调。它可以帮助开发者更好地管理异步任务的执行顺序,尤其是在需要快速响应的情况下。然而,应当注意合理使用,以避免潜在的性能问题和调试困难。正确地理解和使用可以使你的Node.js应用程序更加高效和健壮。

2024-09-10 16:50:52 757

原创 Vue.js 中的 DOM 更新之后执行某些操作(如 $nextTick)

在构建动态Web应用时,尤其是在使用Vue.js这样的现代前端框架时,我们经常需要根据组件的状态变化来更新DOM。然而,在某些情况下,我们需要确保DOM已经完全更新后才能执行某些操作,比如重绘图表、滚动到指定位置或者进行DOM查询等。当你修改组件的数据时,Vue不会立即更新DOM,而是将所有的更改缓存起来,在一次变更后批量更新DOM。,我们可以有效地管理Vue应用程序中的DOM操作,确保这些操作总是在DOM更新之后执行。在复杂的多级嵌套组件中,父组件可能需要在子组件的DOM更新后执行某些操作。

2024-09-10 16:36:10 823

原创 经验笔记:在 TypeScript 中使用回调函数

首先,我们需要定义一个回调函数。通常,回调函数接受一些参数,并且可能返回一个值。/**type 是 TypeScript 中用于定义类型别名的关键字。通过 type,你可以给一个类型起一个新名字,这有助于提高代码的可读性和重用性。使用 type 定义回调函数的类型是一种常见做法,特别是在需要频繁使用同一类型的情况下。**//// 使用函数类型定义回调函数/**这里定义了一个名为 CallbackFunction 的类型别名,它表示一个接受一个 number 类型参数并且没有返回值的函数。

2024-09-10 16:09:29 1449

原创 经验笔记:在 TypeScript 中使用 Promise

Promise是 JavaScript 中用于处理异步操作的一种机制。它代表了一个最终可能完成也可能失败的异步操作的结果。一个Promise可以处于三种状态之一:pending(进行中)、fulfilled(已成功)或 rejected(已失败)。一旦Promise被解决或拒绝,它的状态就无法改变。通过使用.then()和.catch()方法,可以有效地处理Promise的成功和失败情况。在实际应用中,通常推荐使用.then()来处理成功的情况,并使用.catch()来处理失败的情况。

2024-09-10 15:29:15 1126

原创 经验笔记:Web开发中的异步与同步编程

在实际开发中,根据不同的应用场景和需求,开发者可以选择最适合的技术来实现异步逻辑。Promise的主要优势在于它可以避免“回调地狱”(Callback Hell),即嵌套的回调函数导致的代码可读性和可维护性降低的问题。通过使用Promise和async/await,开发者可以更好地管理和编写异步代码,从而提高代码的可读性和维护性。Generator函数是一种特殊的函数,它可以用来创建迭代器,支持在函数执行过程中暂停和恢复执行。回调函数是最早的异步编程模式之一,它是指在一个异步操作完成后调用的函数。

2024-09-10 15:03:31 1043

原创 经验笔记:JavaScript 中的循环

循环是编程中不可或缺的一部分,用于重复执行一段代码直到满足某个条件。JavaScript 支持多种循环结构,每种结构都有其适用场景。本文将详细介绍 JavaScript 中的循环结构及其用法,并提供一些实践中的应用案例。

2024-09-10 09:29:48 693

原创 经验笔记:JavaScript 中的对象

JavaScript 中的对象是核心数据结构之一,它支持键值对的形式来存储数据,并且可以包含函数(称为方法)。对象是面向对象编程的基础,同时也是实现复杂数据结构的关键。本文将详细介绍如何在 JavaScript 中创建、操作和使用对象。

2024-09-10 09:18:50 653

原创 经验笔记:JavaScript 数据类型与 Symbol

Symbol是 ES6 引入的一种新的原始数据类型,它的主要目的是提供一个唯一且不可变的标识符。Symbol类型的一个关键特性是它生成的值总是唯一的,这使得它非常适合用来创建对象的私有属性或其他需要唯一标识符的场合。

2024-09-10 08:59:27 606

原创 经验笔记:JavaScript中的call, apply, 和 bind

不会立即执行函数,而是返回一个新的绑定后的函数,这个新函数可以在未来的某个时刻被调用。的一个常见场景是,当你想要复用一个方法但是需要改变其上下文时,比如从一个对象的方法变为另一个对象的方法。下面是对这三个方法的详细解析,以及它们在实际开发中的应用场景。是函数对象的三个内置方法,它们为开发者提供了强大的工具来控制函数调用时的。的一个典型用途是将类数组对象转换为真正的数组,然后传递给函数处理。方法创建一个新的函数,当这个新函数被调用时,它的。是一个数组,包含所有要传递给函数的参数。则是传递给函数的参数列表。

2024-09-10 08:07:32 505

原创 经验笔记:框架(Framework)与库(Library)

框架和库都是现代软件开发的重要组成部分,它们各自适应不同的场景和需求。框架更适合那些希望快速搭建起整个应用架构的开发者,而库则更适合那些需要特定功能且希望保持代码灵活性的开发者。理解框架与库之间的区别,有助于开发者在项目初期做出明智的选择,从而提高开发效率,保证项目的成功实施。选择合适的工具对于软件开发至关重要。无论你是使用框架还是库,关键是了解它们各自的优缺点,并根据项目需求和个人喜好作出选择。希望这篇经验笔记能为你提供一些有价值的见解。

2024-09-09 16:54:19 547

原创 经验笔记:软件许可(License)

选择适当的软件许可证对于软件开发者至关重要,因为它不仅决定了软件的分发方式,还反映了开发者的理念。不同的许可证有着不同的优势,并适用于不同的应用场景。专有软件许可特点:专有软件许可通常限制了软件的使用、复制、分发及修改的权利。这类许可证的主要目的是保护软件开发者的知识产权,并通过销售软件或其使用权来获取经济收益。优势控制力:企业可以通过专有许可控制软件的使用范围,确保软件不会被未经授权的第三方使用。技术支持:专有软件往往伴随着高质量的技术支持和服务,确保用户能够顺利解决问题。定制化。

2024-09-07 17:19:31 1735

原创 经验笔记:SOA(面向服务的架构)

SOA是一种强大的架构模式,它通过将应用程序分解为独立的服务,提高了系统的灵活性、可维护性和可扩展性。在实施SOA时,重要的是要遵循上述最佳实践,并根据具体的业务需求和技术环境定制解决方案。随着技术的发展,诸如微服务架构等新的设计理念也在不断涌现,它们继承和发展了SOA的思想,进一步推动了分布式系统的现代化进程。SOA强调将应用程序的不同功能封装为独立的服务,这些服务通过标准接口相互作用。这种架构方式促进了组件的重用性和系统的互操作性,有助于提高开发效率和降低维护成本。

2024-09-07 16:35:33 655

原创 经验笔记:CAP理论

例如,对于一个要求严格一致性的金融交易系统,可能会选择CP模型,即在出现网络分区时,牺牲系统的部分可用性以确保数据的一致性。而对于像社交媒体这样的系统,可能更倾向于AP模型,允许在短暂的时间内返回陈旧的数据,但保证系统始终可用。通过权衡一致性、可用性和分区容错性之间的关系,我们可以构建出既能满足业务需求又能在面对网络故障时保持稳定运行的系统。对于那些需要持续不间断运行的应用来说,如在线购物平台,高可用性是至关重要的。分区容错性是指在系统各部分之间的网络连接部分或全部失效的情况下,系统依然能够正确地运行。

2024-09-07 16:31:19 531

原创 经验笔记:SQL调优

通过对查询语句、数据库配置、硬件资源等方面进行优化,可以显著提升数据库性能,进而增强应用程序的整体表现。命令,我们可以看到查询计划,并确认是否使用了索引。:在连接查询中,如果有一个小表和一个大表,应该优先使用小表来驱动大表,以减少处理的数据量。确保开发团队有足够的知识来编写高效的SQL查询,并了解数据库的最佳实践。实施后,再次进行性能测试,评估优化措施的效果,并根据需要继续调整。:使用连接查询而不是子查询,以减少临时表的创建,提高查询效率。对于耗时的操作,可以采用异步处理的方式,如队列或消息传递系统。

2024-09-07 16:10:52 1666 1

原创 经验笔记:NAT穿越技术

NAT穿越技术是一种使位于不同NAT网络中的主机能够直接通信的技术。NAT(Network Address Translation,网络地址转换)是一种将私有IP地址转换为公有IP地址的技术,使得多个使用私有IP地址的设备可以通过一个单一的公有IP地址访问互联网。然而,这也带来了问题,即位于不同NAT网络中的主机难以直接建立通信连接,因为它们只能看到自己的私有IP地址,而不知道对方的确切公有IP地址和端口号。这就需要NAT穿越技术来解决这一问题。

2024-09-07 15:34:09 1159

原创 经验笔记:MQTT(Message Queuing Telemetry Transport)

MQTT是一个基于客户端-服务器架构的消息协议,采用发布/订阅模式。客户端可以订阅感兴趣的主题,并向这些主题发布消息。MQTT的设计目标之一是保持低开销和低带宽消耗,使其非常适合移动设备和嵌入式系统。MQTT以其高效、轻量和灵活的特点,在物联网及其他需要实时通信的应用中得到了广泛应用。通过合理的配置和安全措施,MQTT可以为企业和个人用户提供可靠的消息传输解决方案。

2024-09-07 14:54:17 482

原创 经验笔记:前端堆栈分配

在前端开发中,“堆栈分配”通常不是一个直接涉及的概念,因为现代前端开发语言如JavaScript已经很大程度上抽象掉了底层的内存管理。然而,理解JavaScript中的内存管理机制对于避免内存泄漏和优化应用性能至关重要。本文档将探讨前端中的内存管理基础知识,以及如何避免内存泄漏和优化内存使用。defer:适用于需要按顺序执行的脚本,且脚本执行依赖于文档解析完成的情况。async:适用于可以并行加载和执行的脚本,且脚本执行顺序不重要的情况。通过合理使用defer和async。

2024-09-07 10:33:51 1595

原创 经验笔记:Spring Boot项目结构

在 Spring Boot 中使用自定义注解可以增强代码的可读性和可维护性。例如,可以通过自定义注解来实现日志记录、权限控制等功能。自定义注解通常需要配合 AOP(面向切面编程)来实现。合理的项目结构对于开发高效、可维护的应用程序至关重要。Spring Boot 项目通常遵循上述结构,以确保代码的组织性和清晰度。通过将不同的组件分离出来,不仅提高了代码的可读性和可维护性,还使得项目的扩展和维护变得更加容易。此外,自定义注解和配置类的使用进一步增强了项目的灵活性和功能性。

2024-09-06 20:32:33 1406 1

原创 经验笔记:IM系统中的点对点传输

综上所述,P2P传输为IM系统带来了诸多优势,但也需要克服一些技术上的难题。通过合理的技术选型和实现方案,可以有效解决这些问题,实现高效、安全的即时消息传输。未来,随着技术的进步,P2P传输有望在更多的IM系统中得到广泛应用,为用户提供更加优质的服务体验。在传统的IM系统中,所有的消息都需要通过中心服务器进行路由,这不仅增加了服务器的压力,也可能带来隐私泄露的风险。P2P传输则可以让消息直接在用户之间传输,减少了中间环节,提高了传输效率,并增强了通信的安全性。

2024-09-05 20:52:16 587

原创 经验笔记:NoSQL数据库及其缓存方法实践

NoSQL数据库是非关系型数据库的一种泛称,它涵盖了多种类型的数据库系统,如键值存储、文档数据库、列族存储和图数据库等。NoSQL数据库的核心设计理念是简化存储模型,提高数据处理的效率和扩展性。灵活性:NoSQL数据库支持动态模式,允许数据结构的变化而不必改变数据库结构。可扩展性:NoSQL数据库通常设计为分布式架构,易于通过添加更多节点来水平扩展。高性能:由于其设计初衷是为了处理大规模数据,因此在读写性能上通常优于关系型数据库。

2024-09-05 20:30:16 1298

原创 经验笔记:数据库性能优化

数据库性能优化是一个持续的过程,需要从多个角度综合考虑。通过合理的索引设计、高效的查询编写、适当的数据库结构调整、应用程序优化、数据库配置调整以及利用监控工具,我们可以有效地提高数据库的性能。同时,持续的学习和实践是保持数据库高效运行的关键。在当今数据驱动的世界里,数据库性能直接影响到应用程序的响应时间和用户体验。最后,不断学习新的技术和方法,并将其应用于实践中。随着技术的发展,新的优化手段也在不断涌现,保持学习的心态将有助于不断提升数据库性能。编写高效的SQL查询是优化数据库性能的基础。

2024-09-05 20:06:13 625

原创 经验笔记:跨站脚本攻击(Cross-Site Scripting,简称XSS)

当其他用户浏览该页面时,嵌入的脚本就会被执行,从而可能对用户的数据安全构成威胁。:攻击者构造一个包含恶意脚本的URL,当用户点击这个链接时,恶意脚本会作为查询字符串的一部分发送到Web应用,如果Web应用没有正确处理这个输入,则会将其反射回响应中并在用户的浏览器中执行。:利用现代浏览器的安全功能,如沙箱(Sandbox)模式,它可以限制iframe内的脚本执行能力,从而减少XSS攻击的影响。:对用户的编辑和发布权限进行严格控制,特别是那些能够影响到其他人看到的内容的用户。

2024-09-05 19:42:47 1315

原创 经验笔记:Feeds流设计与实现

Feeds流是一种动态的消息或内容展示方式,常见于社交媒体、新闻应用、博客平台等。它按照一定的逻辑(通常是时间顺序或算法推荐)将内容展现给用户。设计一个好的Feeds流不仅需要考虑技术实现,还要注重用户体验和内容质量。设计和实现一个高效的Feeds流系统,需要综合考虑用户体验、技术实现、内容质量和安全性等多个方面。通过合理的架构设计和技术选型,辅以有效的垃圾信息处理机制,可以为用户提供一个流畅、安全、有趣的信息流体验。随着技术的发展,未来的Feeds流还将不断进化,更好地服务于用户。

2024-09-05 19:20:47 614

空空如也

空空如也

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

TA关注的人

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