当前位置: 首页 > 面试题库 >

在张量流中馈送图像数据以进行转移学习

皇甫德庸
2023-03-14
问题内容

我正在尝试使用tensorflow进行迁移学习。我从教程中下载了预训练的模型inception3。在代码中,为了进行预测:

prediction = sess.run(softmax_tensor,{'DecodeJpeg/contents:0'}:image_data})

有没有办法提供png图像。我尝试更改DecodeJpeg为,DecodePng但没有成功。此外,如果我要馈送已解码的图像文件(例如numpy数组或一批数组),该怎么办?

谢谢!!


问题答案:

中使用的出厂的InceptionV3图形classify_image.py仅支持开箱即用的JPEG图像。您可以通过两种方式将此图用于PNG图像:

  1. 例如使用PIL将PNG图像转换为heightx widthx 3(通道)的Numpy数组,然后馈入张量:'DecodeJpeg:0'

    import numpy as np
    

    from PIL import Image

    image = Image.open(“example.png”)
    image_array = np.array(image)[:, :, 0:3] # Select RGB channels only.

    prediction = sess.run(softmax_tensor, {‘DecodeJpeg:0’: image_array})

或许令人混淆,'DecodeJpeg:0'输出 的的DecodeJpeg运算,所以通过将该料张量,你能养活原始图像数据。

  1. tf.image.decode_png()op添加到导入的图形。从简单的开关美联储张的名字'DecodeJpeg/contents:0',以'DecodePng/contents:0'不起作用,因为没有'DecodePng'在运图运算。您可以通过使用input_map参数将这样的节点添加到图中tf.import_graph_def()

    png_data = tf.placeholder(tf.string, shape=[])
    

    decoded_png = tf.image.decode_png(png_data, channels=3)

    graph_def = …
    softmax_tensor = tf.import_graph_def(
    graph_def,
    input_map={‘DecodeJpeg:0’: decoded_png},
    return_elements=[‘softmax:0’])

    sess.run(softmax_tensor, {png_data: …})



 类似资料:
  • 问题内容: 我正在尝试让Apple的示例核心ML模型在2017年WWDC上演示以正常运行。我正在使用GoogLeNet尝试对图像进行分类(请参阅Apple机器学习页面)。该模型将CVPixelBuffer作为输入。我有一个用于本演示的名为imageSample.jpg的图像。我的代码如下: 我总是在输出而不是图像分类中遇到意外的运行时错误。我的转换图像的代码如下: 我从以前的帖子中获得了此代码。我

  • 问题内容: 在张量流中,我想从随机角度旋转图像,以进行数据增强。但是我在tf.image模块中找不到这种转换。 问题答案: 更新 :请参阅下面的@astromme答案。Tensorflow现在支持本地旋转图像。 在Tensorflow中没有本机方法的情况下可以执行的操作是这样的:

  • 我试图在张量流图中使用条件随机场损失。 我正在执行序列标记任务: 我有一系列元素作为输入。每个元素可以属于三个不同类中的一个。类以一种热编码方式表示:属于类0的元素由向量[表示。 我的输入标签(y)有大小(xx)。 我的网络产生相同形状的日志。 假设我所有的序列都有长度4。 这是我的代码: 我得到以下错误: 文件“/usr/local/lib/python2.7/dist-packages/ten

  • 前言 前面说过,在Node.js的世界里“事事皆回调”,学习使用Node.js,最不可能回避的就是“回调”(用“调回”更直观些)。无法回避,自然要积极面对,因此开源社区出现了很多代码流程控制的解决方案。比如:bluebird,q,以及这里要图解的async。 这种基础性的技术,社区的文档极其丰富,但是我们为什么还要介绍?个人觉得,原因很简单,它真的很有必要,在只需要顺序编码的世界里,没有关于回调的

  • 注意:本文是为v1 API编写的,但这些概念也适用于v2 API。它将在未来版本的v2 API中重新描述。 Envoy路由器支持将流量分发到两个或更多上游虚拟主机群集的路由。有两种常见的场景。 版本升级:到一条路由的流量逐渐从一个集群转移到另一个集群。更详细地描述参见流量转移部分。 A/B测试或多重测试:同时测试两个或更多版本的相同服务。流向路由的流量必须在运行不同版本相同服务的集群之间进行拆分。

  • 问题内容: 我有一个使用Keras和Tensorflow作为后端训练的模型,但是现在我需要将我的模型转换为特定应用程序的张量流图。我尝试执行此操作并进行了预测以确保其正常工作,但是与从model.predict()收集的结果进行比较时,我得到了非常不同的值。例如: 返回: keras预测的值是正确的,但tf图的结果却不正确。 如果它有助于了解最终的预期应用程序,那么我将使用tf.gradients