当我运行这行代码时:
tf.config.optimizer.set_jit(True)
Run Code Online (Sandbox Code Playgroud)
要启用XLA in TensorFlow 2.1
,我收到以下错误:
InternalError: libdevice not found at ./libdevice.10.bc
[[{{node cluster_1_1/xla_compile}}]]
Run Code Online (Sandbox Code Playgroud)
我在这里查看了这篇文章: https: //github.com/google/jax/issues/989
但我似乎无法弄清楚如何通过Anaconda
和使用来做到这一点os.environ['XLA_FLAGS']
,而不是必须symlink command
事先运行。
例如,我尝试过:
os.environ['XLA_FLAGS'] = "--xla_gpu_cuda_data_dir=/anaconda_path/envs/env/lib/libdevice.10.bc"
Run Code Online (Sandbox Code Playgroud)
但我仍然遇到同样的错误。任何提示将非常感谢!
我在用着Ubuntu 18.04, TensorFlow 2.1, and Python 3.7.7
。
我有一个 NumPy 数组,每行代表一些 (x, y, z) 坐标,如下所示:
a = array([[0, 0, 1],
[1, 1, 2],
[4, 5, 1],
[4, 5, 2]])
Run Code Online (Sandbox Code Playgroud)
我还有另一个 NumPy 数组,其中包含该数组的 z 坐标的唯一值,如下所示:
b = array([1, 2])
Run Code Online (Sandbox Code Playgroud)
如何将函数(我们称之为“f”)应用于 a 中与 b 中的值相对应的每个行组?例如,b 的第一个值是 1,因此我将获取 a 中 z 坐标为 1 的所有行。然后,我将一个函数应用于所有这些值。
最后,输出将是一个与 b 形状相同的数组。
我正在尝试对其进行矢量化以使其尽可能快。谢谢!
预期输出示例(假设 f 是 count()):
c = array([2, 2])
Run Code Online (Sandbox Code Playgroud)
因为数组 a 中有 2 行,数组 b 中的 z 值为 1,数组 a 中有 2 行,数组 b 中的 z 值为 2。
一个简单的解决方案是像这样迭代数组 b:
for val in b: …
Run Code Online (Sandbox Code Playgroud)