pyfunc_0 的返回值是 double,但需要 float

2024-04-17

我目前正在尝试更好地了解 Tensorflows CustomLayer 功能。在实现这样的自定义层时,我遇到了以下错误:

/usr/lib/python3/dist-packages/skimage/util/dtype.py:110: UserWarning: Possible precision loss when converting from float64 to uint16
  "%s to %s" % (dtypeobj_in, dtypeobj))
/usr/lib/python3/dist-packages/skimage/exposure/exposure.py:307: RuntimeWarning: invalid value encountered in true_divide
  image = (image - imin) / float(imax - imin)
Traceback (most recent call last):
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/client/session.py", line 1323, in _do_call
    return fn(*args)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/client/session.py", line 1302, in _run_fn
    status, run_metadata)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/framework/errors_impl.py", line 473, in __exit__
    c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: 0-th value returned by pyfunc_0 is double, but expects float
         [[Node: model/pretrained/custom_layer_1/map/while/custom_image_op = PyFuncStateless[Tin=[DT_FLOAT], Tout=[DT_FLOAT], token="pyfunc_0", _device="/job:localhost/replica:0/task:0/device:CPU:0"](model/pretrained/custom_layer_1/map/while/TensorArrayReadV3/_49)]]
         [[Node: model/pretrained/custom_layer_1/map/while/TensorArrayWrite/TensorArrayWriteV3/_55 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_126_model/pretrained/custom_layer_1/map/while/TensorArrayWrite/TensorArrayWriteV3", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](^_cloopmodel/pretrained/custom_layer_1/map/while/NextIteration_1/_20)]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "train.py", line 94, in <module>
    trainer.run(sess)
  File "/home//Downloads/dl_ss_19-master/Ex4/train/trainer.py", line 128, in run
    self._train_epoch(sess)
  File "/home/train/trainer.py", line 49, in _train_epoch
    self._model_is_training: True})
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/client/session.py", line 889, in run
    run_metadata_ptr)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/client/session.py", line 1120, in _run
    feed_dict_tensor, options, run_metadata)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/client/session.py", line 1317, in _do_run
    options, run_metadata)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/client/session.py", line 1336, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: 0-th value returned by pyfunc_0 is double, but expects float
         [[Node: model/pretrained/custom_layer_1/map/while/custom_image_op = PyFuncStateless[Tin=[DT_FLOAT], Tout=[DT_FLOAT], token="pyfunc_0", _device="/job:localhost/replica:0/task:0/device:CPU:0"](model/pretrained/custom_layer_1/map/while/TensorArrayReadV3/_49)]]
         [[Node: model/pretrained/custom_layer_1/map/while/TensorArrayWrite/TensorArrayWriteV3/_55 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_126_model/pretrained/custom_layer_1/map/while/TensorArrayWrite/TensorArrayWriteV3", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](^_cloopmodel/pretrained/custom_layer_1/map/while/NextIteration_1/_20)]]

Caused by op 'model/pretrained/custom_layer_1/map/while/custom_image_op', defined at:
  File "train.py", line 61, in <module>
    prediction_logits = model.pretrained(img_conc)
  File "/home/model/pretrained.py", line 56, in create
    x = CustomLayer(output_dim=(224, 224, 3))(inputs)
  File "/local/tensorflow-1.4.0/python3.5/keras/engine/topology.py", line 603, in __call__
    output = self.call(inputs, **kwargs)
  File "/home/model/pretrained.py", line 41, in call
    res = tf.map_fn(preprocess_input, x)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/ops/functional_ops.py", line 389, in map_fn
    swap_memory=swap_memory)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/ops/control_flow_ops.py", line 2816, in while_loop
    result = loop_context.BuildLoop(cond, body, loop_vars, shape_invariants)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/ops/control_flow_ops.py", line 2640, in BuildLoop
    pred, body, original_loop_vars, loop_vars, shape_invariants)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/ops/control_flow_ops.py", line 2590, in _BuildLoop
    body_result = body(*packed_vars_for_body)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/ops/functional_ops.py", line 379, in compute
    packed_fn_values = fn(packed_values)
  File "/home/model/pretrained.py", line 30, in preprocess_input
    name='custom_image_op')
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/ops/script_ops.py", line 215, in py_func
    input=inp, token=token, Tout=Tout, name=name)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/ops/gen_script_ops.py", line 90, in _py_func_stateless
    "PyFuncStateless", input=input, token=token, Tout=Tout, name=name)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
    op_def=op_def)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/framework/ops.py", line 2956, in create_op
    op_def=op_def)
  File "/local/tensorflow-1.4.0/python3.5/tensorflow/python/framework/ops.py", line 1470, in __init__
    self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access

InvalidArgumentError (see above for traceback): 0-th value returned by pyfunc_0 is double, but expects float
         [[Node: model/pretrained/custom_layer_1/map/while/custom_image_op = PyFuncStateless[Tin=[DT_FLOAT], Tout=[DT_FLOAT], token="pyfunc_0", _device="/job:localhost/replica:0/task:0/device:CPU:0"](model/pretrained/custom_layer_1/map/while/TensorArrayReadV3/_49)]]
         [[Node: model/pretrained/custom_layer_1/map/while/TensorArrayWrite/TensorArrayWriteV3/_55 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device_incarnation=1, tensor_name="edge_126_model/pretrained/custom_layer_1/map/while/TensorArrayWrite/TensorArrayWriteV3", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](^_cloopmodel/pretrained/custom_layer_1/map/while/NextIteration_1/_20)]]

到目前为止,我尝试强制转换各种参数并更改函数的参数。然而这根本不影响结果。我很茫然。有人有 pyfunc_0 的经验吗?如果是,我该如何修复下面的代码?

我发现有用的链接:

https://github.com/cesc-park/attend2u/issues/2 https://github.com/cesc-park/attend2u/issues/2

https://github.com/rstudio/tensorflow/issues/169 https://github.com/rstudio/tensorflow/issues/169

“pyfunc_0 返回的第 0 个值是双精度值,但需要浮点型”尽管我认为它返回浮点型 https://stackoverflow.com/questions/54278894/0-th-value-returned-by-pyfunc-0-is-double-but-expects-float-though-i-think-it

在 keras 自定义层中包含高级计算(类似 scikit) https://stackoverflow.com/questions/57605021/including-advanced-computation-scikit-like-in-a-keras-custom-layer

def equalize(img):
    img_adapteq = 255 * exposure.equalize_adapthist(img // 255)
    return img_adapteq.astype(np.float)


def preprocess_input(img):
    x = tf.py_func(equalize,
                   [img],
                   'float32',
                   stateful=False,
                   name='custom_image_op')
    return tf.cast(x, tf.float32)


class CustomLayer(Layer):
    def __init__(self, output_dim, **kwargs):
        self.output_dim = output_dim
        self.trainable = False
        super(CustomLayer, self).__init__(**kwargs)

    def call(self, x):
        res = tf.map_fn(preprocess_input, x)
        res.set_shape([x.shape[0],
                       self.output_dim[1],
                       self.output_dim[0],
                       x.shape[-1]])
        return res

inputs = Input(shape=(224, 224, 3), tensor=x)
x = CustomLayer(output_dim=(224, 224, 3))(inputs)

None

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

pyfunc_0 的返回值是 double,但需要 float 的相关文章

随机推荐

  • 为桌面构建 flutter 应用程序

    我看到一些人成功地为除通常的 Android IOS 之外的其他操作系统构建了 flutter 应用程序 我的问题很简单 如何 目前为 mac windows 构建 flutter 应用程序的流程是什么 没有必要这样生产准备就绪 一些实验性
  • Pandas groupby 根据另一列中的值(0 或 1)选择最后一行或倒数第二行

    我有一个与客户的数据框 每个客户都有一些观察结果和变量 其中一些不再是客户 我的问题如下 我想按客户分组 如果客户仍然是客户 则选择最后一行 如果客户不再是客户 则选择倒数第二行 对于客户的所有观察 我有一个名为 churned 的列 如果
  • 获取 Android 操作系统中已注册的 Pending Intent 列表

    我注册了计划在给定时间执行的警报 并且根据计划列表的大小 可以有很多警报 但我有两个问题仍然不清楚 1 如何在操作系统中查询我注册的待处理意图 我需要这个来测试 我想要的伪代码是这样的 List
  • 如何向 ionic 4 应用程序添加和使用 bootstrap?

    我正在构建一个 ionic 4 应用程序 我想使用 bootstrap 而不使用 CDN 方法 我已经使用 npm install bootstrap 安装了 bootstrap 在 Ionic 4 中 可以通过使用 angular jso
  • 如何更改 PostgreSQL 中的最大列宽?

    我有一个简单的 SQL 查询 它从一个表中选择几行 其中一列包含很长的字符串 我想设置最大列宽 以便更容易阅读 我无法通过 pset 访问环境变量 None
  • 测试 SQL 查询的最佳方法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我遇到了一个问题 复杂的 SQL 查询总是出错 从本质上讲 这会导致向错误的客户发送邮件以及其他类似的 问题 大家对于创建这样的 SQL 查询有
  • 如何在 Jetpack Compose Pager 中处理多个 TextField 焦点?

    我有一个寻呼机 每个页面上都有一个 TextField 我正在做过渡animateScrollToPage 如何让每个页面上的 TextField 获得焦点 当我给予Modifier focusRequster 到文本字段并检查index
  • 可选链的动态类型与赋值不同

    可选的链接返回always一个可选值 为了反映可以对 nil 值调用可选链接的事实 可选链接调用的结果始终是可选值 即使您正在查询的属性 方法或下标返回非可选值 Swift 编程语言 https developer apple com li
  • QComboBox 是否可以显示与其列表中不同的值?

    在 Linux 上使用 Qt 5 9 我有一个带有多个标签的 QComboBox qc new QComboBox qc gt addItem tr Red qc gt addItem tr Green qc gt addItem tr B
  • 用新的 Dataframe 替换一行

    我正在寻找一种更优雅的方法来从字典的值替换另一个数据帧中的数据帧 这是我必须使用的数据类型的示例 d 1 name bob age 22 Data 4 name sam age 30 Data 2 name tom age 20 Data
  • getDownloadUrl 是付费操作吗?

    我想知道是否getDownloadUrl在 Firebase 存储 Google Cloud Storage 上 一种获取存储上文件的公共 URL 的方法 是付费操作 即使读完之后文档 https cloud google com stor
  • DrawingPanel中刷新图片扩展了JPanel

    我必须在软件底部加载一个小图标 只是有一个加载 确定 错误图标 正如 http www article kth se lindsey JavaCourse Book Part1 Java Chapter06 images html 上的建议
  • 如何在服务器模式下运行H2数据库?

    我需要从我的应用程序以服务器模式启动 H2 数据库 尝试过以下代码 server Server createTcpServer start 这是连接的属性 javabase jdbc url jdbc h2 tcp localhost 90
  • Jekyll - 如何在根目录中创建页面?

    我正在使用 Jekyll 创建页面 文档建议 Jekyll 可以选择在根目录中创建页面 或为新页面创建新目录 From http jekyllrb com docs pages http jekyllrb com docs pages 页面
  • Log4Net 在单独的配置文件中

    我需要为新项目配置 log4net 当我将所有信息保存在 App config 文件中时 一切都工作得很好 我想把log4net的配置放在一个单独的配置文件中 取App1 config 这是我的 app config 完美运行
  • 三个不同表的内连接

    我在 Oracle APEX 工作 我想从三个不同的表中生成报告 患者 病史 治疗 通过INNER JOIN 表格如下 患者 Par Id Pk Pat Name Pat Gender 历史记录 His Id Pk Pat id Fk Tr
  • 生成精灵时指南针添加前斜线

    我刚刚生成了一个带有指南针的精灵 但由于某种原因 它在生成的类 url 中添加了一个前导斜杠 是否可以覆盖这个或者我的 config rb 中有什么错误 谢谢你的帮助 Joe 配置 rb gt http path css dir sass
  • 从嵌套列表创建新列表并将字符串转换为浮点数

    很抱歉问了一个已经被问过一百遍的问题 我是 Python 新手 我找到的解决方案似乎都不能解决我的问题 我有一个来自名为糖尿病的 csv 文件的嵌套列表 我在文件中读取并用逗号分隔元素 如下所示 for line in open diabe
  • .NET 日期时间转字符串

    有没有一种简单的方法可以将 DateTime 对象转换为这样的字符串表示形式 2010 03 03 10 38 48 我不确定上面的格式是什么 但它与通过 ToLongTimeString 等获得的模式不同 这是字符串生成器的情况吗 像这样
  • pyfunc_0 的返回值是 double,但需要 float

    我目前正在尝试更好地了解 Tensorflows CustomLayer 功能 在实现这样的自定义层时 我遇到了以下错误 usr lib python3 dist packages skimage util dtype py 110 Use