- 博客(149)
- 收藏
- 关注
原创 clip——手写数字识别
因为dataloader随机返回的批次(比如 64 个样本),可能存在 “缺少某些数字”(比如没有数字 7)或 “某个数字重复多次”(比如数字 2 有 8 个)的情况,无法满足对比学习的需求 —— 所以必须筛选。从随机批次中,先筛选出‘包含 0-9 所有数字’的批次,再从这个批次中挑出‘每个数字各 1 个’的样本,最终得到 10 张图 + 10 个标签的标准对比批次,为后续计算图文相似度和对比损失铺路。内部调用 self.forward(x) → 最终返回 forward 的输出结果,赋值给 out。
2025-09-18 23:14:50
353
原创 overleaf
centering 居中显示\includegraphics[]{} —— []写尺寸等参数,{}写哪张图片(图片需要上传到目录中)\caption{} 图片标题,可以自动编号。
2025-09-05 12:19:44
814
原创 wandb 入门
实验结果出来后,可以在project里找到项目。每个项目可以有很多次实验(runs),可以用不同的模型,用不同的参数,或者用不同的数据。Workspace——>System 显示的是系统资源的消耗情况(比如GPU的使用情况)Artifacts:资产(指数据集、模型、代码等版本化管理对象)Sweeps:超参数扫描,自动调参。
2025-08-29 14:36:39
1121
原创 Shell 入门
sh.pyShell 的本质是ls简言之,如果把 操作系统内核(如 Linux 内核、Windows 内核) 看作 “电脑的发动机”(负责硬件调度、资源分配等核心工作),那么就是 “发动机的操作面板”—— 它是用户与操作系统内核之间的 “桥梁”,让用户能通过输入命令,间接控制内核完成各种任务(如创建文件、启动程序、管理进程等)。
2025-08-28 21:37:01
1277
原创 RL代码实践 02——策略迭代
则在状态转移move函数中,直接返回原地状态和reward=0(因为游戏结束了,不会再有状态转移,让它待在原地不动,没有奖惩);在get_value函数中,终止状态的value为0(因为后续一直待在原地,奖惩一直为0);某状态的 state value = 各个动作的q值 * 各个动作的概率 之和,对于特定的状态(格子)s,采取特定的动作a后,能到达的下一状态已知且概率已知,在get_pi函数中,终止状态无需策略,后面打印时打印陷阱或终点的图标即可。已知对于每个格子,可选的动作有4种,分别往上下左右走。
2025-08-10 22:53:56
398
原创 MCP入门
mcp(model context protocol,模型上下文协议)标准化协议:让大模型用统一的方式来调用工具,是llm和工具之间的桥梁A2A:Agent-to-Agent协议。
2025-05-01 12:26:52
816
原创 小程序学习(五)
创建miniprogram文件夹,将主代码文件放进去(pages,components,utils;在终端打开npm init -y 生成一个package.json3.修改project.config.json注意看原本有没有这个选项检验有无生效构建npm(error就重新打开此项目)能成功构建就好集成sass在settings中继续设置"useCompilerPlugins":[“sass”],将.wxss改成.scss。
2025-04-27 19:29:44
713
原创 小程序学习(三)
开发——指南——自定义组件为什么要用Component构造页面?因为Component方法比Page方法强大很多(比如有数据监听器),可以实现更加复杂的页面逻辑开发// 小程序页面也可以使用Component方法进行构造// 注意:// 1.要求.json中包含usingComponents字段// 2.配置项要和Component中的配置项保持一致// 3. Page中原有的一些钩子函数、事件监听方法也要放在methods对象中。
2025-04-04 17:41:34
113
原创 小程序学习(二)
url地址、method请求方式、data想要什么数据(这里 data 是个空对象 {},意思就是这次没有额外的特殊要求,直接要服务器默认的那部分数据就行)、header“介绍信”(包含一些关于你这次请求的基本信息,比如你用什么 “语言”(数据格式)和服务器交流。以使用 numList: [this.data.numList, newArr](这种写法没有使用扩展运算符,它会把 this.data.numList 和 newArr 当作两个独立的元素,组成一个新的二维数组)。newArr] 是正确的写法;
2025-03-29 20:19:31
1079
原创 小程序学习(一)
什么是微信小程序?轻量级,触手可及,无需安装卸载,用完即走主体文件——作用于全局(每个页面),必须放在根目录下app.js:小程序入口文件(必须)app.json:全局配置文件(必须)app.wxss:全局样式主体文件文件名必须是app页面文件——作用于单个页面,放在pages目录下,且是一个页面一个index文件夹.js:页面逻辑(必须).json:配置.wxml:页面结构(必须).wxss:页面样式components:存放每个页面里的公共组件。
2025-03-25 18:09:01
632
原创 (三)清洗数据
df = df.rename(index={…}) #旧名作为键,新名作为值注意要重新赋值,才能改变原有的或者也可以加入参数,inplace=True,表示在原地操作注意:不可以用df = df.rename(index={…}, inplace=True) ,因为原地操作没有返回值,再赋值会使原来的变为nonestr是Series类自带的一个属性,会返回一个包含了很多字符串相关操作方法的StringMethods类实例,可以调用这个实例里的upper方法。
2025-03-12 16:58:16
782
原创 pytorch22——手写数字识别学习记录(自用)
在分类问题中,通常使用 Softmax 函数作为输出层的激活函数,以便得到每个类别的预测概率。Dropout 可以减少神经元之间的共适应,使得模型不会过度依赖某些特定的神经元,从而提高模型的泛化能力。正则化通过约束参数的大小来控制模型复杂度,而 Dropout 通过随机丢弃神经元来增加模型的鲁棒性。28),Python 会把它当作一个普通的整数表达式,最终得到的是一个整数值 784,而不是一个元组。当元组中只有一个元素时,为了和普通的带括号的表达式区分开来,必须在元素后面加上逗号。
2025-02-14 23:55:41
386
原创 可视化实操记录(自用)
这里设置为 0.3,意味着散点图中的数据点会有一定的透明度,当数据点比较密集时,使用较低的透明度可以避免数据点相互遮挡,更清晰地展示数据的分布情况。所以cleaned_data[‘sex’] = cleaned_data[‘sex’].replace(“.”, np.nan)的意思是把 cleaned_data[‘sex’] 列中所有值为 “.” 的元素替换为 NaN。并没有创建一个新的对象,而是让 cleaned_data 和 original_data 指向内存中的同一个对象。
2025-02-14 20:27:29
750
原创 小白学做科研(自用教程)
认识CCF对期刊的分类:A类与B类。在以下网站查找论文,的来读:谷歌学术、papers with code、connect papers等。
2025-02-13 19:26:50
553
原创 Dify/RagFlow+Ollama本地部署deepseek模型(自用)
在vscode打开dify——docker这个文件夹,然后终端执行两条命令。(3)复制模型名称时,检查不要多带了空格,否则会找不到模型,引发404错误。(2)执行程序时,检查一下问题栏有没有**库无法导入的情况!(1)选择Ollama作为模型供应商,填入模型名字和基础URL。这步耗时最久,因为服务器在国外(可开节点试试)且文件较大。(2)刷新一下,并确保模型已开启,然后设置系统推理模型。1、Docker要先运行起来,才能打开dify网页!用vscode把文件打开,最后加上两行。(先复制一份,防止修改失败)
2025-02-13 15:51:45
1506
1
原创 (二)评估数据
3、数据表示一致(不同数据值实际含义相同,但表达不同,比如“一班”和“1班”。.isnull()用在DataFrame上,返回一个由布尔值组成的DataFrame。比如看列名,如果有列名叫销售额_2020,说明应该是同时包含了销售额和年份两个变量。.isnull()用在Series上,返回一个由布尔值组成的Series。每列只表示一个特征,每行只包含一个对象的信息,每个单元格只有一个值。第一次出现是False,第二次及以后出现是True,判为重复。有时候数据量太大,.info()显示不出空缺信息。
2025-02-12 14:51:55
365
原创 (一)获取数据和读取数据
languages对应的值是一个长度为3的数组,当键值对里的值是数组时,Pandas会把数组元素视为属于不同数据实例,拆分为单独的一行。更好的方法是用代码读取(比用软件读取更快),转换成DataFrame。然后用Pandas库里的方法,想看几行看几行。对于1GB+以上的csv数据集,如果用excel打开,很可能会卡到崩溃。默认把第一行作为列名,如果本身没有header,而是以实际数据开头,可以设置header=None(表示不要把第一行当成列名)默认展示20列,如果想提升展示的列数上限,可以用。
2025-02-12 13:19:42
322
原创 Pandas入门
可以加上index=[ ]参数或者直接传入字典作为参数,自动识别键值作为标签索引注意:用标签索引进行切片操作时,左闭右闭,即end是包含的如果标签索引也是整数的,则索引取值按照标签,切片时按照位置loc——用标签索引iloc——用位置索引查看某个标签是否存在:用in即可“青菜” in s3——返回True更改Series里的值:s3[“青菜”]=4.5,就会覆盖原来的值(等价于,s3.loc[“青菜”]=4.5)
2025-02-10 23:23:36
777
原创 算法篇——动态规划
往子问题方向拆分——如果dp[i][j]是回文子串,那么两端的字符必定相等,而且中间的字符串(如果有)也应该是回文子串。将问题分解为重叠的子问题,并储存子问题的解(使用字典、数组或哈希表),避免重复计算,从而提高效率。(3)初始条件:dp[0]=1,dp[1]=max(nums[0],nums[1])得方程,dp[i] = max(dp[i-1],dp[i-2]+nums[i])(1)定义状态:设dp[i]表示从第0到第i个中元素组合的最优解;即是取dp[i-1]还是dp[i-2]+nums[i],
2025-02-09 18:52:50
1161
原创 CSV数据分析智能工具(基于OpenAI API和streamlit)
一个办法是,规定响应的答案格式是字典,里面的键值表示了是什么样的内容(比如answer对应字符串内容,table表示表格,bar条形图,line折线图,scatter散点图),此时,文件对象在内存中的状态被改变,不再维护之前的文件指针位置。关闭文件后,文件指针并不会回到最开始的位置,文件对象也不再处于可用状态,无法直接获取其指针位置信息。重新打开文件时,文件指针默认会位于文件开头(除非你使用特定的模式打开文件,例如以追加模式。为了防止潜在的安全问题,在使用此功能前,你必须明确表示同意使用,也就是要把。
2025-02-06 00:09:16
859
原创 给AI用工具的能力——Agent
因为懂代码知识的是模型。因为 Python 应用场景广泛,从简单的代码执行、文件操作到复杂的网络交互、数据处理等,不同任务所需工具差异很大,所以需要用户灵活配置工具,以满足多样化的 Python 任务需求。func参数赋值为使用工具时调用的函数名或方法名,因为使用agent执行器时,调用的是invoke方法,所以把执行器的invoke方法作为参数传入即可。它可以在模块的顶层定义,不依赖于任何特定的类或对象,是全局范围内可调用的代码单元。方法:与类或对象相关联的函数,定义在类的内部,是类的一部分。
2025-02-04 20:36:39
1147
原创 给AI加知识库
Document Loader文档加载器在 langchain_community. document_loaders 里有很多种文档加载器1、纯文本加载器:TextLoader,纯文本(不包含任何粗体、下划线、字号格式)loader = TextLoader("./demo.txt") # 创建TextLoader实例,参数是文件路径docs = loader.load() # 加载文件内容将文本文件的内容加载到documents列表中。每个文档是一个Document对象,包含文本内容(
2025-02-03 18:31:15
852
原创 克隆OpenAI(基于openai API和streamlit)
是 Streamlit 提供的一个用于在应用会话期间存储和共享数据的对象,从底层实现来讲,它的行为类似于 Python 的字典(基于数据结构的灵活性不同、功能侧重点不同以及代码的可读性和维护性,建议将memory和messages分开使用,各自发挥其优势。)创建聊天消息框,并自动选择图标和样式来显示消息内容。将 AI 的回复封装成消息对象,添加到会话状态的。:创建一个聊天输入框,获取用户输入的消息。将用户输入的消息添加到会话状态的。列表中,并在界面上显示该消息。列表中,并在界面上显示该消息。
2025-02-02 23:33:34
600
原创 给AI添加记忆
除了自行构建带记忆的对话链之外,langchain还提供了现成可用的链——1、创建链:创建对话需要的模型和记忆,代入ConversationChain里2、使用链:自动将用户输入并入历史消息里。不需要手动加载记忆。自动将上一轮对话中的回答加入历史消息里。即不需要手动存入记忆。3、带提示模板的注意:模板里表示用户输入的变量名必须得是input,表示历史消息的变量名必须得是history。
2025-02-02 10:22:42
633
原创 视频脚本生成器(基于openai API和streamlit)
5、如果在使用 Streamlit 的 number_input 函数时仅设置了 min_value 和 max_value,而没有指定 value 参数,那么数字输入框的初始值会默认为 min_value。st.write:会根据输入内容以不同样式显示,如普通文本正常显示,Markdown 文本会进行相应的格式渲染,列表和字典会以表格形式展示。只需要导入这个函数就可以使用其功能,而不需要关心其内部实现细节和相关的导入语句,即不需要再次导入openai相关的库。2、st.title:主标题。
2025-01-31 18:02:29
675
原创 AI应用部署——streamlit
上传文件,把真正的项目源代码文件拖进框里(注意不包括venv这种虚拟环境相关的文件)删除文件:进入文件里,点击右上角的三点,注意也需要commit changes。requirements.txt里既包括自己安装过的库,也包括这些库的依赖库。因为streamlit的社区云服务会从Github仓库里拉取代码。如何把项目部署到一个具有公网ip地址的服务器上,让他人看到?更新文件:把同名文件上传即可覆盖。
2025-01-31 10:35:02
435
原创 Streamlit入门
Streamlit 是一个用于快速构建数据应用的开源 Python 库,由 Streamlit 公司开发并维护。它极大地简化了从数据脚本到交互式 Web 应用的转化过程,让开发者无需具备前端开发的专业知识,就能轻松创建出美观、实用的交互式应用。Streamlit≈前端框架+后端框架+云服务器。
2025-01-31 09:36:25
2976
原创 langchain基础(三)
prompt | model | output_parser 把提示值传给模型,又把模型输出传给解析器。链让我们组合出复杂的流程,通过langchain表达式语言,组件之间的上下游关系也能表现得很清晰明了。提示模板、聊天模型和输出解析器都实现了langchain的runnable接口,(注意:链里聊天模型可以换成语言模型,提示模板和输出解析器也不是必须有的)| 表示把前面组件的输出作为后面组件的输入,也就是“管道操作”。把对多个组件的一系列调用,称为“链”(Chain)。都具有invoke方法(
2025-01-28 12:12:13
564
原创 langchain基础(二)
因为给ai学习的问答对示例的格式差不多, 所以可以用模板。1、ChatPromptTemplate用于创建包含系统、用户和AI角色消息的模板(构建聊天提示模板),FewShotChatMessagePromptTemplate用于创建少样本学习的提示模板,它基于多个示例来引导模型生成特定格式的输出。都是from_messages方法构建模板,invoke方法填充变量。from_messages不仅可以接收元组作为消息列表的元素,也接收提示模板作为元素。
2025-01-28 11:15:25
1185
原创 langchain基础(一)
模型又可分为语言模型(擅长文本补全,输入和输出都是字符串)和聊天模型(擅长对话,输入时消息列表,输出是一个消息)两大类。以调用openai的聊天模型为例,先安装langchain_openai库。
2025-01-26 22:53:13
653
原创 langchain介绍
1、没有记忆,记不住上一次提问2、上下文窗口有限,不能一次喂给它太大的信息量,比如处理大文档就不行3、不擅长做计算(根本不做计算,只是猜测下一个最可能出现的token,用它来回答)1、用python列表来储存之前的消息,在下次提问时把历史对话一块发给AI——有记忆2、将长文档的内容先转换成向量,存储到向量数据库;然后在用户提问后,利用相似性搜索,把和问题相关的段落提取出来,一块发给AI——只接收和问题相关的段落,而不是整个文档。
2025-01-26 12:39:47
360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅