首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用深度学习手把手教你实现一个「以图搜图」

前言 在上一篇文章《图像检索系列——利用 Python 检测图像相似度》中,我们介绍了一个在图像检索领域非常常用的算法——感知哈希算法。...基于vgg16网络提取图像特征我们都知道,vgg网络在图像领域有着广泛的应用,后续许多层次更深,网络更宽的模型都是基于此扩展的,vgg网络能很好的提取到图片的有用特征,本次实现是基于Keras实现的,提取的是最后一层卷积特征...下同 将特征以及对应的文件名保存为h5文件 什么是 h5 文件 h5文件是层次数据格式第5代的版本(Hierarchical Data Format,HDF5),用以存储和组织大规模数据。...在 Python 中,我们通常使用 h5py 库对 .h5 文件进行操作,具体的读写方法自行百度,这里不在演示。...至此,我们就已经算是完成了模型的训练了。

2.8K20

利用深度学习手把手教你实现一个「以图搜图」

文中源码可在微信公众号「01二进制」后台回复「图像检索」获取。 前言 在上一篇文章《图像检索系列——利用 Python 检测图像相似度》中,我们介绍了一个在图像检索领域非常常用的算法——感知哈希算法。...基于vgg16网络提取图像特征我们都知道,vgg网络在图像领域有着广泛的应用,后续许多层次更深,网络更宽的模型都是基于此扩展的,vgg网络能很好的提取到图片的有用特征,本次实现是基于Keras实现的,提取的是最后一层卷积特征...文件就是 hdf5 文件中的 dataset,表示具体的数据 下图就是数据集和组的关系: 在 Python 中,我们通常使用 h5py 库对 .h5 文件进行操作,具体的读写方法自行百度,这里不在演示。...如下图: 至此,我们就已经算是完成了模型的训练了。...Tips:各种相似度的 Python 表示可以参考Python Numpy计算各类距离 以某一个包包为测试图片,输出结果如下所示: 在PyCharm中可以很方便的查看matplotlib生成的图片,第一张为测试图片

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何将NumPy数组保存到文件中以进行机器学习

    机器学习模型中通常需要使用NumPy数组,NumPy数组是处理Python中数据有效的数据结构,机器学习模型(例如scikit-learn)和深度学习模型(例如Keras)都期望输入数据采用NumPy数组的格式...我们希望将这些数据作为单行数据保存到CSV文件中。运行示例之后,我们可以检查“ data.csv ” 的内容看到以下内容: 我们可以看到数据已正确地保存为单行,并且数组中的浮点数已以全精度保存。...2.将NumPy数组保存到.NPY文件 有时,我们希望以NumPy数组的形式保存大量数据,但我们需要在另一个Python程序中使用这些数据。...因此,我们可以将NumPy数组保存为一种本机二进制格式,既可以有效保存又可以加载。.npy文件格式适合这种使用情况,并且简称为“NumPy格式”。...与.npy格式一样,我们无法使用文本编辑器检查已保存文件的内容,因为文件格式为二进制。 3.2从NPZ文件加载NumPy数组的示例 我们可以使用load()函数来加载此文件。

    7.7K10

    TensorFlow2.0(12):模型保存与序列化

    本文介绍两种持久化保存模型的方法: 在介绍这两种方法之前,我们得先创建并训练好一个模型,还是以mnist手写数字识别数据集训练模型为例: import tensorflow as tf from tensorflow...新加载出来的new_model在结构、功能、参数各方面与model是一样的。 通过save()方法,也可以将模型保存为SavedModel 格式。...='tf') # 将模型保存为SaveModel格式 WARNING:tensorflow:From /home/chb/anaconda3/envs/study_python/lib/python3.7...,但有时候,我们仅对部分信息感兴趣,例如仅对模型的权重参数感兴趣,那么就可以通过save_weights()方法进行保存。...at 0x7f49c42b87d0> 注:本系列所有博客将持续更新并发布在github上,您可以通过github下载本系列所有文章笔记文件。

    1.8K10

    使用Java部署训练好的Keras深度学习模型

    我一直在探索深度学习的一个用例是使用Python训练Keras模型,然后使用Java产生模型。...一旦你有一个可以部署的模型,你可以将它保存为h5格式并在Python和Java应用程序中使用它。在本教程中,我们使用我过去训练的模型(“预测哪些玩家可能购买新游戏”,模型用了Flask)进行预测。...,它表示我们可以在Python和Java应用程序中部署的训练模型。...使用DL4J进行Keras预测 现在我们已经设置了库,我们可以开始使用Keras模型进行预测。我编写了下面的脚本来检验加载Keras模型并对样本数据集进行预测。第一步是从h5文件加载模型。...实时预测 现在我们已经在Java中运行了Keras模型,我们可以开始提供模型预测。我们将采用的第一种方法是使用Jetty在Web上设置端点以提供模型预测。

    5.3K40

    Keras神经网络转到Android可用的模型

    这是一篇对手册性质的文章,如果你刚好从事AI开发,可以参考这文章来进行模型转换。...转 Tensorflow 转换过程需要先把网络结构和权重加载到model对象, 然后用 tf.train.Saver 来保存为 ckpt 文件。...Tensorflow 提供了python脚本用来固化,位置在 /usr/local/lib/python3.6/site-packages/tensorflow/python/tools/freeze_graph.py...文件的名称 output_node_names: 网络输出节点 input_binary: 输入文件是否为二进制 下面的命令直接给出了如何转换,对于几个参数的意义比较难理解的是倒数第二个,文章后面再给出对它的解释...之后可以就用tensorboard查看log文件了。 tensorboard是一个把网络视图话的工具,可以在浏览器上直接查看网络结构。

    1.7K20

    Keras学习笔记(七)——如何保存、加载Keras模型?如何单独保存加载权重、结构?

    你可以使用 model.save(filepath) 将 Keras 模型保存到单个 HDF5 文件中,该文件将包含: 模型的结构,允许重新创建模型 模型的权重 训练配置项(损失函数,优化器) 优化器状态...# 删除现有模型 # 返回一个编译好的模型 # 与之前那个相同 model = load_model('my_model.h5') 另请参阅如何安装 HDF5 或 h5py 以在 Keras 中保存我的模型...2.只保存/加载模型的结构 如果您只需要保存模型的结构,而非其权重或训练配置项,则可以执行以下操作: # 保存为 JSON json_string = model.to_json() # 保存为 YAML...yaml_string = model.to_yaml() 生成的 JSON/YAML 文件是人类可读的,如果需要还可以手动编辑。...只保存/加载模型的权重 如果您只需要 模型的权重,可以使用下面的代码以 HDF5 格式进行保存。 请注意,我们首先需要安装 HDF5 和 Python 库 h5py,它们不包含在 Keras 中。

    5.9K50

    谷歌发布 TensorFlow 1.5,全面支持动态图机制和 TensorFlow Lite

    AI 研习社将此次的更新编译整理如下: 重大改变 基于 CUDA 9 和 cuDNN 7 来构建预建的二进制文件; Linux 二进制文件是在 ubuntu 16 容器环境下构建的,这可能会导致与用...ubuntu 14 构建的文件不兼容; 从 1.6 版本开始,预建二进制文件中将会使用 AVX 指令集,如果老版本不支持 AVX 指令集,将会引发问题。...主要的更新 支持 Eager execution 预览版本 TensorFlow Eager Execution 是一个命令式、由运行定义的接口,可以在即时的运行错误下进行快速调试,与 Python 工具进行整合...,一旦从 Python 被调用可立即执行操作。...具备如下三点特征: 轻量级:支持机器学习模型的推理在较小二进制数下进行,能快速初始化 / 启动。 跨平台:可以在许多不同的平台上运行,现在支持 Android 和 iOS。

    1.1K40

    使用LSTM模型预测多特征变量的时间序列

    Hi,我是Johngo~ 今儿和大家聊聊关于「使用LSTM模型预测多特征变量的时间序列」的一个简单项目。 使用LSTM模型预测多特征变量的时间序列,能够帮助我们在各种实际应用中进行更准确的预测。...本项目使用Python和TensorFlow/Keras框架来实现一个LSTM模型,对多特征变量的时间序列数据进行预测。 实现流程 数据准备 收集和准备时间序列数据集。 处理缺失值和异常值。...你可以使用以下代码生成一个模拟的数据集,然后保存为multi_feature_time_series.csv文件。...然后,大家可以使用生成的CSV文件进行后续的LSTM时间序列预测模型的构建和训练。 完整代码实现 下面是完整的代码实现,包括生成数据集、数据预处理、LSTM模型构建和训练,以及模型评估和预测。 1....CSV文件,我们可以使用上述步骤完成基于LSTM的多特征变量时间序列预测模型的构建和训练。

    1.1K10

    SavedModel格式TensorFlow模型转为frozen graph

    本文介绍基于Python的tensorflow库,将tensorflow与keras训练好的SavedModel格式神经网络模型转换为frozen graph格式,从而可以用OpenCV库在C++等其他语言中将其打开的方法...而同时,基于OpenCV库,我们则可以在简单、快速地配置完其环境后,就基于1个函数对训练好的tensorflow库神经网络模型加以读取、使用。...最后,就可以通过tf.io.write_graph()函数,将冻结图写入指定的目录中,输出文件名为frozen_graph.pb,as_text = False表示以二进制格式保存这个模型(如果不加这个参数...执行上述代码,在结果文件夹中,我们将看到1个.pb格式的神经网络模型结果文件,如下图所示。   ...接下来,在C++、Python等语言的OpenCV库中,我们都可以基于cv::dnn::readNetFromTensorflow()这个函数,来读取我们的神经网络模型了。

    15710

    Tensorflow边框检测入门【Bouding Box Regression 】

    我们将使用Tensorflow的Keras API实现一个边框回归模型。现在开始吧!如果你可以访问Google Colab的话,可以访问这里。...我们的目标是解析图像并进行归一化处理,同时从XML格式的标注文件中解析得到目标物体包围框的4个顶点的坐标: ? 如果你希望创建自己的标注数据集也没有问题!你可以使用LabelImage。...利用LabelImage你可以快速标注目标物体的包围边框,然后保存为PASCAL-VOC格式: ? 2、数据处理 首先我们需要处理一下图像。...我们使用xmltodict包将XML文件转换为Python的字典对象: import xmltodict import os bboxes = [] classes_raw = [] annotations_paths...=100 , batch_size=3 )model.save( 'model.h5') 5、在图像上绘制边框 现在我们的模型已经训练好了,可以用它来检测一些测试图像并绘制检测出的对象的边框,

    1.1K20

    Keras入门必看教程(附资料下载)

    你可以在这里读到更多关于 Keras 的内容: Keras, Python 的深度学习库 深度学习究竟是什么? 深度学习是指具有多隐层的神经网络, 其可以学习输入数据的抽象表示....版本升级也很简单: 完美, 现在就可以开始了, 新建一个 Python 文件, 命名为 keras_cnn_example.py....对此, 我们可以进行简单的修正: 再看一眼: 好多了! 第七步: 定义模型架构 现在, 我们就可以定义我们的模型架构了. 在实际研发工作中, 研究员会花大量的时间研究模型架构....第九步: 用训练数据进行模型拟合 要拟合模型, 我们需要做的就是声明训练的批次大小以及训练次数, 然后传入训练数据. 简单吗?...如果希望继续学习, 我们推荐学习其他的 Keras 样例模型 和斯坦福大学的计算机视觉课程. 完整的代码 以下就是本教程的所有代码, 保存为一个脚本: ? END. 来源:1024深度学习 下载 ?

    1.7K70

    Keras入门必看教程

    你可以在这里读到更多关于 Keras 的内容: Keras, Python 的深度学习库 深度学习究竟是什么? 深度学习是指具有多隐层的神经网络, 其可以学习输入数据的抽象表示....完美, 现在就可以开始了, 新建一个 Python 文件, 命名为 keras_cnn_example.py. 第三步: 导入库和模块 首先, 导入 numpy 并设置伪随机数生成器设置种子....对此, 我们可以进行简单的修正: ? 再看一眼: ? 好多了! 第七步: 定义模型架构 现在, 我们就可以定义我们的模型架构了. 在实际研发工作中, 研究员会花大量的时间研究模型架构....第九步: 用训练数据进行模型拟合 要拟合模型, 我们需要做的就是声明训练的批次大小以及训练次数, 然后传入训练数据. ? 简单吗?...如果希望继续学习, 我们推荐学习其他的 Keras 样例模型 和斯坦福大学的计算机视觉课程. 完整的代码 以下就是本教程的所有代码, 保存为一个脚本: ?

    1.2K60

    9大Python深度学习库,选出最适合你的那个

    你可以在一个空白文档里定义你的模型架构和解决方案,建立一个JSON文件类型的.prototxt配置文件。Caffe二进制文件提取这些.prototxt文件并培训你的网络。...Caffe完成培训之后,你可以把你的网络和经过分类的新图像通过Caffe二进制文件,更好的就直接通过Python或MATLAB的API。...虽然我很喜欢Caffe的性能(它每天可以在K40 GPU上处理60万张图片),但相比之下我更喜欢Keras和mxnet。 主要的原因是,在.prototxt文件内部构建架构可能会变得相当乏味和无聊。...如果没有Theano,我们根本不会达到现有的深度学习库的数量(特别是在Python)。...在Theano建设卷积神经网络就像只用本机Python中的numpy写一个定制的支持向量机(SVM),当然这个对比并不是很完美。 你可以做到吗? 当然可以。 它值得花费您的时间和精力吗? 嗯,也许吧。

    1.3K40

    Keras还是TensorFlow?深度学习框架选型实操分享

    ▌Keras 通过 tf.keras 模块构建到 TensorFlow 中 可以看到,我们通过引入 TensorFlow (tf) 并调用 tf.keras,在 Python shell 中展示了...我们先回顾一下该模块中两个重要的 Python 文件: minivggnetkeras.py:此文件是基于 Keras 实现的 MiniVGGNet 网络,一个基于 VGGNet 的深度学习模型。...需要注意的是: 在第 3 行,将 Matplotlib 的后端设置为 Agg,以便我们可以能将训练图保存为图像文件。 在第 6 行,我们导入 MiniVGGNetKeras 类。...现在可以开始训练我们的模型,代码如下: 在第 40-46 行,我们设置训练过程所需的一些参数和模型优化方法。...你可以在 TensorFlow 中的 tf.keras 模块,使用一行代码来将 CRELU 函数添加到我们的 Keras 模型中。

    1.7K30

    基于Keras的多标签图像分类

    有了这个结构,就可以run起来一个multi label的神经网络了。这个只是基础中的基础,关于multi-label的度量代码才是我们研究一个机器学习问题的核心。 1....:保存的模型文件,用于 classify.py 进行对测试图片的分类; mlb.pickle:由 scikit-learn 模块的 MultiLabelBinarizer 序列化的文件,将所有类别名字保存为一个序列化的数据结构形式...:主要包含建立 Keras 的模型代码文件–smallervggnet.py examples:7张测试图片 3....实现网络模型以及训练 现在已经搭建好我们的网络模型SmallerVGGNet 了,接下来就是 train.py 这份代码,也就是实现训练模型的代码。..., opencv-python 1 当然,还需要安装 tensorflow ,如果仅仅采用 CPU 版本,可以直接 pip install tensorflow ,而如果希望采用 GPU ,那就需要安装

    1.8K30

    构建自动车牌识别系统

    本文介绍了如何从零开始开发车牌对象检测模型。整体项目中还包含了一个使用Flask的API。在本文中我们将解释如何从头开始训练自定义对象检测模型。...然后在对图像进行标记后,我们将进行数据预处理,在TensorFlow 2中构建和训练一个深度学习目标检测模型(Inception Resnet V2)。...最后我们将所有这些放在一起,并构建深度学习模型管道。在最后一个模块中,将使用FLASK Python创建一个Web应用程序项目。这样,我们可以将我们的应用程序发布供他人使用。...现在,让我们看看如何使用Python解析信息。 我使用xml.etree python库来解析XML中的数据,并导入pandas和glob。首先使用glob获取在标记过程中生成的所有XML文件。...然后提取xmin,xmax,ymin,ymax并将这些值保存在字典中 在第8至17行中。然后,将其转换为pandas的df,并将其保存到CSV文件中,如下所示。

    2.4K31
    领券