- 博客(107)
- 问答 (3)
- 收藏
- 关注

原创 前端学习AI历程
AI基本概念tensorflow入门conda搭建环境,pycham使用训练自己的第一个模型AI目前前端方便入手的几个方向计算绩效素材图片库图像识别,在线学习低代码应用智能客服获取数据集roboflowkagglecocomakesense(用于打标)认识yolo语言训练模型,deepseek (学习中)语音转文字,文字转语音(学习中)
2024-08-02 11:13:55
420
原创 果蔬识别系统性能优化之路(四)
因为这里必须要查一次全量数据,然后存入redis并将特征值传给python端进行初始化,所以最快的方案就是舍弃数据传输,直接在python端进行查询并初始化,即在python端查全量数据+设置redis+初始化ivf,虽然不想承认,但确实把python端做重在架构和设计层面可能都是最优解,改吧。并行处理:使用多线程或多进程并行处理数据。通过断点加时间打印,发生其实初始化ivf的时间很快,慢的是数据在网络间的传输,并在python端的数据解析,无语。本地调本地,都要十秒,这不合理,改!
2024-09-11 16:56:07
1348
原创 果蔬识别系统性能优化之路(二)
目录前情提要新的问题优化训练将图片和label进行批量训练得到特征向量库验证精确率和召回率实际运用下一步前情提要果蔬识别系统性能优化之路新的问题上期试用后发现识别特别慢,通过断点和耗时打印发现虽然redis很快,担当我们把大量数据放redis进行读写时redis依然会有性能瓶颈,尤其是把特征向量这种庞大的数据集进行频繁读写时优化其实放redis初心是将识别出的索引进行映射得到真正的label值,另外,通过ivf查询后数据进一步缩小,那么这时可以利用mysql的快速查询直接得到结果先上完整代码
2024-09-11 09:44:09
1136
原创 超详细前端AI蔬菜水果生鲜识别应用优化之路
同样是为了减小数据体积,所以准备将原本mobilenet给出的1024维度的特征向量进行降维到256,数据量骤减,读取速度更快,代价是识别速度会慢一点,但相比读取速度的提升,这些代价是十分小的。先定性,带AI识别的生鲜收银机早就上市了,目前学习的只能说是别人玩剩的,但是依然收获满满,算是第一个ai识别的应用吧,关键是技术栈全是前端的,还是有一定参考价值。目前数据是存在本机,但后续一定是存服务器上的,这样不仅可以实现数据在各收银机的共用,还能为模型的增强学习提供数据集。
2024-08-23 12:03:44
634
原创 前端使用transformers进行图像识别
/ 新建一个FileReader 对象 01 序列。// transformers nlp 任务。// 启动ai任务 功能模块化, 封装出去。//model 图片对象检测。// 检测图片AI任务。// 实例化了一个对象。
2024-08-05 10:36:31
510
原创 用TensorFlow训练自己的第一个模型
icofile表示图标的位置,建议直接放在程序文件夹里面,这样子打包的时候直接写文件名就好。括号内的为可选参数,-i icofile表示给程序加上图标,图标必须为.ico格式。-w 表示隐藏程序运行时的命令行窗口(不加-w会有黑色窗口)filename表示你的Python程序文件名。
2024-08-02 10:22:55
334
原创 conda搭建环境,pycham使用
相信学习了tensorflowjs后一定不会满足,毕竟tensorflowjs使用场景以及开源度远不及pyhton的tensorflow,所以不要犹豫,开始使用python吧,有ChatGPT帮助,比想象的简单很多。
2024-08-01 15:59:05
1293
原创 tensorflow入门
建议大家直接观看这篇文章,会让你对如何构建模型和如何训练模型有一个基本了解。这里由于是前端出身,所以准备先了解tensorflowjs。
2024-08-01 15:32:50
138
原创 AI的一些概念
(人工智能): 先说说AI,这个大家可能都不陌生。AI,就是人工智能,它涵盖了各种技术和领域,目的是让计算机模仿、延伸甚至超越人类智能。想象一下,你的智能手机、智能家居设备,这些都是AI技术的应用。(AI生成内容): 接下来是AIGC,即AI Generated Content。(通用人工智能): 然后我们来看AGI,即Artificial General Intelligence,中文叫通用人工智能。这可比一般的AI高级多了。AGI的目标是创造一个能像人类一样思考、学习、执行多种任务的系统。
2024-08-01 15:27:30
983
原创 js如何控制一次只加载一张图片,加载完成后再加载下一张
一个完整的页面是由js、html、css组成的,按照解析机制,html元素会优先解析,尽管css样式是放在head标签内的,但也不意味着它会优先加载,它只有等到html文档加载完成后才会执行。再看一个例子:创建了一个div元素,然后将存放img标签元素的变量添加到div元素内,而div元素此时并不在dom文档中,页面不会展示该div元素,那么浏览器会发送请求吗?dom文档中不存在test元素时,即使设置了背景图片,也不会发送请求,只有test元素存在时才会发送请求。上面的代码如果运行起来后,就会发送请求。
2024-06-18 15:45:01
313
原创 babel runtim 和babel pollyfill
babel/preset-env:这是 Babel 官方推荐的预设之一,用于根据目标环境自动确定所需的转换和 polyfill。@babel/preset-react:用于支持 React 项目中的 JSX 和其他相关特性的预设。@babel/preset-typescript:用于支持 TS 项目中的预设,能够将 TS 代码转换为 JS 代码。
2024-06-13 10:28:08
616
原创 rust学习(第三章)
rust学习(三)fist第一个实用rust程序rust特点Rust 开发的基本内容变量和函数数据结构控制流程模式匹配错误处理Rust 项目的组织小结fist非常推荐你自己一行行敲入这些代码,边写边思考为什么这么写,然后在运行时体会执行和输出的过程如果遇到了问题,你也可以点击每个例子附带的代码链接,在 Rust playground 中运行。第一个实用rust程序通过 HTTP 请求 Rust 官网首页,然后把获得的 HTML 转换成 Markdown 保存起来。首先,我们用 cargo new
2024-03-04 16:01:39
967
2
原创 rust学习(第二章)
如果堆上内存被释放,但栈上指向堆上内存的相应指针没有被清空,就有可能发生使用已释放内存(use after free)的情况,程序轻则崩溃,重则隐含安全隐患。所以,我们无法把字符串本身放在栈上,只能先将其放在堆上,然后在栈上分配对应的指针,引用堆上的内存。如果堆上内存被多个线程的调用栈引用,该内存的改动要特别小心,需要加锁以独占访问,来避免潜在的问题。一旦当前程序的调用栈超出了系统允许的最大栈空间,无法创建新的帧,来运行下一个要执行的函数,就会发生栈溢出,这时程序会被系统终止,产生崩溃信息。
2024-02-27 17:37:17
1205
原创 rust学习(第一章)
Ferris 是 Rust 社区的非官方吉祥物。很多 Rust 程序员自称“Rustaceans”, 它与“crustacean”相似。我们用“they”、“them”等代词,而不用带性别的代词来指代 Ferris。Ferris 与形容词“ferrous”相似,它的含义与铁有关。由于 Rust(锈)通常由铁形成, 因此它算得上是个吉祥物名字的有趣来源。Cargo.toml 为 Rust 的清单文件。其中包含了项目的元数据和依赖库。,之后 Cargo 就会安装该依赖。如果出现linker。
2024-02-26 17:24:34
1147
原创 npm、yarn 与 pnpm 的逻辑区别
目录npm2的依赖管理npm3/yarn的依赖管理pnpm的依赖管理npm2的依赖管理npm2 安装依赖的时候比较简单直接,直接按照包依赖的树形结构下载填充本地目录结构。比如在项目中A和 C 都依赖 B,无论被依赖的 B 是否是同一个版本,都会直接无脑的生成对应的树结构,比如我们现在有下面的依赖:A@2.0.0:BaseA@1.0.0 BaseB@2.0.0B@3.0.0:BaseA@1.0.0 BaseB@2.0.1那么npm i之后node_modules里面生成的内容将是下面这样的这样
2022-02-09 17:48:01
501
1
原创 vue2 最后的倔强(知识点查漏补缺)
目录watch监听一个对象时,如何排除某些属性的监听computed如何实现传参?vue的hook的使用Vue的el属性和$mount优先级?动态指令和参数使用过吗?相同的路由组件如何重新渲染?自定义v-model如何将获取data中某一个数据的初始状态?为什么不建议v-for和v-if同时存在计算变量时,methods和computed哪个好?watch监听一个对象时,如何排除某些属性的监听下面代码是,params发生改变就重新请求数据,无论是a,b,c,d属性改变data() { retu
2022-01-26 17:20:11
1038
原创 vite 项目部分安卓机型白屏或报错
vite打包的项目在部署安卓机型中(主要是蓝绿厂的)会直接报兼容性错误,主要原因是因为<script type="module">在webview内核小于63的情况下无法识别引入@vitejs/plugin-legacy也无法解决目前2018及之前的机子有相当于一份是webview<63的别纠结了,直接换vue3+webpack吧,用vuecli搭出基础后直接改...
2022-01-17 15:22:29
6169
5
原创 为什么浏览器中有些文件点击后是预览,有些是下载
今天给大家分享两个比较有用的浏览器行为与预期不一致的现象,这两个问题其实并不是什么难题,但在工作中发现不少人被难住了,在我的印象中至少有三位同事在群里问这样的问题,上周又有同事被此现象困住了,所以我觉得这应该是个共性问题,在这里分享给大家,希望对大家有帮助现象一、点击按钮无法实现文件下载前端同事反馈在浏览器里点击实现好的「下载商品图片」按钮却无法下载(预期应该下载 zip 文件)img但如果你在浏览器的地址栏里输入此下载地址却又能直接从浏览器里下载,这是为何?我们可以打开调试工具「网络部分」,然
2021-07-07 11:46:50
12658
1
原创 前端基础知识汇总(一)
目录1. 箭头函数和普通函数的区别2. var,let和const之间的区别3. Bigint和Number的区别4. 基本数据类型和引用数据类型的区别5. defer和async的区别6. async await对比promise的优缺点7. get和post的区别8. 用框架和不用框架的区别,vue和react的区别9. cookies和session的区别10. 宏任务和微任务有什么区别11. fetch,Ajax,axios区别12. TCP和UDP的区别13. js中的堆和栈,栈和队列有什么区别1
2021-06-28 17:43:24
1145
3
原创 用babel按需引入两套UI框架
babel 6.x"plugins": [ [ "import",// 当时babel-plugin-component时用"component" { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" }, { "libraryName": "view-design", "libraryDirectory": "src/components" }, ] ]babel 7.
2021-04-25 14:09:57
508
原创 关于实现setTimeout准时性的探讨
目录背景whileWeb WorkerrequestAnimationFramesetTimeout 系统时间补偿背景运行代码如下,通过一个计数器来记录每一次 setTimeout 的调用,而设定的间隔 * 计数次数,就等于理想状态下的延迟,通过以下例子来查看我们计时器的准确性。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>test</
2021-04-22 10:18:16
825
原创 文本溢出的几种解决方案
目录单行文本溢出多行文本溢出拓展的多行文本溢出自定义多行文本溢出高亮多行文本溢出单行文本溢出width: 300px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;兼容性一片绿呀,基本上所有的浏览器都支持多行文本溢出这个效果也可以通过 css 来实现width: 100px;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-
2021-04-20 11:16:51
3142
原创 vue优化之少用this去读取data中数据
在计算属性和template模板中滥用this去读取data中数据会导致多次重复地收集依赖,从而产生性能问题,那要怎么避免这种情况。计算属性中如何避免用ES6对象解构赋值来避免,计算属性的值是一个函数,其参数是Vue的实例化this对象,在上述计算属性中滥用this的例子中可以这样优化。优化前:computed:{ d:function(){ let result = 0; for(let key in this.a){ if(this
2021-04-02 14:07:36
1082
原创 webpack要点
首先我们应该简单了解一下webpack的整个打包流程:读取webpack的配置参数;启动webpack,创建Compiler对象并开始解析项目;从入口文件(entry)开始解析,并且找到其导入的依赖模块,递归遍历分析,形成依赖关系树;对不同文件类型的依赖模块文件使用对应的Loader进行编译,最终转为Javascript文件;整个过程中webpack会通过发布订阅模式,向外抛出一些hooks,而webpack的插件即可通过监听这些关键的事件节点,执行插件任务进而达到干预输出结果的目的。其中文
2021-04-01 18:12:42
140
原创 Node.js 三大基础模块常用 API
目录Process 模块process.cwd()process.argvprocess.envprocess.platformPath 模块path.join(...paths)path.resolve(...paths)path.basename(path[, ext])path.dirname(path)path.extname(path)对比File System 模块fs.stat(path[, options], callback)同步方法fs.readdir(path[, options],
2021-04-01 16:19:50
692
原创 前端应掌握的5种设计模式
目录什么是设计模式?单例设计模式定义实现策略模式定义实现观察者模式定义实现发布订阅模式定义实现观察者模式 VS 发布订阅模式:装饰器模式定义实现代理模式定义实现什么是设计模式?设计模式是对软件设计开发过程中反复出现的某类问题的通用解决方案。设计模式更多的是指导思想和方法论,而不是现成的代码,当然每种设计模式都有每种语言中的具体实现方式。学习设计模式更多的是理解各种模式的内在思想和解决的问题,毕竟这是前人无数经验总结成的最佳实践,而代码实现则是对加深理解的辅助。使用设计模式是为了可重用代码、让代码更容易被
2021-04-01 11:44:00
312
原创 webpack热更新原理
目录热更新原理热更新的过程启动阶段文件热更新阶段热更新原理热更新的过程几个重要的概念(这里有一个大致的概念就好,后面会把它们串起来):Webpack-complier :webpack 的编译器,将 JavaScript 编译成 bundle(就是最终的输出文件)HMR Server:将热更新的文件输出给 HMR RuntimeBunble Server:提供文件在浏览器的访问,也就是我们平时能够正常通过 localhost 访问我们本地网站的原因HMR Runtime:开启了热更新的话,在打
2021-04-01 11:01:56
917
原创 GET请求相对POST请求有哪些优势,全部用POST不好吗?
相对于POST的优点更好的语义对于那些不会改变服务器状态,只会获取数据的,应该用get请求,经get请求的数据会被缓存起来 ,如果需要多次请求同一数据的话(幂等行为),不会对服务器造成压力,它有助于提升性能。如果想破坏缓存最简单的方式是在 url 参数后加时间戳 “?timestamp=” + new Date().getTime()对于少量数据而言,一个get请求往服务器只发送一个数据包,而一个post请求,至少要发送两个数据包,一个装载头信息,一个装载post正文,所以get方式会更快。相对
2021-03-27 09:06:25
1356
原创 js小知识点整理
目录获取一个月有多少天关于函数的 length 属性数组中字符串键值的处理void 运算符关于 JSON.stringify不安全的 JSON 值toJSON 方法JSON.stringify 的第二个参数一元运算符字位反转操作符 ~~ 的用途字位截除类型转换问题1..toString 的问题获取一个月有多少天new Date(2019, 12, 0).getDate(); // 31new Date(2018, 2, 0).getDate(); // 28// 根据这个我们可以得到一个方法fun
2021-03-19 10:14:36
153
原创 前端性能优化建议,24条
1. 减少 HTTP 请求一个完整的 HTTP 请求需要经历 DNS 查找,TCP 握手,浏览器发出 HTTP 请求,服务器接收请求,服务器处理请求并发回响应,浏览器接收响应等过程。接下来看一个具体的例子帮助理解 HTTP :这是一个 HTTP 请求,请求的文件大小为 28.4KB。名词解释:Queueing: 在请求队列中的时间。Stalled: 从TCP 连接建立完成,到真正可以传输数据之间的时间差,此时间包括代理协商时间。Proxy negotiation: 与代理服务器连接进行协商所花
2021-03-18 09:43:54
188
原创 es6的函数默认参数作用域
有默认值的函数,的确是开辟了单独的“参数声明作用域A”,这个作用域与函数体内的作用域是互不相干的,独立的。函数体内的同名变量接受来自同名参数的默认赋值,并单独开辟函数体内的一个作用域B.在作用域B中找不到变量时,程序会攀援“scope-chain”找到作用域A中的变量,并加以操作。所以,在没有var之前的作用域A和作用域B是互相独立又有“上溯”查找的关系。但是再有let和var 之后两个作用域有相互独立了...
2021-02-23 10:59:07
150
空空如也
为什么没有react.prototype.$xxx=xxx
2021-02-24
js中一个基本类型的全局变量存放在内存的哪?栈还是静态储存区?
2020-11-05
vuecli3 如何设置maxHeaderSize
2020-05-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人