- 博客(325)
- 收藏
- 关注
原创 TCP和UDP的区别
TCP和UDP各有优缺点,TCP可靠但速度慢,UDP速度快但不可靠。在实际应用中,需要根据具体的需求选择合适的协议。如果对数据可靠性要求高,就选择TCP;如果对速度要求高,就选择UDP。
2025-04-10 16:28:23
67
原创 SQL注入(SQL Injection)
SQL注入是一种常见的网络安全攻击手段,攻击者通过在输入字段中插入恶意的SQL代码,试图干扰或篡改数据库的查询逻辑,从而获取、篡改或删除数据库中的数据。攻击者通过插入特定的SQL语句,观察应用程序的响应(通常是页面内容的变化),从而判断SQL语句是否被正确执行。如果页面显示“未找到用户”,说明SQL语句被正确执行,攻击者可以通过这种方式逐字猜测数据库中的数据。攻击者通过插入特定的SQL语句,使数据库执行耗时操作,从而判断SQL语句是否被正确执行。对用户输入进行严格的验证,确保输入符合预期的格式。
2025-04-09 18:31:01
361
原创 软件工程基础之设计模式
提供创建一系列相关或相互依赖对象的接口,无需指定具体类。应用场景:系统需要一组相互关联的对象,且希望统一创建。跨平台开发,如创建不同风格的 GUI 组件。特点:统一管理产品族,保证兼容性。新增产品类型时需要修改抽象类。代码举例:// 抽象工厂接口// 具体工厂实现@Override@Override@Override@Override// 抽象产品接口// 具体产品实现@Override。
2025-04-09 17:25:48
128
原创 SQL操作之:连接(JOIN)
常见的连接类型包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)和交叉连接(CROSS JOIN其中,左连接、右连接、全连接属于是外连接(OUTER JOIN。
2025-04-03 16:43:46
174
原创 Linux命令在搭建测试环境中的使用
在搭建测试环境时,经常需要创建、复制、移动或删除文件和目录。在搭建测试环境时,通常需要安装各种软件和服务。在测试环境中,需要启动、停止或重启各种服务。在搭建测试环境时,需要合理分配和管理资源,如。测试环境通常需要特定的网络配置,例如设置。命令提供了强大的文件系统管理功能。命令可以帮助监控和管理这些资源。命令可以帮助快速完成这些任务。命令提供了强大的服务管理功能。命令可以轻松完成这些任务。地址、子网掩码、网关等。
2025-04-03 15:28:34
53
原创 常见的进程间通信方式
管道适用于简单场景,消息队列适用于结构化数据传输,共享内存适用于高性能需求,套接字适用于跨网络通信,信号量用于同步控制,信号用于事件通知。
2025-04-03 10:03:08
646
原创 如何定位和解决 SQL 语句执行慢的问题
覆盖索引是指一个索引包含了查询中所需的所有列,使得数据库在执行查询时,只需要访问索引,而无需回表访问原始数据行。换句话说,索引本身“覆盖”了查询所需的所有信息。组合索引是基于多个列创建的索引。例如,假设有一个表orders(客户ID)order_date(订单日期)amount(订单金额)这个索引会按照order_date和amount的顺序存储数据。
2025-04-02 16:10:16
853
原创 python的内存管理机制
的引用计数仍然为 1,因为它们互相引用。即使我们删除了外部变量。,它们的引用计数也不会变为 0,因此引用计数机制无法回收它们。
2025-04-02 15:41:19
1268
原创 为什么数据库中使用索引可以提高查询效率呢
在联合索引中,索引的列是按照定义的顺序存储的。当查询条件中使用联合索引时,必须从索引的最左边的列开始匹配,否则索引可能无法被有效利用。这个索引的列顺序是name→age。查询条件中必须包含最左边的列如果查询条件中包含name,索引可以被有效利用。如果查询条件中不包含name,即使包含age,索引也无法被有效利用。查询条件可以包含索引的前缀列如果查询条件中包含name和age,索引可以被完全利用。如果查询条件中只包含name,索引也可以被部分利用。假设表studentsidnameage。
2025-04-01 16:57:13
1005
原创 springboot复习
是基于的一个开源Java基础框架,主要是为了简化应用程序的开发。比如,它设计了很多注解用来简化开发流程,像注解,只需要加在主类上,就能自动启动应用程序。比如它可以很简单地和数据库实现连接,通过启动器,配合@Entity等注解,就能快速完成数据库的配置和操作。Spring Boot:实现与数据库的连接比如它是分层的,将前后端的联系体现得非常容易理解,通过@Service等注解清晰划分各层职责,Controller层接收前端请求并调用Service层,Service层处理业务逻辑后调用。
2025-03-31 16:14:32
684
原创 使用 Python 的线程池和信号量实现并发
Python 的线程池和信号量:适合需要手动控制并发任务的场景,例如模拟并发用户访问等。通过线程池可以方便地管理并发任务,信号量可以进一步控制并发数量。
2025-03-31 11:48:31
315
原创 客户端、服务器端、cookie、session、token、sessionID
登录时服务器生成Session ID和Token。Session ID存储在 Cookie 中,由浏览器自动管理。Token存储在客户端的本地存储中。后续请求时浏览器自动携带包含Session ID的 Cookie。客户端在请求头中添加Token。服务器验证Token和Session ID,确认用户身份和会话状态。Session ID由服务器端生成,通常由 Servlet 容器自动管理。可以通过或其他方式自定义生成。Token。
2025-03-28 16:55:37
1040
原创 Python中常用的测试框架-pytest和unittest
是Python标准库的一部分,设计灵感来源于Java的JUnit框架。强调测试用例的组织结构,测试类和测试方法需要遵循一定的命名规范(如测试方法名以test开头)。不需要继承特定的类,测试函数可以是普通的Python函数,只需要以test_开头即可。提供了更灵活的测试组织方式,支持模块化测试和更自然的测试代码编写方式。运行测试时,直接在命令行中运行pytest即可,pytest会自动发现并运行以test_开头的函数。所以,如果需要更灵活的测试编写方式、强大的插件支持和更详细的测试报告,pytest更适合。
2025-03-25 11:42:49
382
原创 练习用Jupyter使用selenium【疑问未解决版】
【在 Jupyter Notebook 中,当你安装或更新了某些 Python 包后,系统会提示你重启内核,这样新的包或更新后的包才能被正确加载并使用。web自动化测试(使用selenium时),最重要也是最难的就是定位元素,定位到元素之后,就可以进行“获取元素的数据”、“输入数据”、“点击”等操作了。需要注意的是,如果已经send_keys某些内容了,此后如果再想在这个界面是输入新的内容,记得需要clear一下。我:fine~~,你提示就提示吧,我能拿你怎么办呢!
2025-03-20 17:04:55
410
原创 有个警告(最后没解决)
这个警告表明当前的Python 环境中同时加载了 Intel OpenMP (libiomp) 和 LLVM OpenMP (libomp),这可能导致随机崩溃或死锁,尤其是在 Linux 系统上。这种冲突通常发生在使用了不同编译器编译的库时(例如,NumPy 使用了 Intel MKL,而其他库使用了 GCC 或 Clang 编译)。
2025-03-14 16:16:22
419
原创 机器学习或深度学习中---保存和加载模型的方法
根据使用的框架(如 scikit-learn、TensorFlow、PyTorch),选择合适的方法保存模型的权重或结构,并在需要时加载模型进行推理或进一步训练。在机器学习或深度学习中,训练好的模型可以通过多种方式保存和加载,以便在后续使用中进行推理(预测)或进一步训练。以下是常见的保存和加载模型的方法,以 Python 中的常见库(如 scikit-learn、TensorFlow、PyTorch)为例。:保存整个模型可能限制模型的可移植性(例如,需要相同的环境和依赖),因此推荐保存和加载权重。
2025-03-11 17:43:07
718
原创 在BERT中,如何确定一个标记的重要性
你可以通过定义自己的损失函数来给特殊标记添加更高的权重。例如,如果你想要强调[CLS]标记的重要性,可以设计一个损失函数,它在计算损失时给予[CLS]标记的输出更高的权重。这可以通过修改损失函数中的权重参数来实现,使得某些标记的预测误差对总损失的贡献更大。
2024-11-15 16:15:27
809
原创 Bert模型的input_ids和attention_mask
例如,在文本分类任务中,模型通常会使用[CLS]标记的输出作为整个序列的表示,而。指导模型应该关注哪些部分的输入,两者共同确保了BERT模型能够有效且准确地处理输入数据。:BERT模型中的自注意力机制需要知道哪些标记是实际的输入,哪些是填充的。,模型将不得不处理所有的标记,包括填充的标记,这会增加不必要的计算负担。提供了这种区分,确保模型不会将注意力分配给无关的填充标记。确保了这个表示只包含了实际输入数据的信息。确保了超过最大长度的序列被截断,确保了输入被填充到最大长度,提供了模型处理的文本内容,而。
2024-11-15 16:11:30
1191
原创 Bert模型怎么用
BERT模型的输出(通常是最后一层的隐藏状态或[CLS]标记的表示)可以作为其他模型的输入,用于下游任务。作为BERT模型的输入。通过这些步骤,可以使用BERT模型对文本数据进行预处理,并将输出作为其他模型的输入,以完成各种下游任务。:使用BERT的分词器(tokenizer)对文本内容进行预处理,将文本转换为模型可以理解的。同时,需要将标签转换为适合模型输入的格式,比如分类任务中的标签索引或one-hot编码。:需要准备包含文本内容和对应标签的数据集。:在训练过程中,BERT模型会根据输入的。
2024-11-15 16:09:08
720
原创 一个复杂的 CSS 选择器
这个选择器非常具体,它精确地指向了一个深层嵌套的 DOM 元素。这种选择器通常用于确保样式或脚本只应用于特定的元素,但它们也可能使代码难以维护,因为它们对 DOM 结构的依赖性很高。如果 DOM 结构发生变化,这样的选择器可能就会失效。这段代码是一个复杂的 CSS 选择器,用于定位网页中的一个特定元素。这个选择器非常长,因为它通过层级结构精确地指向了一个深层嵌套的 DOM 元素。
2024-11-15 11:48:14
542
原创 前端::after 伪元素的使用
伪元素是一个非常强大的工具,可以用来增强网页的视觉和交互效果,而不需要添加额外的 HTML 元素。这个内容可以是文本、图片,或者其他通过 CSS 定义的样式。元素的末尾添加 " - 这是追加的文本"。属性,你可以在元素后面添加文本。如果在 CSS 中设置。
2024-11-15 11:43:50
856
原创 CPU缓存的层次结构和它们如何影响性能
CPU缓存是计算机处理器内部的快速存储区域,用于减少处理器访问主内存(RAM)所需的时间。现代处理器通常包含多个级别的缓存,即L1、L2和L3缓存,它们构成了一个层次结构,每个级别的缓存都有其特定的特性和作用。
2024-11-11 19:34:50
1210
原创 TextCNN:文本卷积神经网络模型
TextCNN(Text Convolutional Neural Network)是一种用于处理文本数据的卷积神经网(CNN)。通过在文本数据上应用卷积操作来提取局部特征,这些特征可以捕捉到文本中的局部模式,如n-gram(连续的n个单词或字符)。# 它继承自 PyTorch 的 nn.Module# __init__:类的构造函数,初始化模型,包括嵌入层、卷积层、dropout层和全连接层# 调用父类 nn.Module 的构造函数。
2024-09-12 10:37:07
1588
原创 欧几里得距离、余弦相似度、杰卡德相似系数和曼哈顿距离
欧几里得距离、余弦相似度,以及曼哈顿距离是的常用方法。每种方法适用于不同类型的数据和场景。
2024-09-06 14:20:14
1155
原创 每日读源码---Day1_similarity_search_with_score_by_vector
【代码】每日读源码---Day1_similarity_search_with_score_by_vector。
2024-09-04 16:03:25
711
原创 每日读源码---Day1_processdata
函数通过结合原始数据和指定的参数,生成了一组新的数据,这组数据模拟了真实世界中的查询场景,包括噪声和正确答案的混合。这种数据生成方法有助于训练和评估模型在处理复杂、噪声数据时的性能,从而提高模型的鲁棒性和实用性。
2024-09-04 10:32:36
405
原创 【可兼容的】protobuf、streamlit、transformers、icetk、cpm_kernels版本号
【代码】【可兼容的】protobuf、streamlit、transformers、icetk、cpm_kernels版本号。
2024-08-29 14:26:42
636
原创 jieba分词和RecursiveCharacterTextSplitter分词
中的一个文本分割工具,它基于字符递归地分割文本。这种分词方法不是基于词的边界,而是基于文本的字符长度进行分割。
2024-08-27 15:40:55
619
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人