自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [特殊字符] Python f-string 全攻略:从入门到大师,让你的编码效率翻倍!

f-string是 Python 3.6 引入的一种字符串格式化方法。通过在字符串前加f或F前缀,直接在{}中嵌入变量或表达式。相比传统的格式化和方法,f-string执行速度更快,并且支持复杂的格式化操作,如数字精度控制、对齐、日期格式化等,甚至可用于代码调试。# 输出: _______Python_______# 输出: #######Python#######

2025-05-26 16:35:00 126

原创 张高兴的大模型开发实战:(六)在 LangGraph 中使用 MCP 协议

MCP(Model Context Protocol,模型上下文协议)是一种专为大语言模型设计的开源通信协议,使用 MCP 可以标准化模型与外部数据源、工具或服务之间的交互。也就是说通过 MCP 协议,可以使模型具备调用外部工具的能力,比如获取数据、执行外部操作等。

2025-05-21 18:00:00 810

原创 为什么要对程序进行调试

目录在软件开发中,是程序从“能运行”到“能正确运行”的关键步骤。调试是指通过对程序、硬件或系统的错误进行定位、分析和修复的过程,可以帮助开发人员发现并解决程序中的逻辑错误、语法错误、运行时错误等问题,保证软件的正确性和可靠性。让我们从一段简单的 Python 代码开始,这段代码的功能是计算一组数字的平均值。这段程序看起来一切正常,但如果将datadata = []。这个错误是因为我们试图用零来除以一个数,程序在处理空列表时没有考虑边界情况。虽然代码逻辑看似简单,但隐藏的问题可能在特定条件下暴露出来。

2025-04-21 18:47:00 811

原创 张高兴的大模型开发实战:(五)使用 LLaMA Factory 微调与量化模型并部署至 Ollama

目录LLaMA Factory 是一个开源的全栈大模型微调框架,简化和加速大型语言模型的训练、微调和部署流程。它支持从预训练到指令微调、强化学习、多模态训练等全流程操作,并提供灵活的配置选项和高效的资源管理能力,适合开发者快速定制化模型以适应特定应用场景。下面通过一个简单的示例来展示如何使用 LLaMA Factory 进行模型微调并部署至 Ollama。

2025-04-17 17:23:00 774

原创 张高兴的大模型开发实战:(四)使用 LangGraph 实现多智能体应用

在 LangChain 中,使用链(chain)来定义用户与 LLM 交互的行为,即智能体。链是一个可调用的对象,接收输入并返回输出。在chainssummary.py和,分别用于提取关键词和生成回答。├── chains # 智能体在文件中,定义了GraphState类,用于存储图的状态信息。"""定义图状态的类型字典。用于表示图中的状态信息。"""model_name: str # 使用的模型名称。

2025-04-06 16:00:00 951

原创 张高兴的大模型开发实战:(三)使用 LangGraph 为对话添加历史记录

目录在构建聊天机器人时,对话历史记录是提升用户体验的核心功能之一,用户希望机器人能够记住之前的对话内容,从而避免重复提问。LangGraph 是 LangChain 生态中一个工具,通过将应用逻辑组织成有向图(Graph)的形式,可以轻松实现对话历史的管理和复杂的对话流程。本文将通过一个示例,展示如何使用 LangGraph 实现这一功能。在上一篇博客中提到,链(Chain)在 LangChain 中是一种基本的构建块,用于将多个 LLM 调用和工具调用链接在一起。

2025-03-25 14:57:00 918

原创 张高兴的大模型开发实战:(二)使用 LangChain 构建本地知识库应用

LangChain 是一个大语言模型(LLM)编程框架,其目的是简化基于大语言模型的应用开发,统一不同大模型的调用方式,开发者无需关心底层 API 差异。Ollama 是一个开源的本地大语言模型运行框架,其目的是简化在本地设备上部署和运行大型语言模型的流程。它通过容器化管理和标准化接口,让用户能够快速、便捷地使用如 Qwen、Deepseek 等主流模型,无需复杂配置。

2025-03-18 14:59:00 870

原创 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫

Selenium 由 Jason Huggins 于 2004 年发起,最初名为 JavaScript Testing Framework,后因受到希腊神话中“月亮女神 Selene”的启发而更名为 Selenium。它最初是为了解决网页自动化测试需求而诞生的开源工具,但因其能模拟真实浏览器操作(如点击、输入、滚动等),也被广泛用于网页数据爬取。爬虫工具有很多,例如 BeautifulSoup4,为什么选择自动化测试工具 Selenium 进行爬虫?

2025-03-11 14:16:00 55

原创 张高兴的 Raspberry Pi AI 开发指南:(三)将自定义模型编译为 Hailo NPU 的 .hef 模型

目录在上一篇博客中,探讨了如何使用 Python 和中预编译的模型来实现目标检测。本篇博客将深入介绍如何将用户自定义训练的模型转换并优化为能够在 Hailo NPU 上高效运行的.hef模型。

2024-12-10 13:59:00 1079 1

原创 张高兴的 Raspberry Pi AI 开发指南:(二)使用 Python 和 HailoRT 进行实时目标检测

目录在上一篇博客中,探讨了使用通过 JSON 文件配置并运行目标检测示例程序。虽然这种方法可以实现有效的检测,但它限制了开发者直接在代码中利用检测结果的能力。因此,在本篇博客中,将深入探讨如何借助 HailoRT Python API 调用神经处理单元(NPU),以实现在 Python 程序中的目标检测功能。

2024-12-09 20:46:00 1210 1

原创 张高兴的 Raspberry Pi AI 开发指南:(一)Hailo-8 配置

目录2024 年 6 月,Raspberry Pi AI Kit 发布,将 M.2 HAT+ 与 Hailo-8 AI 加速模块捆绑在一起,使 Raspberry Pi 具有了运行 AI 程序的能力。Hailo-8 是由以色列公司 Hailo 开发的一款高性能边缘 AI 处理器(NPU),它专为低功耗、高效率的深度学习推理任务设计,可以提供高达 26 TOPS 的计算能力,适用于各种边缘计算场景。本文主要介绍 AI Kit(AI HAT+)在 Raspberry Pi 5 上的配置和使用。

2024-12-01 15:53:00 3151 2

原创 张高兴的 MicroPython 入门指南:(三)使用串口通信

串口是串行接口的简称,这是一个非常大的概念,在嵌入式中串口通常指UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)。使用串口进行的通信叫做串行通信,与之相对的一个概念是并行通信。串行通信是指数据一位一位的按顺序传输,而并行通信则是多位数据同时传输。如下图所示,DATA BUS到UART 1之间是并行通信,UART 1到UART 2之间是串行通信。

2024-07-22 16:18:00 1948

原创 张高兴的 MicroPython 入门指南:(二)GPIO 的使用

GPIO 是 General Purpose Input Output 的缩写,即“通用输入输出”。Raspberry Pi Pico 左右两侧各有一列 GPIO 引脚, Pico 通过这两列引脚进行一些硬件上的扩展,与传感器进行交互等等。输出模式(OUTPUT)和输入模式(INPUT)。输出模式类似于一个电源,Pico 可以控制这个电源是否向外供电,比如打开外部的 LED 小灯,当然最有用的还是向外部设备发送信号。和输出模式相反,输入模式是接收外部设备发来的信号。

2024-07-07 12:47:00 92

原创 张高兴的 MicroPython 入门指南:(一)环境配置、Blink、部署

目录什么是 MicroPython环境配置硬件部分软件部分Hello World!BlinkPico 的引脚常见电子元件面包板跳线开关发光二极管电阻使你的 Pico 闪烁部署参考什么是 MicroPythonMicroPython 是一个基于 Python 3.4 的高效实现,它专为微控制器和嵌入式系统设计。它提供了一个小型的 Python 环境,包含了一些标准库的部分,并且能够在资源受限的设...

2024-06-30 15:20:00 5830

原创 如何安全地访问互联网

当你深夜在浏览器中输入 www.baidu.com 时有没有想过,除了月黑风高的夜和本机的浏览记录,还有谁知道你访问了它呢?要搞清楚这件事,首先我们要了解一下访问网站时,这其中发生了什么。如果你在 10 年之前访问网站,大概率会在浏览器的地址栏中看到这样的网址 http://www.baidu.com ,这其中网址前面的 http 表明访问网站使用的是 HTTP 协议。当你按下回车键↩︎,访问...

2024-06-10 16:42:00 1348

原创 RowHammer 攻击:内存的隐形威胁

今天看了一篇 IT 之家关于 AMD 处理器受 RowHammer 内存攻击影响的报道,心血来潮了解了一下 RowHammer 攻击的原理,把了解到的知识记录下来。RowHammer 攻击是一种相对较新的攻击方式,它利用了现代动态随机存取存储器(DRAM)的物理缺陷,这种攻击方式不同于传统的软件漏洞利用,它直接针对硬件的弱点。这种攻击利用了 DRAM 在运行过程中产生的意外电荷泄漏效应,可能导...

2024-03-27 16:09:00 485

原创 在 .NET 中使用 OPC UA 协议

目录什么是 OPC UAUaExpert 的使用下载 UaExpert首次启动添加 OPC UA 服务器连接 OPC UA 服务器查看 PLC 数据使用 C# 读写 OPC UA 数据连接到 OPC UA 服务器获取节点的值写入节点的值什么是 OPC UAOPC UA(OPC Unified Architecture,开放平台通信统一架构)是 OPC 基金会应用在自动化技术的机器对机器网络传输...

2024-03-25 15:29:00 932

原创 张高兴的 .NET IoT 入门指南:(八)基于 GPS 的 NTP 时间同步服务器

时间究竟是什么?这既可以是一个哲学问题,也可以是一个物理问题。古人对太阳进行观测,利用太阳的投影发明了日晷,定义了最初的时间。随着科技的发展,天文观测的精度也越来越准确,人们发现地球的自转并不是完全一致的,这就导致每天经过的时间是不一样的。这点误差对于基本生活基本没有影响,但是对于股票交易、火箭发射等等要求高精度时间的场景就无法忍受了。科学家们开始把观测转移到了微观世界,找到了一种运动高度稳定的...

2022-08-05 18:38:00 652

原创 张高兴的 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用

写在前面Entity Framework Core (EF Core) 是 .NET 平台流行的对象关系映射(ORM)框架。虽然 .NET 平台中 ORM 框架有很多,比如 Dapper、NHibernate、PetaPoco 等,并且 EF Core 的性能也不是最优的(这是由于 EF 的实体跟踪特性,将其禁用后可以大幅提升性能),但依然吸引到很多后端开发者的使用,原因如下:EF Cor...

2022-03-22 17:19:00 763

原创 社交网络分析的 R 基础:(六)绘图操作

R 语言强大的可视化功能在科学研究中非常受欢迎,丰富的类库使得 R 语言可以绘制各种各样的图表。当然这些与本章内容毫无关系????,因为笔者对绘制图表了解有限,仅限于能用的程度。接下来的内容无需额外安装任何包,仅使用 R 语言自带的绘图工具完成柱状图与折线图的绘制。如果对绘制的图表定制性要求较高,请搜索 ggplot2 包的相关教程。柱状图折线图保存绘制的图表柱状图R 语言中使用 bar...

2022-02-12 12:51:00 723

原创 社交网络分析的 R 基础:(五)图的导入与简单分析

如何将存储在磁盘上的邻接矩阵输入到 R 程序中,是进行社交网络分析的起点。在前面的章节中已经介绍了基本的数据结构以及代码结构,本章将会面对一个实质性问题,学习如何导入一个图以及计算图的一些属性。图的文件表示导入一个图生成人工网络图的基本分析图的文件表示在计算机中,最常见的两种表示图的基本结构是邻接矩阵和邻接表。以最简单的无权无向图为例,邻接矩阵中第 \(i\) 行第 \(j\) ...

2022-02-11 21:58:00 826

原创 社交网络分析的 R 基础:(四)循环与并行

前三章中列出的大多数示例代码都很短,并没有涉及到复杂的操作。从本章开始将会把前面介绍的数据结构组合起来,构成真正的程序。大部分程序是由条件语句和循环语句控制,R 语言中的条件语句(if-else)和 C 语言中类似此处就不再介绍,循环语句包括 for 和 while 控制块。循环是社交网络分析的主旋律,比如使用 for 循环遍历分析网络中的每一个节点。当网络规模足够大时,并行处理又变得十分必要。...

2022-02-09 14:45:00 590

原创 张高兴的 .NET IoT 入门指南:(七)制作一个气象站

距离上一篇《张高兴的 .NET Core IoT 入门指南》系列博客的发布已经过去 2 年的时间了,2 年的时间 .NET 版本发生了巨大的变化,.NET Core 也已不复存在,因此本系列博客更名为 《张高兴的 .NET IoT 入门指南》,我也重新审阅了之前的内容进行了相应的更改以保证内容的时效性。和单片机不同,使用 Linux 开发板、现成的传感器套件以及合适的后端技术几乎可以做成任何东...

2022-02-08 12:44:00 1290

原创 社交网络分析的 R 基础:(三)向量、矩阵与列表

在第二章介绍了 R 语言中的基本数据类型,本章会将其组装起来,构成特殊的数据结构,即向量、矩阵与列表。这些数据结构在社交网络分析中极其重要,本质上对图的分析,就是对邻接矩阵的分析,而矩阵又是由若干个向量构成,因此需要熟练掌握这些特殊的数据结构。向量向量的创建向量元素的访问向量的运算向量的其他常用操作矩阵矩阵的创建矩阵元素的访问矩阵的运算矩阵的特征值与特征向量列表...

2022-02-07 16:50:00 1387

原创 社交网络分析的 R 基础:(二)变量与字符串

本章会从 R 语言中最基本的数据类型开始介绍,在此之后就可以开始 R 语言实践了。对社交网络分析而言,我们在处理字符串上所花费的时间要远远大于处理数字的时间,因此本章还会介绍常用的字符串处理操作。变量字符串字符串的创建特殊字符的转义字符串的其他常用操作变量R 语言中基本的数据类型包括:整型(integer):整数,如 100;浮点型(double):小数,如 3.1...

2022-02-06 15:44:00 473

原创 社交网络分析的 R 基础:(一)初探 R 语言

写在前面3 年的硕士生涯一转眼就过去了,和社交网络也打了很长时间交道。最近突然想给自己挖个坑,想给这 3 年写个总结,画上一个句号。回想当时学习 R 语言时也是非常戏剧性的,开始科研生活时到处发邮件要源代码,发完最后一封本以为又是无功而返,很意外的收到了秒回的邮件,邮件中附上了由 R 语言编写的实验代码。当时过于开心,因为终于有热心的作者回复了,以至于没有仔细考虑,想都没想对着满是警告的代码开...

2022-02-05 15:12:00 2186

原创 张高兴的 .NET Core IoT 入门指南:(五)PWM 信号输出

什么是 PWM在解释 PWM 之前首先来了解一下电路中信号的概念,其中包括模拟信号和数字信号。模拟信号是一种连续的信号,与连续函数类似,在图形上表现为一条不间断的连续曲线。数字信号为只能取有限个数值的信号,比如计算机中的高电平(1)和低电平(0)。PWM(Pulse Width Modulation)即脉冲宽度调制,简称脉宽调制,通过对一系列的脉冲的宽度进行调制,从而等效出所需要的...

2019-10-27 19:37:00 445

原创 张高兴的 .NET Core IoT 入门指南:(六)串口通信入门

在开始之前,首先要说明的是串口通信所用到的 SerialPort 类并不包含在 System.Device.Gpio NuGet 包中,而是在 System.IO.Ports NuGet 包中。之所以在这里介绍串口通信,是因为在嵌入式中串口通信是与其他设备进行交互的一种重要方式,而且在某些没有屏幕的设备中充当着程序调试的工具。什么是串口串口是串行接口的简称,这是一个非常大的概念,在...

2019-10-20 20:00:00 2042

原创 张高兴的 .NET Core IoT 入门指南:(四)使用 SPI 进行通信

张高兴的 .NET Core IoT 入门指南:(四)使用 SPI 进行通信 什么是 SPI和上一篇文章的 I2C 总线一样,SPI(Serial Peripheral Interface,串行外设接口)也是设备与设备间通信方式的一种。SPI 是一种全双工(数据可以两个方向同时传输)的串行通信总线,由摩托罗拉于上个世纪 80 年代开发[1],用...

2019-05-29 14:49:00 1031 1

原创 张高兴的 .NET Core IoT 入门指南:(三)使用 I2C 进行通信

什么是 I2C 总线I2C 总线(Inter-Integrated Circuit Bus)是设备与设备间通信方式的一种。它是一种串行通信总线,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展[1]。I2C 总线包含两根信号线,一根为信号线 SDA ,另一根为时钟线 SCL 。总线上可以挂载多个设备,以 7 位 I2C 地址为例,总线上最多可以挂载 27 - 1 ...

2019-05-22 21:40:30 433

原创 张高兴的 .NET Core IoT 入门指南:(二)GPIO 的使用

张高兴的 .NET Core IoT 入门指南:(二)GPIO 的使用 什么是 GPIOGPIO 是 General Purpose Input Output 的缩写,即“通用输入输出”。 Raspberry Pi 有两行 GPIO 引脚, Raspberry Pi 通过这两行引脚进行一些硬件上的扩展,与传感器进行交互等等。Raspberr...

2019-01-27 20:48:00 2533

原创 张高兴的 .NET Core IoT 入门指南:环境配置、Blink、部署

获取最佳阅读体验请访问:https://zhangyue.xin 如何在 Raspberry Pi 的 Raspbian 上构建使用 GPIO 引脚的 IoT 程序?你可能会回答使用 C++ 或 Python 去访问 Raspberry Pi 的引脚。现在,C# 程序员可以使用 .NET Core 在 Raspbian(Linux) 上构建 IoT 应用程序。只需要引入 System.Devi...

2019-01-23 22:01:57 1269

原创 张高兴的 .NET Core IoT 入门指南:(一)环境配置、Blink、部署

如何在 Raspberry Pi 的 Raspbian 上构建使用 GPIO 引脚的 IoT 程序?你可能会回答使用 C++ 或 Python 去访问 Raspberry Pi 的引脚。现在,C# 程序员可以使用 .NET Core 在 Linux 上构建 IoT 应用程序。只需要引入 System.Device.Gpio NuGet 包即可。 提示 因为 .NE...

2019-01-23 21:41:00 315

原创 翻译:使用红外传感器与Arduino进行简单动作与手势检测

译注:昨天看 Adruino 的 Twitter 推了这篇项目,第一眼就觉得非常有趣,翻译给大家看看。文中的红外传感器比较高级,和淘宝上5块钱的那种只能输出0和1的不一样, TPA81 是可以输出温度的,还是8个连续点。 MLX90614 可以输出一点的温度,还卖将近三十,可以想象 TPA81 的价格……而且淘宝上并没有卖 TPA81 的,可见国内还没有仿的。文章也给出了另一个解决方案,...

2018-09-23 00:10:00 6876

原创 网络唤醒(WOL)全解指南:原理篇

什么是网络唤醒网络唤醒(Wake-on-LAN,WOL)是一种计算机局域网唤醒技术,使局域网内处于关机或休眠状态的计算机,将状态转换成引导(Boot Loader)或运行状态。无线唤醒(Wake-on-Wireless-LAN,WoWLAN)作为 WOL 的补充技术,使用无线网卡去唤醒计算机。网络唤醒在一般的局域网环境里使用有限广播地址(255.255.255.255)即可,由于路由器都不转发...

2018-09-17 17:02:16 13963

原创 将博客搬至CSDN

将博客搬至CSDN

2018-09-17 16:53:00 166

原创 网络唤醒(WOL)全解指南:原理篇

什么是网络唤醒网络唤醒(Wake-on-LAN,WOL)是一种计算机局域网唤醒技术,使局域网内处于关机或休眠状态的计算机,将状态转换成引导(Boot Loader)或运行状态。无线唤醒(Wake-on-Wireless-LAN,WoWLAN)作为 WOL 的补充技术,使用无线网卡去唤醒计算机。网络唤醒在一般的局域网环境里使用有限广播地址(255.255.255.255)即可,由于路由器...

2018-09-16 21:36:00 16850

原创 合肥、黄山旅行指南

写在前面时间路线花费2018/8/6 - 2018/8/11徐州→合肥→黄山→徐州1700本来只是打算爬爬黄山,我看高铁路过合肥,想着一趟车票这么贵,不如来合肥看看,好歹也是安徽省会,就加了合肥一站。整个行程花费大约1700+,其中路费和住宿占比约50%+,剩下的支出大部分也都是在黄山花的,门票太贵了。路线概览合肥Day 01 8/6下午2...

2018-08-19 09:44:00 777

原创 极限编程核心价值:尊重(Respect)

原文:https://deviq.com/respect极限编程核心价值:简单(Simplicity)极限编程核心价值:沟通(Communication)极限编程核心价值:反馈(Feedback)极限编程核心价值:尊重(Respect)极限编程核心价值:勇气(Courage)尊重(Respect)尊重(Respect)是极限编程(Extreme Programming,...

2018-07-12 22:31:00 509

原创 极限编程核心价值:勇气(Courage)

原文:https://deviq.com/courage极限编程核心价值:简单(Simplicity)极限编程核心价值:沟通(Communication)极限编程核心价值:反馈(Feedback)极限编程核心价值:尊重(Respect)极限编程核心价值:勇气(Courage)勇气(Courage)勇气(Courage)是极限编程(Extreme Programming,...

2018-07-12 22:31:00 1366

空空如也

空空如也

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

TA关注的人

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