- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
要重现我的问题,请先尝试这个(使用 py_func 进行映射):
import tensorflow as tf
import numpy as np
def image_parser(image_name):
a = np.array([1.0,2.0,3.0], dtype=np.float32)
return a
images = [[1,2,3],[4,5,6]]
im_dataset = tf.data.Dataset.from_tensor_slices(images)
im_dataset = im_dataset.map(lambda image:tuple(tf.py_func(image_parser, [image], [tf.float32])), num_parallel_calls = 2)
im_dataset = im_dataset.prefetch(4)
iterator = im_dataset.make_initializable_iterator()
print(im_dataset.output_shapes)
它会给你 (TensorShape(None),)
但是,如果您尝试这样做(使用直接 tensorflow 映射而不是 py_func):
import tensorflow as tf
import numpy as np
def image_parser(image_name)
return image_name
images = [[1,2,3],[4,5,6]]
im_dataset = tf.data.Dataset.from_tensor_slices(images)
im_dataset = im_dataset.map(image_parser)
im_dataset = im_dataset.prefetch(4)
iterator = im_dataset.make_initializable_iterator()
print(im_dataset.output_shapes)
它会给你准确的张量维度 (3,)
最佳答案
这是 tf.py_func
的一个普遍问题,这是有意为之的,因为 TensorFlow 无法自行推断输出形状,例如参见 this answer .
如果需要,您可以自己设置形状,方法是将 tf.py_func
移动到解析函数中:
def parser(x):
a = np.array([1.0,2.0,3.0])
y = tf.py_func(lambda: a, [], tf.float32)
y.set_shape((3,))
return y
dataset = tf.data.Dataset.range(10)
dataset = dataset.map(parser)
print(dataset.output_shapes) # will correctly print (3,)
关于python - 使用 py_func 时,数据集 API 不会为其输出张量传递维度信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48823848/
我正在尝试使用 python 函数“IoU”作为 keras 损失函数,使用tensorflow.py_func,如下所示: def loss_fn(label, pred): return
这是在 tensorflow 中实现的 Faster R-CNN。 proposal_layer是implement通过 python 我很好奇梯度是否可以通过 tf.py_func 权重和偏差不断变
我目前正在使用 Tensorflow 开发四元数神经网络(我想使用 GPU)。 TensorFlow 不支持四元数,但是您可以将 than 表示为 4x4 实矩阵,因此可以在 TensorFlow 中
我有一个关于 tf.py_func 函数的简单问题。 我有一个形状为 (1,224,224,3) 的图像张量 my_img。为了测试 py_func,我将张量提供给 python 函数 return_
Python 版本 = 3.6.3Tensorflow 版本 = 1.3.0 我曾在 Keras 中工作,但现在正尝试直接在 TensorFlow 中工作。 我正在尝试实现 Keras 的 fit_g
根据文档,我可以使用 tf.py_func定义我自己的操作。它将接收 Numpy 数组并且必须返回 Numpy 数组。它没有明确写在文档中,但我从中得出结论,它将绑定(bind)到 CPU 设备? 如
我正在尝试在 TensorFlow 中创建一个简单的神经网络。唯一棘手的部分是我有一个使用 py_func 实现的自定义操作。 。当我传递 py_func 的输出时到 Dense层,TensorFlo
我正在尝试对 hdf5 文件中的数据进行排队。由于 Tensorflow 不支持 hdf5,因此我创建了一个 python 函数,该函数从 hdf5 文件中读取示例,并在到达文件末尾时引发 tf.er
我在使用 tensorflow 函数 py_func 时遇到一些效率问题。 上下文 在我的项目中,我有一批大小为 [? max_items m].第一个维度设置为 ? 因为它是一个动态形状(为自定义
我正在尝试使用 tf.py_func 和 tf.RegisterGradient 设置自定义渐变。具体来说,我正在尝试采用特征值的梯度 w.r.t 它的拉普拉斯算子。我得到了基本的工作,其中我的 py
我正在使用 tf.data.Dataset 编写输入管道.我想使用 python 代码来加载和转换我的样本,该代码返回一个张量字典。不幸的是,我不知道如何将其定义为传递给 tf.py_func 的输出
在使用 tf.py_func 实现在 for 循环中跨迭代共享变量的相同简单功能时,我观察到 Numpy 和纯 Tensorflow 的不同行为。 . 让我们从纯 Numpy 版本开始: def my
我尝试构建一个 tensorflow 模型 - 我在其中使用 tf.py_func 在普通 python 代码中创建部分代码。问题是当我将模型保存到 .pb 文件时,.pb 文件本身非常小并且不包含
我正在尝试使用自定义 py_func enqueue_op与 TensorFlow RandomShuffleQueue和QueueRunner 。我对TensorFlow很陌生并且很困惑。这是我现在
要重现我的问题,请先尝试这个(使用 py_func 进行映射): import tensorflow as tf import numpy as np def image_parser(image_n
我有一个保存的图形定义,它是用 tf.train.import_meta_graph 导入的。该图包含不可序列化的 py_func 操作。我可以在不从头开始构建图形的情况下定义 python 函数并将
我需要在 python 中编写一个自定义的 Op,它将根据模型和另一个将更新模型的 op 生成输出。在下面的示例代码中,我有一个非常简单的缩放器模型,w(但实际上它将是一个 nxm 矩阵)。我想出了如
我已经使用 numpy 实现了自定义池层,如下所示: def pooling_np(input): #input:[batch,h,v,channel] #output:[batch,h/2,v/2,
我在数据处理中使用 tf.data.Dataset,我想用 tf.py_func 应用一些 python 代码。 顺便说一句,我发现在 tf.py_func 中,我无法返回字典。有什么办法或解决方法吗
我想编写自己的调用 python 函数的 Keras 层。所以我遇到了 tf.py_func ,它实际上应该完成这项工作。 我尝试了以下操作:在 MyLayer 类的调用方法中,我将自定义 pytho
我是一名优秀的程序员,十分优秀!