- 博客(26)
- 收藏
- 关注
原创 flask后端+网页前端:基于 socket.io 的双向通信和服务器部署
我想实现的效果是,我的服务器提供两个路由网址,网页A用于拍照、然后录音,把照片和录音传给服务器,服务器发射信号,通知另一个路由的网页B更新,把刚刚传来的照片和录音显示在网页上。然后网页B用户根据这个照片和录音,回答一些问题,输入答案的文本,传给服务器。服务器拿到答案后,再发射信号,把这个结果显示在网页A上。这就得用到双向通信(其实有点类似两个网页聊天的功能,而且支持发送语音、图片、文本三种消息)。这里用的是 socket.io 包。在本地写还是很好写的,但是,部署到服务器上之后,就出了很多 bug。很多坑,
2024-04-11 00:42:16
868
原创 flask 后端 + 微信小程序和网页两种前端:调用硬件(相机和录音)和上传至服务器
选择 flask 作为后端,因为后续还需要深度学习模型,python 语言最适配;而 flask 框架轻、学习成本低,所以选 flask 作为后端框架。微信小程序封装了调用手机硬件的 api,通过它来调用手机的摄像头、录音机,非常方便。网页端使用 JavaScript 调用则困难一些,走了很多弯路,在这里记录下来。前提:已经配置好 python 环境、安装了 flask;
2024-04-10 21:13:07
1896
原创 深度学习训练过程自查:为什么我的模型不收敛/表现不佳?
代码终于写完了,bug 处理好了,终于跑起来了。但是模型不收敛。或者收敛了,但是加 trick 也表现不良。于是开始思考,为什么?哪里出了问题?因此就整理了这个文章,用来辅助自查模型到底哪里出了问题。(有时候是模型结构的问题,有时候真的是因为过度关注模型结构,每次写训练代码都是套模板,不往心里去,其实是训练过程有问题)
2023-12-07 23:14:55
2228
原创 hugging face transformers 库使用手册(二):调用 hugging face transformers 预训练模型进行快速预测——api: Pipeline
训练过程比预测过程多的东西:数据增广、梯度反传。虽然之多了这两个东西,但是训练的代码要比预测的代码复杂很多,所以先看简单一点的预测过程。hugging face transformers 的预测过程由Pipeline类全权代理。
2023-08-07 15:20:47
918
原创 pytorch 训练过程内存泄露/显存泄露debug记录:dataloader和dataset导致的泄露
查找内存泄露/显存泄露的位置:把数据送入模型的代码全部注释掉,观察显存是否上涨;上涨说明内存泄露出现在dataloader(出现在非 dataloader 地方的最常见的显存泄露原因是,loss打印/统计的时候没有写把不同的 data 组成部分注释掉,观察具体是哪个 data 导致的内存泄露pytorch 释放内存的方法:把 tensor 读到 gpu 就会有显存占用,一般可以自动释放,但是显存泄露的时候就没法释放。找到没有及时释放的代码位置,然后首先del tensor标记删除,随后需要调用。
2023-08-06 09:55:06
4369
1
原创 hugging face transformers 库使用手册(一):库理解和评价
最近学了 hugging face transformers 库,学成归来,把笔记整理一下,互勉。有兴趣详细了解的可以去仔细看看准备把这个写成一个小系列。不想搞太复杂,“太长不看”。但是也不想缺内容,不然用的时候抓瞎。所以先贴一个整体印象上来,对这个库的架构、怎么用有个初步的大致了解。然后再开一篇文介绍精调到底怎么操作。最后再把关键的 api 文档里的东西摘出来讲一讲。这篇就是对这个库的大体印象。
2023-07-28 23:33:10
479
1
原创 debug: NameError: name ‘_C‘ is not defined 本地运行 GroundingDINO 代码 debug 记录
本地跑 Grounding DINO 过程记录
2023-05-08 17:18:03
4640
19
原创 pyqt5 在 tablewidget 中加入 comboBox,并对 comboBox 的修改做出响应
用例:用 tablewidget 展示查询到的学生信息,为了防止错误修改,让学生的性别项修改时只能是“男”或“女”
2023-04-21 12:57:49
1601
原创 mask rcnn 超详细代码解读(三)
前文链接:mask rcnn 超详细代码解读(一)mask rcnn 超详细代码解读(二)文章目录1 各部分代码之间关系梳理2 继续代码解读2.1 Feature Pyramid Network Heads2.2 MaskRCNN Class1 各部分代码之间关系梳理目前已经在解析(一)完成 Resnet Graph、RPN、Proposal Layer 的代码解析,在解析(二)中完成 ROIAlign Layer、Detection Target Layer 的解析。接下来要解析Feature
2021-04-29 16:51:13
2726
5
原创 tf.where tf.gather tf.gather_nd用法示例
文章目录tf.wheretf.gather 和 tf.gather_ndtf.wheretf.where(condition, x=None, y=None, name=None)# condition, x, y 相同维度,condition是bool型值# 返回condition中元素为True对应的索引>>> condition1 = [[True,False,False], [False,True,True]][[0 0] [1
2021-04-28 19:46:41
674
原创 mask rcnn 超详细代码解读(二)
前文: mask rcnn 超详细代码解读(一)(小小声最近忙别的事去了更新拖了一个月。。。接下来会连续一口气争取日更把所有的内容写完)文章目录1 (一)中网络结构总结(刚刚看完一可忽略这段)2 train过程代码继续解析2.1 ROIAlign Layer2.2 Detection Target Layer2.3 Feature Pyramid Network Heads3 关于代码中用到的索引1 (一)中网络结构总结(刚刚看完一可忽略这段)(一)中解析了Resnet Graph、Region P
2021-04-27 20:17:39
4079
7
原创 pyinstaller打包黑框闪退,或者没有黑框报错failed to execute script
尝试把之前写的一个软件打包,在cmd用命令pyinstaller -F -w main.py结果运行.exe告诉我failed to execute script,查了说可以试试把控制台留下,看看有啥报错信息(一般都是包没导进去,但你不知道是哪个包啊)。然后我试了,结果控制台是全黑的,然后软件也没有运行,过了一会儿可能就超时自动退出了。于是我又差,有人说可以在cmd里运行一下文件,看看有啥错。然后我运行之后,居然报错是“找不到 keras 模块”,好家伙,原来我有好几个环境,在现在的环境里打包就是
2021-04-19 09:42:19
546
原创 siris 显著性排序网络代码解读(inference过程)Inferring Attention Shift Ranks of Objects for Image Saliency
training 过程的代码已经解读完毕,见:siris 显著性排序网络代码解读(training过程)本文继续解读 inference 过程(这部分比 training 简略,在上篇中写过的内容不再赘述)。按照相同的思路,根据 README.md 文档要求运行文件的顺序解读。同样默认已经对 mask r-cnn 的结构和代码比较熟悉、阅读过显著性排序网络原论文。文章目录第一部分 获得图片的 `rois` `classIds` `scores` 信息第二部分 获取图片的 `obj_masks` 、`o
2021-03-26 14:12:30
645
1
原创 siris 显著性排序网络代码解读(training过程)Inferring Attention Shift Ranks of Objects for Image Saliency
阅前说明前面已经出现的代码用 … 代替。本文仅解析train部分的代码(inference的部分会后续更新)。不对网络结构做过多解释,默认已经熟悉 mrcnn 的结构以及读过这篇论文了。文章目录第一部分 训练mrcnn网络obj_sal_seg_branch/train.pyobj_sal_seg_branch.SOSNetmodel.load_weightsmodel.train 及该方法中调用的其他方法第二部分 预处理 提取特征pre_process/pre_process_obj_feat_G
2021-03-25 21:58:28
660
10
原创 mask rcnn 超详细代码解读(一)
mask r-cnn 代码解读(一)文章目录1 代码架构2 model.py 的结构3 train过程代码解析3.1 Resnet Graph3.2 Region Proposal Network (RPN)3.3 Proposal Layer本系列将对 mask r-cnn 的代码做非常详细的讲解。默认教程使用者已经对mask r-cnn的结构基本了解,因此不对原论文做解析、最好是读者手头有完整的mrcnn代码(没有也没事,会贴),对照着代码和博客来理解。本文将通过解析代码再次梳理网络结构中模糊的.
2021-03-23 20:39:36
11912
24
原创 学习Keras时需要掌握的知识
学习Keras时需要掌握的知识本文在《Deep Learning with Python》一书第七章的基础上整理。希望自己能够牢记这些代码,熟记于心,不要每次敲两行查一下OTZ。文章目录创建网络结构导包使用Sequential创建基本网络使用函数API创建基本网络创建双输入网络创建多输出网络(多头网络)有向无环图Inception结构残差连接重复使用权重/共享权重将模型作为层使用必要知道的函数model相关画图查看每个epoch的loss和accuracy并画图检查并监控深度学习模型内置回调函数示例编写
2021-03-22 16:24:29
301
原创 python 张量和数组切片维度的详细说明
目录基础规则省略冒号,直接填数字的情况切割维度 ≠ 张量或数组维度时基础规则每一维用形式: start:end:stride 切割,不同维用逗号隔开。其中:strart不填默认为0stride不填默认为1end不填默认为最后一项取该维全部用一个冒号不包括end特点:这种切片不会改变秩,即不会改变 len(shape) 但是会改变shape的具体数值。示例:>>> probs = np.array([[(1.1,1.2,1.3,1.4), (2.1,2.2,2.3,2
2021-03-21 13:38:44
1153
原创 pyqt QGraphicsView和QLabel 实现boundingbox标注框的三种方式对比
对比了用QLabel或QGraphicsView实现标注软件中画bbox功能的三种实现方法。先展示了标记效果,然后分析了代码组成
2021-03-14 20:32:42
3479
5
原创 pyqt QGraphicsView 可根据鼠标改变大小的标注框,状态栏显示坐标
因为需要做一个图像标注软件,利用QGraphicsView实现可根据鼠标来调整大小的标注框。实现效果如下:鼠标移动左上和右下两个点的位置,框的大小随之改变(但是实时拖动框还需要后续优化,等之后有时间再说。欢迎大佬提建议。)开始移动的红色圆和黄色蓝色圆和那个框,与功能无关,可以不写,当背景看就好。总体思路写一个自己的类继承QGraphicsView,在类中自定义信号,重写鼠标方法,在鼠标点击/移动/松开的时候将位置坐标发送出去。在主类中接收信号得到坐标,并利用坐标,在鼠标点击的时候生成左上角点,松开
2021-03-06 10:19:37
2389
1
原创 python 图片展示及数据库存储demo PyQt
软件功能点击添加图片,打开本地文件夹,选中的图片显示在页面上,同时添加进数据库。按键盘PgUp和PgDn键可以切换上一张或下一张图片。用到的知识pyqt designer 生成文件转为代码pyqt基本组件的使用连接mysql数据库、数据库增、查操作文件架构软件界面效果图:使用PyQt Designer拖拽制作好界面,保存为ui.ui文件。在cmd中输入命令:pyuic4 -x [ui文件名.ui] -o [py文件名.py]最终生成的ui.py:# -*- coding:
2020-12-24 20:15:57
1088
9
翻译 基于神经网络的物体识别方法2020[计算机视觉]
文章主要介绍基于神经网络的object detection方法,包括single stage detectors和two stage detectors。目标在于了解这个领域内的发展情况,并没有对某个网络做特别详细的介绍。前言计算机视觉可大致分为:物体分类(Image Classification)物体检测(Object Detection)语义分割(Semantic Segmentation)实例分割(Instance Segmentation)物体检测 (Object Detecti
2020-12-24 19:34:37
2852
原创 安卓开发 输入单词表,点击读出单词 TextToSpeech
怎么说呢,因为要背单词,同时希望能快速获得今日所背单词表的读音。于是想要一款简单的,输入单词表,然后生成列表,点击单词可以获得读音。查资料后发现安卓自带 TextToSpeech可以实现这个功能,于是尝试写了一个app。 TextToSpeech的api文档写起来挺简单的,一试令人崩溃……这合成的机械音,感觉自己受到了欺骗……有这个闲工夫不如去背单词……怒把过程写在这,之后找到正确的语音包之后重新写一个正常的。最终效果只要用到一个mainActivity:package com.exampl
2020-07-14 19:13:46
943
1
原创 SQLiteDatabase和listView结合,数据库可更新,listview动态刷新,数据库存入数据输入的时间
SQLiteDatabase和listView结合,数据库可更新项目介绍 及 总体思路listview展示条目的刷新和监听项目介绍 及 总体思路项目功能是查询同学发量变化的数据,可以对数据库进行增加、删除。记录一下编写过程,同时也是学习过程。对整个学校建立一个SQLiteDataBase,每个学生的发量变化数据对应个人的表,表名为同学的名字。需要完成的工作有:listview中展示同学名单为listview设置监听,可跳转到学生详细数据页面对数据库进行处理:建立数据库,add按钮监听,生成
2020-07-12 16:31:01
684
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人