使用预训练的(Tensorflow)CNN提取特征

赫伯特

深度学习已成功应用于几种大型数据集,用于对少数几个类别(猫,狗,汽车,飞机等)进行分类,其性能优于诸如SIFT上的功能包,颜色直方图等更简单的描述符。

然而,训练这样的网络需要每节课大量数据和大量训练时间。但是,在花时间设计和训练这种设备并收集训练数据之前,通常很多人没有足够的数据,或者只是想了解卷积神经网络的性能。

在这种特定情况下,理想的情况是使用最先进的出版物使用的一些基准数据集来配置和培训网络,并将其简单地应用于可能用作特征提取器的某些数据集。

这样就为每个图像生成了一组功能,可以将这些功能提供给经典的分类方法,例如SVM,逻辑回归,神经网络等。

特别是当一个人没有足够的数据来训练CNN时,我可能会认为它的表现要好于对CNN进行少量样本训练的管道。

我当时在看tensorflow教程,但它们似乎总是有一个清晰的培训/测试阶段。我找不到带有预配置的CNN功能提取器的泡菜文件(或类似文件)。

我的问题是:是否存在这样的经过预先训练的网络,在哪里可以找到它们。或者:这种方法有意义吗?在哪里可以找到CNN +权重?

我尝试使用EDIT Wrt @john的注释'DecodeJpeg:0''DecodeJpeg/contents:0'并检查了不同的输出(:S)

import cv2, requests, numpy
import tensorflow.python.platform
import tensorflow as tf


response = requests.get('https://i.stack.imgur.com/LIW6C.jpg?s=328&g=1')
data = numpy.asarray(bytearray(response.content), dtype=np.uint8)
image = cv2.imdecode(data,-1)

compression_worked, jpeg_data = cv2.imencode('.jpeg', image)
if not compression_worked:
    raise Exception("Failure when compressing image to jpeg format in opencv library")
jpeg_data = jpeg_data.tostring()

with open('./deep_learning_models/inception-v3/classify_image_graph_def.pb', 'rb') as graph_file:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(graph_file.read())
    tf.import_graph_def(graph_def, name='')

with tf.Session() as sess:
    softmax_tensor = sess.graph.get_tensor_by_name('pool_3:0')

    arr0 = numpy.squeeze(sess.run(
        softmax_tensor,
        {'DecodeJpeg:0': image}
    ))

    arr1 = numpy.squeeze(sess.run(
        softmax_tensor,
        {'DecodeJpeg/contents:0': jpeg_data}
    ))

    print(numpy.abs(arr0 - arr1).max())

所以最大绝对差值1.27649,和一般所有的元件不同(特别是因为所平均值arr0arr1本身位于0之间- 0.5)。

我还希望它'DecodeJpeg:0'需要一个jpeg字符串,而不是一个numpy数组,为什么该名称还包含'Jpeg'。@john:您能说出您对自己的评论有多确定吗?

所以我想我不确定是什么,因为我期望训练有素的神经网络是确定性的(但最多是混乱的)。

ry

TensorFlow团队最近发布了经过ImageNet数据集训练的深度CNN。您可以从此处下载获取数据(包括模型图和经过训练的权重)的脚本相关的图像识别教程具有有关模型的更多详细信息。

虽然当前模型并未特别打包以供后续训练使用,但您可以探索修改脚本以在您自己的网络中重用模型的某些部分和经过训练的权重。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Tensorflow:如何从预先训练的CNN的特定层提取图像特征?

来自分类Dev

无法将自定义数据集加载到经过预训练的cnn以进行特征提取

来自分类Dev

使用预训练的VGG的多流CNN

来自分类Dev

Tensorflow:确定预训练的CNN模型的输出步幅

来自分类Dev

Tensorflow预训练的CNN:预测图像的相同类别

来自分类Dev

如何使用预训练模型的第一层来提取Keras模型中的特征(功能性API)

来自分类Dev

Tensorflow在离线中使用预训练模型

来自分类Dev

Tensorflow:提取经过训练的模型的特征

来自分类Dev

如何使用Tensorflow在CNN中训练图像

来自分类Dev

如何在Python中使用预训练的CNN模型

来自分类Dev

使用Pytorch从.ckpt文件加载预训练(CNN)模型

来自分类Dev

如何在 Tensorflow 中使用预训练模型?

来自分类Dev

TensorFlow.js - 使用预训练的 ResNet50 网络

来自分类Dev

使用预训练vgg19 tensorflow,Keras在CNN自动编码器中定义自定义损失(感知损失)

来自分类Dev

如何使用Tensorflow数据集进行CNN模型训练

来自分类Dev

如何使用Tensorflow数据集进行CNN模型训练

来自分类Dev

使用 TensorFlow 从我自己的数据中使用 VGGnet 提取特征?

来自分类Dev

CNN通过预训练模型可视化输出层

来自分类Dev

来自预训练的 InceptionV3 CNN 的随机结果

来自分类Dev

使用flairNLP提取特征

来自分类Dev

如何使用内置的tensorflow方法对特征张量和标签张量执行sklearn样式训练测试拆分?

来自分类Dev

Tensorflow:CNN 训练在零向量处收敛

来自分类Dev

训练后测试 tensorflow cnn 模型

来自分类Dev

在Tensorflow的seq2seq函数中使用预训练的词嵌入

来自分类Dev

如何在 Tensorflow 中使用没有类的预训练模型?

来自分类Dev

每次使用 TensorFlow 训练 CNN(MNIST 数据集)时,如何获得相同的损失值?

来自分类Dev

神经网络训练后如何提取图像特征?

来自分类Dev

根据RFE输出从训练数据集中提取特征列

来自分类Dev

建议如何使用Yolov4训练预训练模型?

Related 相关文章

  1. 1

    Tensorflow:如何从预先训练的CNN的特定层提取图像特征?

  2. 2

    无法将自定义数据集加载到经过预训练的cnn以进行特征提取

  3. 3

    使用预训练的VGG的多流CNN

  4. 4

    Tensorflow:确定预训练的CNN模型的输出步幅

  5. 5

    Tensorflow预训练的CNN:预测图像的相同类别

  6. 6

    如何使用预训练模型的第一层来提取Keras模型中的特征(功能性API)

  7. 7

    Tensorflow在离线中使用预训练模型

  8. 8

    Tensorflow:提取经过训练的模型的特征

  9. 9

    如何使用Tensorflow在CNN中训练图像

  10. 10

    如何在Python中使用预训练的CNN模型

  11. 11

    使用Pytorch从.ckpt文件加载预训练(CNN)模型

  12. 12

    如何在 Tensorflow 中使用预训练模型?

  13. 13

    TensorFlow.js - 使用预训练的 ResNet50 网络

  14. 14

    使用预训练vgg19 tensorflow,Keras在CNN自动编码器中定义自定义损失(感知损失)

  15. 15

    如何使用Tensorflow数据集进行CNN模型训练

  16. 16

    如何使用Tensorflow数据集进行CNN模型训练

  17. 17

    使用 TensorFlow 从我自己的数据中使用 VGGnet 提取特征?

  18. 18

    CNN通过预训练模型可视化输出层

  19. 19

    来自预训练的 InceptionV3 CNN 的随机结果

  20. 20

    使用flairNLP提取特征

  21. 21

    如何使用内置的tensorflow方法对特征张量和标签张量执行sklearn样式训练测试拆分?

  22. 22

    Tensorflow:CNN 训练在零向量处收敛

  23. 23

    训练后测试 tensorflow cnn 模型

  24. 24

    在Tensorflow的seq2seq函数中使用预训练的词嵌入

  25. 25

    如何在 Tensorflow 中使用没有类的预训练模型?

  26. 26

    每次使用 TensorFlow 训练 CNN(MNIST 数据集)时,如何获得相同的损失值?

  27. 27

    神经网络训练后如何提取图像特征?

  28. 28

    根据RFE输出从训练数据集中提取特征列

  29. 29

    建议如何使用Yolov4训练预训练模型?

热门标签

归档