VCED:学习Jina的简单操作

news2024/11/18 23:40:24

文章目录

    • VCED:学习Jina的简单操作
      • 在pycharm里连接docker环境
      • 几个简单的jina demo
        • image
        • text
        • video

VCED:学习Jina的简单操作

在pycharm里连接docker环境

在pycharm里找到docker环境

image-20221116203244305

New一个环境

image-20221116203553385

在docker里进入terminal,找到python 位置

image-20221116203111904

成功得到decker环境

image-20221116203655175

运行jina的代码

image-20221116203802814

几个简单的jina demo

image

  1. 读取图片并转为tensor
from jina import Document

d = Document(uri='lena.jpg')
d.load_uri_to_image_tensor()

print(d.tensor.shape)  # (618, 641, 3)
print(d.tensor)

这里用一个图像处理的经典图片lena

image-20221116215829665

得到了结果

image-20221116215903974

  1. 进行简单的图形处理
from jina import Document

d = (
    Document(uri='lena.jpg')
    .load_uri_to_image_tensor()
    .set_image_tensor_shape(shape=(224, 224))  # 设置shape
    .set_image_tensor_normalization()  # 标准化
    .set_image_tensor_channel_axis(-1, 0)  # 更改通道
)

print(d.tensor.shape)  # (3, 224, 224)
print(d.tensor)

# 你可以使用 save_image_tensor_to_file 将 tensor 转为图像。当然,因为做了预处理,图片返回时损失了很多信息。
d.save_image_tensor_to_file('lena-proc.png', channel_axis=0)  # 因为前面进行了预处理,channel_axis应该设为0

得到了图片

image-20221116220219703

读取图像数据集

Omniglot数据集是由来自50种不同语言的1,623个手写字符构成的,每个字符都有20个不同的笔迹,这就构成了一个样本类别极多(1623种),但每种类别的样本数量极少(20个)的小样本手写字符数据集。使用中通常选择1200种字符作为训练集,剩余的423种字符作为验证集,并通过旋转90°,180°和270°进行数据集扩张,每张图片通过裁剪将尺寸统一为28*28。

这个报错暂时没解决

  1. 切割大型图像
from jina import Document

d = Document(uri='complicated-image.jpeg')
d.load_uri_to_image_tensor()
print(d.tensor.shape)  # (792, 1000, 3)

原图像shape为(792, 1000, 3)

image-20221116223017891

使用 6464 的滑窗切割原图像,切分出 1215=180 个图像张量

d.convert_image_tensor_to_sliding_windows(window_shape=(64, 64))
print(d.tensor.shape)  # (208, 64, 64, 3)

可以通过 as_chunks=True,使得上述 180 张图片张量添加到 Document 块中。

# PS:运行这行代码时,需要重新 load image tensor,否则会报错。
d = Document(uri='complicated-image.jpeg')
d.load_uri_to_image_tensor()
d.convert_image_tensor_to_sliding_windows(window_shape=(64, 64), as_chunks=True)
print(d.chunks)

使用 plot_image_sprites 将各个 chunk 绘制成图片集图片

d.chunks.plot_image_sprites('simpsons-chunks.png')

因为采用了滑动窗口扫描整个图像,使用了默认的 stride,切分后的图像不会有重叠,所以重新绘制出的图和原图差别不大。

image-20221116223050151

也可以通过设置 strides 参数进行过采样。

d.convert_image_tensor_to_sliding_windows(window_shape=(64, 64), strides=(10, 10), as_chunks=True)
d.chunks.plot_image_sprites('simpsons-chunks-stride-10.png')

得到过采样的图片

image-20221116223226093

text

  1. 创建简单的文本数据
d = Document(text='hello, world.')
print(d.text)  # 通过text获取文本数据

打印出结果

image-20221116230258382

对于网页,如果文本数据很大,或者自URI,可以先定义URI,然后将文本加载到文档中

image-20221116230038723

d = Document(uri='https://www.w3.org/History/19921103-hypertext/hypertext/README.html')
d.load_uri_to_text()
print(d.text)

打印结果

image-20221116230325450

支持多语言

d = Document(text='👋   नमस्ते दुनिया! 你好世界!こんにちは世界!  Привет мир!')
print(d.text)
  1. 切割文本
from jina import Document  # 导包

d = Document(text='👋  नमस्ते दुनिया! 你好世界!こんにちは世界!  Привет мир!')
d.chunks.extend([Document(text=c) for c in d.text.split('!')])  # 按'!'分割
d.summary()
  1. text、ndarray互转
from jina import DocumentArray, Document  # 导包

# DocumentArray 相当于一个 list,用于存放 Document
da = DocumentArray([Document(text='hello world'),
                    Document(text='goodbye world'),
                    Document(text='hello goodbye')])
print(da)

结果

<DocumentArray (length=3) at 140342285532224>

转为字典

vocab = da.get_vocabulary()
print(vocab)

结果

{'hello': 2, 'world': 3, 'goodbye': 4}

text转为tensor向量

for d in da:
    d.convert_text_to_tensor(vocab, max_length=10)  # max_length为向量最大值,可不设置
    print(d.tensor)

结果

[0 0 0 0 0 0 0 0 2 3]
[0 0 0 0 0 0 0 0 4 3]
[0 0 0 0 0 0 0 0 2 4]

tensor向量转为text

for d in da:
    d.convert_tensor_to_text(vocab)
    print(d.text)

结果

hello world
goodbye world
hello goodbye
  1. 简单的文本匹配
from jina import Document, DocumentArray

d = Document(
    uri='https://www.gutenberg.org/files/1342/1342-0.txt').load_uri_to_text()  # 链接是傲慢与偏见的电子书,此处将电子书内容加载到 Document 中
da = DocumentArray(Document(text=s.strip()) for s in d.text.split('\n') if s.strip())  # 按照换行进行分割字符串
da.apply(lambda d: d.embed_feature_hashing())

q = (
    Document(text='she entered the room')  # 要匹配的文本
    .embed_feature_hashing()  # 通过 hash 方法进行特征编码
    .match(da, limit=5, exclude_self=True, metric='jaccard', use_scipy=True)  # 找到五个与输入的文本最相似的句子
)

print(q.matches[:, ('text', 'scores__jaccard')])  # 输出对应的文本与 jaccard 相似性分数

输出结果

[['staircase, than she entered the breakfast-room, and congratulated', 'of the room.',
  'She entered the room with an air more than usually ungracious,',
  'entered the breakfast-room, where Mrs. Bennet was alone, than she', 'those in the room.'],
 [{'value': 0.6}, {'value': 0.6666666666666666}, {'value': 0.6666666666666666}, {'value': 0.6666666666666666},
  {'value': 0.7142857142857143}]]

video

先在docker里安装av包

image-20221116231714342

在docker中安装了但是在pycharm里跑一直报错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

004_步进电机实验

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。本章主要从步进电机的结构、工作原理、电机参数分别介绍&#xff0c;最后通过实验来实现步进电机运动的简单控制。本章所要实现的功能是&#xff1a;通过 ULN2003 驱动模块控制 28BYJ48 步进电机运行方向及速度&…

bugku-web-社工-初步收集

题目首页 社工又有杂项的存在 打开题目 小时候可能特感兴趣的网站 目录扫描一下 dirsearch 得到一个管理员后台登录网站 但是需要密码 再回到起始页面 存在一个下载点 可以操作 下载得到一个压缩包 解压打开 是一个小插件 尝试登录 同时 打开wireshark进行流量截取…

Nacos安装指南

Nacos安装指南 1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面&#xff0c;提供有下载链接&#xff0c;可以下载编译好的Nacos服务端或者源代码&#xff1a; GitHub主页&#xff1a;https://github.com/alibaba/nacos GitHub的Release下载…

Monaco Editor教程(十六):缩略图minimap的配置详解

背景 缩略图 (Minimap) 是一种常见的用于快速预览和探索的工具&#xff0c;可作为导航辅助用户探索大规模图。 在大文件的阅读和编辑中&#xff0c;能够起到很好的导航作用&#xff0c;并且缩略图能够显示文件结构的大致轮廓&#xff0c;使开发人员能够快速知道对应的编辑位置…

WordPress重新安装的几种方法(2022年新版教程)

我们在建网站的过程中&#xff0c;可能出于某些原因会把网站重装&#xff0c;例如网站中病毒了、网站做的不满意&#xff0c;重头开始。本文会给大家分享一下2022年可行的重装WordPress网站方法。 1 重装WordPress的方法 方法一&#xff1a;重置数据库 方法二&#xff1a;宝塔面…

【MySQL】MySQL基础、详细总结

数据库Mysql 内容管理数据库基础什么是DB、DBMS、DBS、DBA&#xff1f;什么是元组、码、候选码、主、外码&#xff08;键&#xff09;、&#xff08;非&#xff09;主属性&#xff1f;主、外码的区别&#xff1f;为什么不推荐使用外码和级联 &#xff1f;【分布式高并发】什么是…

Servlet规范之部署描述符

Deployment Descriptor 文章是对 JSR-000340 JavaTM Servlet 3.1 Final Release的Java™ Servlet规范的翻译&#xff0c;尚未校准 文章目录Deployment Descriptor部署描述符元素部署描述符的处理规则部署描述符部署描述符示意图web-app元素description Elementdisplay-name Ele…

从零开始学前端:json对象,冒泡排序 --- 今天你学习了吗?(JS:Day15)

从零开始学前端&#xff1a;程序猿小白也可以完全掌握&#xff01;—今天你学习了吗&#xff1f;&#xff08;JS&#xff09; 复习&#xff1a;从零开始学前端&#xff1a;字符串、数组的方法 — 今天你学习了吗&#xff1f;&#xff08;JS&#xff1a;Day12/13/14&#xff09…

范式建模维度建模 及结合BW的一些理解

用了几年BW了&#xff0c;时不时会想&#xff0c;BW为什么要这么设计啊&#xff0c;有时候用的可真麻烦&#xff0c;最近研究了下两种常见的建模理论&#xff0c;有了自己的一点感悟&#xff0c;我们从头开始,有很多资料是从大佬那里摘录的&#xff0c;就不一一列举了 一、范式…

DOPA-PEG-azide,Dopamine-PEG-N3,多巴胺PEG叠氮用于点击化学

多巴胺-聚乙二醇-叠氮&#xff08;DOPA-PEG-azide&#xff0c;Dopamine-PEG-N3&#xff09;该试剂具有更好的水溶性&#xff0c;它所属分类为Azide PEG Dopamine PEG。 peg试剂的分子量均可定制&#xff0c;有&#xff1a;2k、5k、3.4k、10k、20k、1k 。其质量控制为95%&#…

基于Matlab模拟用于天气观测的极化雷达回波(附源码)

目录 一、雷达定义 二、天线方向图 四、雷达脉冲合成 五、天气雷达力矩估计 六、仿真结果 6.1反射率 6.2 径向速度 6.3 频谱宽度 6.4 差分反射率 6.5 相关系数 6.6 差分相位 七、总结 八、程序 本示例展示了如何模拟满足天气观测要求的极化多普勒雷达回波。雷达在天…

柯桥增值税留抵如何退税?

今年&#xff0c;国家税务总局出台了“增值税期末留底退税”政策&#xff0c;这无疑对一些现金流缺乏的企业又是一重大利好呀&#xff01; 那么问题来了&#xff0c;咱们会计该如何操作领回这一部分钱呢&#xff1f; 接下来跟着豆哥一块儿操作退税吧~ 政策解读 重点提醒&…

驱动——LED灯循环闪烁

使用结构体形式对寄存器地址进行映射&#xff0c;实现3盏LED灯的循环点亮 1、创建LED灯点亮所需要的GPIO寄存器的结构体&#xff0c;并对寄存器地址进行宏定义 2、①通过ioremap函数将物理地址映射为虚拟地址 void* ioremap(phys_addr_t offset, size_t size) 函数功能&…

Mysql主从复制出现connecting

主从同步时出现Slave_IO_Running&#xff1a;Connecting首先解决Slave_IO_Running和Slave_SQL_Running是no的问题&#xff0c;原因是一台虚拟机是由另一台虚拟机复制过来的&#xff0c;就会导致uuid是一样的&#xff0c;需要先修改server的uuid&#xff0c;具体请查阅相关资料。…

【FME实战教程】001:FME2020中文安装图文教程(附安装包下载)

文章目录1. 安装license2. 安装FME Desktop3. 安装中文语言4. FME软件下载地址1. 安装license 打开软件安装包中的fme-flexnet-win-x64.msi&#xff0c;如下图所示&#xff1a; 点击Next。 点击Next。 单击install。 点击finish&#xff0c;完成。 &#xff08;1&#xff09;修…

pytorch入门教程(小土堆

pytorch入门教程、一些基础函数的概念&#xff08;参考代码&#xff09;&#xff0c;主要是带着读了一遍pytorch官方文档、另外推荐一个网站 www.paperswithcode.com&#xff0c;感觉很厉害的样子。 P5. PyTorch加载数据初认识_哔哩哔哩_bilibili import torch torch.cuda.is_a…

年产10000吨即食型大头菜工厂设计

目 录 摘 要 I ABSTRACT II 第1章 绪论 1 1.1即食大头菜发展现状及市场前景 1 1.1.1世界即食大头菜发展的特点与趋势 1 1.1.2我国即食大头菜发展现状 1 1.1.3即食大头菜的生产现状及前景展望 2 1.2专家点评 3 第2章 厂址选择 5 2.1厂址选择依据及范围 5 2.1.1选址依据 5 2.1.2选…

3.46 OrCAD软件怎么输出物料清单BOM表格?

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…

asp.net+sqlserver笔记本电脑售后服务管理系统C#

研究内容与章节安排 全文的结构如下&#xff1a; 第一章&#xff1a;引言。论述课题提出的背景、对目前笔记本电脑售后服务系统的国内外发展水平进行了分析研究&#xff0c;通过比对&#xff0c;提出笔记本电脑售后服务系统的涵义及其优越性。 第二章&#xff1a;笔记本电脑售后…

LabVIEW性能和内存管理 4

LabVIEW性能和内存管理 4 本文介绍LabVIEW性能和内存管理的几个建议4。 传输缓冲区 传输缓冲区保护操作缓冲区和执行缓冲区之间的数据传输 只有当前面板在内存中时才更新 为了保护操作和执行缓冲区之间的数据传输&#xff0c;LabVIEW使用传输缓冲区。当您处理大型数据集&am…