如何在Google机器学习中将jpeg图像转换为json文件

2024-05-12

我正在研究 Google Cloud ML,我想对 jpeg 图像进行预测。为此,我想使用:

gcloud beta ml 预测 --instances=INSTANCES --model=MODEL [--version=VERSION]

(https://cloud.google.com/ml/reference/commandline/predict https://cloud.google.com/ml/reference/commandline/predict)

Instances 是包含图像所有信息的 json 文件的路径。 如何从 jpeg 图像创建 json 文件?

非常感谢!!


第一步是确保导出的图形具有可以接受 JPEG 数据的占位符和操作。请注意,CloudML 假设您正在发送一批图像。我们必须使用一个tf.map_fn解码一批图像并调整其大小。根据模型的不同,可能需要对数据进行额外的预处理以标准化数据等。如下所示:

# Number of channels in the input image
CHANNELS = 3

# Dimensions of resized images (input to the neural net)
HEIGHT = 200
WIDTH = 200

# A placeholder for a batch of images
images_placeholder = tf.placeholder(dtype=tf.string, shape=(None,))

# The CloudML Prediction API always "feeds" the Tensorflow graph with
# dynamic batch sizes e.g. (?,).  decode_jpeg only processes scalar
# strings because it cannot guarantee a batch of images would have
# the same output size.  We use tf.map_fn to give decode_jpeg a scalar
# string from dynamic batches.
def decode_and_resize(image_str_tensor):
  """Decodes jpeg string, resizes it and returns a uint8 tensor."""

  image = tf.image.decode_jpeg(image_str_tensor, channels=CHANNELS)

  # Note resize expects a batch_size, but tf_map supresses that index,
  # thus we have to expand then squeeze.  Resize returns float32 in the
  # range [0, uint8_max]
  image = tf.expand_dims(image, 0)
  image = tf.image.resize_bilinear(
      image, [HEIGHT, WIDTH], align_corners=False)
  image = tf.squeeze(image, squeeze_dims=[0])
  image = tf.cast(image, dtype=tf.uint8)
  return image

decoded_images = tf.map_fn(
    decode_and_resize, images_placeholder, back_prop=False, dtype=tf.uint8)

# convert_image_dtype, also scales [0, uint8_max] -> [0, 1).
images = tf.image.convert_image_dtype(decoded_images, dtype=tf.float32)

# Then shift images to [-1, 1) (useful for some models such as Inception)
images = tf.sub(images, 0.5)
images = tf.mul(images, 2.0)

# ...

另外,我们需要确保正确标记输入,在这种情况下,输入的名称(映射中的键)必须以_bytes。当发送base64编码的数据时,它会让CloudML预测服务知道它需要解码数据:

inputs = {"image_bytes": images_placeholder.name}
tf.add_to_collection("inputs", json.dumps(inputs))

gcloud 命令期望的数据格式如下:

{"image_bytes": {"b64": "dGVzdAo="}}

(注意,如果image_bytes是模型的唯一输入,您可以简化为{"b64": "dGVzdAo="}).

例如,要从磁盘上的文件创建此文件,您可以尝试以下操作:

echo "{\"image_bytes\": {\"b64\": \"`base64 image.jpg`\"}}" > instances

然后将其发送到服务,如下所示:

gcloud beta ml predict --instances=instances --model=my_model

请注意,当直接向服务发送数据时,您发送的请求正文需要包装在“实例”列表中。因此,上面的 gcloud 命令实际上将以下内容发送到 HTTP 请求正文中的服务:

{"instances" : [{"image_bytes": {"b64": "dGVzdAo="}}]}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Google机器学习中将jpeg图像转换为json文件 的相关文章

  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data
  • Pandas loc 有条件的替代方案

    我计划提高非 Pandas 开发人员的可读性 我有以下内容workingPython 代码使用 loc new value stackoverflow s query nbc SUGGESTED suggested QUERY query
  • 在 PYTHON 中读取 EXCEL 时,“utf-16-le”编解码器无法解码字节

    我正在尝试读取不同语言 阿拉伯语 希腊语 意大利语 希伯来语等 的各种数量的 xls 文件 当我尝试调用 open workbook 函数时 出现如下所示的错误 不知道如何将格式设置为任何语言 Code book xlrd open wor
  • 如何在 R 或 Python 中制作旭日图?

    到目前为止 我一直无法找到一个可以创建旭日图的 R 库约翰 斯塔斯科 http www cc gatech edu gvu ii sunburst 有人知道如何在 R 或 Python 中实现这一点吗 在极坐标投影中使用 matplotli
  • 如何在 py_function 之后重塑(图像,标签)数据集

    我正在尝试读取自定义映射数据集进行训练 但是在使用 py function 映射数据集后 我得到了未知的形状 例如 def process path file path label get label file path img tf io
  • Plotly Python - 热图 - 更改悬停文本 (x,y,z)

    我有一个用 python 绘制的热图 悬停文本工作完美 但它的每个变量都带有 x y 或 z 前缀 如下所示 有什么办法可以改变这个 即x FY y Month 和z Count 这是生成上面热图的代码 dfreverse df hml v
  • Flask-login:无法理解它是如何工作的

    我试图理解如何Flask Login https flask login readthedocs org en latest works 我在他们的文档中看到他们使用预先填充的用户列表 我想使用数据库存储的用户列表 但是 我不明白其中的一些
  • RTSP 设置后接收 RTP 数据包

    我正在尝试使用 Python 从 IP 摄像机流式传输 RTP 数据包 我能够使用 RTSP 协议发送描述 设置和播放命令 但是 我无法开始使用 RTP 传输实际视频流 这是代码 import socket def printrec rec
  • 为什么我应该在 Python 中引用“名称”和“绑定”而不是“变量”和“赋值”?

    为什么我应该在 Python 中引用 名称 和 绑定 而不是 变量 和 赋值 我知道这个问题有点笼统 但我真的很想知道 在 C 和 C 中 变量是命名的内存位置 变量的值是存储在该位置的值 分配给变量并修改该值 所以变量是内存位置 而不是它
  • 运行 Sublime Text 3 插件时保存编辑

    为了理解我想要实现的目标 在另一个视图中打印延迟文本 我正在尝试使这个 sublime text 3 插件正常运行我想使用运行方法参数中传递的编辑来调用我的类的多个方法 如下所示 sample code nothing real class

随机推荐

  • 使用旧的 ruby​​gems 版本进行捆绑安装

    我遇到的问题似乎与1个月前的问题 https stackoverflow com questions 38279896 rubygems 2 0 14 is not threadsafe bunder install message whe
  • 开源隐形 reCAPTCHA 替代方案 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有像 Google 的 Invisible reCAPTCHA V2 这样接近或最好的开源解决方案
  • 如何在Unix中将相对路径转换为绝对路径[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想转换 相对路径 home stevin data APP SERVICE datafile txt to 绝对路径 home stev
  • 从分离的头进行 Git 推送

    我以超然的态度做出了一些改变 我想用 Git 将这些更改推送到这个独立的头 我不希望我的更改进入开发分支 当然也不想进入主分支 我正在与另一个人一起处理一个文件 分支示例 develop master HEAD detached at or
  • 用css制作一个加号[重复]

    这个问题在这里已经有答案了 我有一个模型 用于制作看起来非常简单的加号 然而 我的 CSS 技能并不是很好 制作圆圈没什么大不了的 但在里面制作加号我似乎无法弄清楚 这就是我正在尝试做的事情 Mockup 这是我目前拥有的 到目前为止 这是
  • 节点异步循环 - 如何使该代码按顺序运行?

    我知道有几个关于此的帖子 但根据我发现的那些帖子 这应该可以正常工作 我想在循环中发出 http 请求 并且不希望循环迭代 直到触发请求回调 我正在使用异步库 如下所示 const async require async const req
  • C++ 从模板参数中解压参数包

    如何实现下面我想要的 我要解压的参数包不在函数参数列表中 而是在模板参数列表中 include
  • 从频率表生成 data.frame

    我在 2 4 数组中有包含 500 个观察值的合成数据 datax array c 120 181 50 43 41 33 24 8 dim c 2 4 dimnames datax list gender c male female pu
  • Orientation改变时如何处理Activity?

    我正在编写一个活动 它从服务器加载数据并使用 ArrayAdapter 将其显示为列表 为此 我显示了一个进度对话框 即加载 同时它从服务器加载所有数据 然后我在处理程序中关闭该对话框 我的问题是 当我更改方向时 会再次显示进度对话框 这是
  • R 抑制系统或 shell 命令的控制台输出

    我有这个 Windows 批处理文件 我使用 R 从 R 调用该文件shell 命令 该批处理文件执行一些计算并将它们写入磁盘上 也写入屏幕上 我只对磁盘输出感兴趣 我无法更改批处理文件 批处理文件可能有点愚蠢 例如 echo off ec
  • 发送WM_SETTEXT时如何避免EN_CHANGE通知?

    我有一个 CEdit 派生控件 当基本数据为空时 该控件显示字符串 N A 我最近添加了代码 以在控件获得焦点时清空控件 SetWindowText 并在用户离开焦点时将其设置回 N A SetWindowText N A 控空 唯一的问题
  • capistrano deploy.rb 中的 require 找不到文件

    我有一个 Rails 3 0 5 应用程序 我正在设置 capistrano 来使用配方 在我的配置目录中 我有一个名为 database capistrano rb 的文件 在我的deploy rb中 也在配置目录中 我有以下行 就在开头
  • Angular2 authguards 执行异步函数失败

    我想通过检查用户是否从服务器登录来保护我的路由 但异步函数不会被执行 这是我的代码 canActivate route ActivatedRouteSnapshot state RouterStateSnapshot Observable
  • 在 any() 语句中迭代一个小列表是否更快?

    在低长度迭代的限制下考虑以下操作 d 3 slice None None None slice None None None In 215 timeit any type i slice for i in d 1000000 loops b
  • Keras 通过设置种子获得不同的结果[重复]

    这个问题在这里已经有答案了 在keras中 每次运行都有很高的方差和不稳定的性能 为了解决这个问题 根据https keras io getting started faq how can i obtain reproducible res
  • 表单输入不会采用百分比填充

    如果使用像素填充 我的表单输入会正确显示 但使用左侧和右侧的百分比填充会破坏它 我不明白为什么 它可以在 Safari 中运行 但在 Firefox 3 5 3 OSX 中损坏 问题是 当我使用百分比填充时 填充全部中断 因此输入值没有很好
  • 我试图理解为什么在使用 paramiko 1.7.6 时出现“权限被拒绝”错误

    谁能告诉我为什么我会收到以下错误 Traceback most recent call last File C Python27 connect py line 22 in
  • C++ sqrt 返回 -1.#IND000000000000

    具体来说 我正在做一些数学运算 并且应用程序不断崩溃 因为当 某些 数字被开方时 广泛使用的双精度碰巧获得值 1 IND000000000000 这是什么 不定 无穷 太大装不下 不是完美的平方根 有什么办法可以解决这个问题吗 提前致谢 编
  • 获取字母数字值的 Max()

    我有一个包含字母数字 ID 的字典 例如 a10a10 和 d10a9 我想要其中最大的 ID 意思是 9 当我使用以下代码时 d10a9 是 MAX 因为 9 排在 10 之前 var lsd new Dictionary
  • 如何在Google机器学习中将jpeg图像转换为json文件

    我正在研究 Google Cloud ML 我想对 jpeg 图像进行预测 为此 我想使用 gcloud beta ml 预测 instances INSTANCES model MODEL version VERSION https cl