![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 73
程序员荒生
大数据、内容挖掘、算法服务
展开
-
如何看待 Python(PyScript) 可以做浏览器前端开发语言?
讨论在"PyCon US 2022"上,由 Anaconda 发布的"PyScript"技术,据说这项技术被 Anaconda 基于"为 99% 的人带来编程"这么宏伟的愿景而创建。原创 2022-05-09 15:48:18 · 744 阅读 · 0 评论 -
从 0 到 1,如何徒手撸个 Python 插件系统?
插件化机制使框架与业务模块的实现相解耦,框架服务抽象出统一的交互接口,业务模块只要符合交互标准即可做到插件替换。原创 2022-03-31 16:47:17 · 1097 阅读 · 0 评论 -
一站式机器学习开业平台 MLflow 怎么样?
机器学习工作流程 机器学习(ML)通常需要使用广泛的数据集、数据预处理步骤和算法逻辑进行实验,以构建最优指标的模型。模型构建成功后,还需要将其部署到生产系统,监控其效果和性能,并根据新数据不断对其进行原创 2022-03-24 21:28:47 · 4760 阅读 · 0 评论 -
开源项目 requests 的 stars 为啥比 python 还多3.7k?
这篇文章,包含了对requests的基础应用、超时机制、请求流程的学习,辅以流程图和部分源码的分析帮助理解。篇幅较短,预计阅读时间 15 分钟原创 2022-03-17 13:14:27 · 348 阅读 · 0 评论 -
学习Protobuf,ZigZag是啥你真的知道么?
我们了解到通过`Varint` 编码整数,如遇到负数或大整数,就不具备压缩优势了?由于引入了`MSB`,不但没有好的压缩效果,还加大了存储,这明显不是我们想要的。以下,我们聊聊怎么解决这类问题。原创 2022-03-10 20:43:31 · 726 阅读 · 0 评论 -
学习Protobuf,Varint是啥你真的知道么?
这篇文章,是学习Protobuf过程中偶然所得,算法简洁,篇幅较短,预计阅读时间 4 分钟,如果对您有帮助,还望不吝评价,求点赞、求评论、求转发。Varint 是什么?早期,为了更好计算效率,我们的计算机中数值通常使用定长整型(fixed length intergers)表示。但是,微服务、RPC 架构盛行的今天,定长整型就显得冗余。在大多数计算机系统中,以4 Bytes和8 Bytes 来表示整数(Int32、Int64)。这样,为了传输一个整数1,我们需要传输00000000 0000原创 2022-03-05 12:46:48 · 304 阅读 · 0 评论 -
大事件:一次算法读图超时引起的urllib3源码分析
urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库,许多Python的原生系统已经开始使用urllib3原创 2022-03-02 21:49:27 · 876 阅读 · 0 评论 -
nvidia-smi简介及常用指令 | GPU使用
nvidia-smiNVIDIA系统管理界面(nvidia-smi)是基于NVIDIA Management Library(NVML)的命令行实用程序,旨在帮助管理和监视NVIDIA GPU设备。GPU参数查看查看GPU运行情况nvidia-smiSun Mar 28 02:40:38 2021+-----------------------------------------------------------------------------+| NVIDIA-SMI 418.56原创 2021-05-14 20:53:00 · 2479 阅读 · 0 评论 -
Pytorch遍历DataLoader时报错【BrokenPipeError:[Errno 32]Broken pipe】
问题描述GPU环境训练好模型,CPU环境部署过程成功后,尝试遍历DataLoader的时候出现了以下报错信息。具体如下:Traceback (most recent call last): File "/usr/local/lib/python3.6/multiprocessing/resource_sharer.py", line 142, in _serve with self._listener.accept() as conn: File "/usr/local/lib/py原创 2021-05-14 20:52:09 · 1417 阅读 · 2 评论 -
Web基础——HTTPS协议简介
协议简介HTTPS 即 HTTP over TLS(Transport Layer Security),是一种在加密信道进行 HTTP 内容传输的协议运行流程基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密握手阶段客户端向服务器端索要并验证公钥双方协商生成"对话密钥"通信阶段双方采用"对话密钥"进行加密通信TLS握手客户端发送一个 ClientHello 消息到服务器端,消息中同时包含了它原创 2021-05-13 10:13:15 · 315 阅读 · 0 评论 -
Web基础——HTTP协议简介
协议简介HTTP 是在网络上传输HTML的协议,用于浏览器和服务器的通信HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80HTTP 协议是以 ASCII 码传输,是无连接无状态的请求报文HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:<method> <request-URL> <version><headers><entity-body>HTTP 定义了与服务器原创 2021-05-13 10:12:35 · 228 阅读 · 0 评论 -
CRC32算法理论和分库分表业务实现
算法原理CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏。因此,通过检查这一关系,就可以实现对数据正确性的检验注:仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(只是非常近似的认为是无差错的),并不能保证可靠传输Java实现 import java.util原创 2021-05-13 10:11:33 · 603 阅读 · 0 评论 -
图片向量相似检索服务(5)——基于milvus实现
概述为了让尝试“以图搜图”的相似图片检索的场景,基于ES向量索引计算和图片特征提取模型 VGG16 设计了一个以图搜图系统。开源地址:https://github.com/yaolipro/image-retrieval检索场景推理流程:读取图片,算法生成特征向量特征入库:把特征向量存入Milvus中检索流程:线上实时向量检索具体流程如下图:Milvus服务端安装安装指南:https://milvus.io/cn/docs/milvus_docker-cpu.md 下载配置原创 2021-05-13 10:09:57 · 2025 阅读 · 0 评论 -
图片向量相似检索服务(4)——基于faiss实现
概述为了让尝试“以图搜图”的相似图片检索的场景,基于Faiss向量索引计算和图片特征提取模型 VGG16 设计了一个以图搜图系统。开源地址:https://github.com/yaolipro/image-retrieval检索场景推理流程:读取图片,算法生成特征向量特征入库:把特征向量存入ES中检索流程:线上实时向量检索具体流程如下图:Faiss简介faiss是为稠密向量提供高效相似度搜索和聚类的框架。由Facebook AI Research研发。 具有以下特性。提供多原创 2021-05-10 20:08:21 · 3146 阅读 · 0 评论 -
图片向量相似检索服务(3)——基于ES实现
概述为了让尝试“以图搜图”的相似图片检索的场景,基于ES向量索引计算和图片特征提取模型 VGG16 设计了一个以图搜图系统。开源地址:https://github.com/yaolipro/image-retrieval检索场景推理流程:读取图片,算法生成特征向量特征入库:把特征向量存入ES中检索流程:线上实时向量检索具体流程如下图:ES向量索引Dense Vector:存储稠密向量,存储为单值字段数组,数组的最大长度不能超过2048,每个文档的数组长度可以不同Sparse V原创 2021-05-10 20:07:47 · 2396 阅读 · 1 评论 -
图片向量相似检索服务(2)——四种基本距离计算原理
余弦距离(Cosine distance)余弦相似度原理用向量空间中的两个向量夹角的余弦值作为衡量两个个体间差异大小的度量,值越接近1,就说明夹角角度越接近0°,也就是两个向量越相似,就叫做余弦相似余弦相似度公式具体如下:余弦实际应用现在假设:A用户喜欢a,b,d;B用户喜欢b,c,e;C用户喜欢c,d;D用户喜欢b,c,d;E用户喜欢a,d,建立物品-用户的倒排表,列出每个物品都被哪些用户喜欢,其中“1”表示喜欢,“0”表示不喜欢。注意:这里的喜欢行为可以理解成是用户在产品上触发的交互原创 2021-05-10 20:07:08 · 512 阅读 · 0 评论 -
图片向量相似检索服务(1)——解决方案
概述当您听到“以图搜图”时,是否首先想到了百度、Google 、阿里等搜索引擎的以图搜图功能呢?事实上,完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。为了让尝试相似图片检索的场景,基于内积距离计算和图片特征提取模型 VGG16 设计了一个以图搜图系统。 正文分为系统概览、 VGG 模型、数据准备、系统部署、总结五个部分。系统构建开源地址:https://github.com/yaolipro/image-retrieval基原创 2021-05-10 20:06:29 · 708 阅读 · 3 评论 -
gunicorn + Flask多进程 print 打印日志乱序问题处理
问题描述gunicorn + Flask部署Python服务,worker > 2 时发现 print 打印日志至 stdout 乱序问题分析多进程部署环境 print 打印不安全,需要添加全局进程锁问题处理Python中最常见多进程锁(multiprocessing.Lock)和多线程锁(threading.Lock),多进程锁实现锁定子进程资源功能,多线程实现锁定子线程资源功能。gunicorn + Flask架构,gunicorn会启动多个worker子进程,每个子进程可看原创 2021-05-10 20:01:07 · 1488 阅读 · 2 评论 -
Python GIL基础学习(2)——可视化
在这些图中,Python解释器刻度线沿X轴显示。两个横条表示正在执行的两个不同线程。白色区域表示线程完全空闲的时间。绿色区域指示线程何时保持GIL并正在运行。红色区域指示操作系统何时仅计划线程将其唤醒,并发现GIL不可用。详见以下图例:首先,这是在单个CPU系统上运行两个CPU绑定线程的行为。经过长时间的计算,线程之间会很好地交替。详见以下图例:其次,双核笔记本机器上启动代码。所有这些红色区域表示操作系统已在一个内核上调度了Python线程的时间,但由于..原创 2021-05-10 20:00:13 · 99 阅读 · 0 评论 -
Python GIL基础学习(1)
全局解释器锁GIL(Global Interpreter Lock)一、GIL理解GIL指定同时只允许一个线程控制Python解释器。GIL是CPU限制型和多线程代码中的性能瓶颈。GIL导致Python多线程属于伪并发的多线程。GIL只在CPython解释器上存在。GIL的影响Python中同一时刻有且只有一个线程会执行;Python中的多个线程由于GIL锁的存在无法利用多核CPU;Python中的多线程不适合计算机密集型的程序;问题:GIL的存在使程序无法充分利用CPU进行运.原创 2021-05-10 19:59:28 · 127 阅读 · 0 评论 -
Python插件技术知识
背景概述插件化机制使框架与各个模块的实现相解耦,模块统一抽象出基本数据结构与框架的交互接口,模块只要符合统一接口即可做到插件替换。架构图PluginCore:通过Plugin Manager调用算法,负责业务逻辑的实现PluginManger: 通过读取配置文件,负责各种插件的加载、管理、甚至热更新插件实现import()函数用于动态加载类和函数。如果一个模块经常变化就可以使用 import() 来动态载入函数语法:__import__(name, globals=None原创 2021-05-10 19:58:30 · 230 阅读 · 0 评论 -
Databricks开源项目MLflow入门学习
An open source platform for the machine learning lifecyclehttps://mlflow.org/上下文为开发者提供类似谷歌TFX、Facebook FBLearner Flow等平台类似好处可以支持任何工具和算法项目架构MLflow Tracking记录和查询实验:代码、数据、配置和结果https://www.mlflow.org/docs/latest/tracking.htmlMLflow Projects可在.原创 2021-05-10 19:54:32 · 484 阅读 · 2 评论