问题标签 [tpu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
247 浏览

google-compute-engine - 在 VM 实例上使用 TPU 运行 python 脚本时出现问题

我通过云控制台(不是 ctpu、gcloud)创建了同名的 TPU 和 VM 实例。当我使用命令检查 VM 上的 tpu 时, gcloud compute tpus list 我的 TPU 已准备就绪。

但是当我运行 python 脚本时:

from tensorflow.contrib.cluster_resolver import TPUClusterResolver tpu_grpc_url = TPUClusterResolver(tpu="v3-nonpre", zone="us-central1-a").get_master()

它说googleapiclient.errors.HttpError: <HttpError 403 when requesting https://tpu.googleapis.com/v1alpha1/projects/red-splice-230206/locations/us-central1-a/nodes/v3-nonpre?alt=json returned "Request had insufficient authentication scopes.">

我应该做些什么来获得所需的身份验证?

0 投票
0 回答
314 浏览

tensorflow - 将 InMemoryEvaluatorHook 与 TPU 一起使用会引发异常

我尝试在训练我的模型时使用 InMemoryEvaluatorHook 和 TPUEstimator 来获取验证统计信息。使用estimator.train()and的循环estimator.evaluate()太昂贵了,因为它在每个时期都重建了图形,而不是尝试重用它(如本期所引用:https ://github.com/tensorflow/tensorflow/issues/13895 )。这是我使用的基本代码:

这导致了以下错误:

有没有更好的方法来使用 TPU 获取每个时期的验证统计信息?如果没有,你应该如何进行验证?

编辑:我似乎已经通过在没有钩子的情况下运行一步,然后用钩子运行完整的训练estimator.train()来克服这个错误。estimator.evaluate()不幸的是,在第一次评估后,重新开始训练出现错误:

澄清一下,在抛出错误之前会发生以下事情:两个初始化训练和评估对估计器的调用,训练一个时期,对验证集进行评估。当估算器尝试重新开始训练时,会抛出此异常。

这个未解决的问题可能是相关的:https ://github.com/tensorflow/tensor2tensor/issues/1202

0 投票
1 回答
520 浏览

tensorflow - 基本 TPU 跨分片优化器不工作

一般来说,有一些很好的例子使用 TF 优化器来解决一般(非深度学习)问题。鉴于:

https://databricks.com/tensorflow/training-and-convergence https://colab.research.google.com/notebooks/tpu.ipynb#scrollTo=a_rjVo-RAoYd

我们希望能够将上述两者结合起来,并利用基于 TPU 的优化来解决高维问题。

为此,我有一个简单的 colab 代码,它合并了上面的两个示例:

当我运行它(在 colab 中)时,它只是运行第一个循环打印:

然后什么也不做,colab 只是不断跨越。

如果我不使用

和其他 TPU 功能,然后它可以很好地估计w变量。

问题是:

  1. 为什么这不起作用,我们如何让跨分片复制器优化这个简单的功能?
  2. 我应该如何塑造变量w以利用 TPU 上的并行批次/分片?
  3. 我们如何通过使用等效的数据集prefetch操作或使用输入队列来提高效率?

目标是在lower level没有 TPUEstimator 的情况下使用 TPU API,例如通过仅使用张量、队列和分片来利用 TPU 的强大功能来帮助解决自定义问题。

0 投票
2 回答
1188 浏览

tpu - 无法连接到 Coral 开发板(Edge TPU)

在遵循Get Started with Edge TPU Dev Board上的说明时,我无法通过第 2 步:

问题是屏幕立即返回

我已经验证了 /etc/udev/rules.d/65-edgetpu-board.rules 的内容,验证了 dmesg 输出,尝试了不同的 USB 端口,验证了所有屏幕实例都已关闭等。

0 投票
1 回答
1677 浏览

python - GCP:无法连接到云 TPU

我按照这个使用命令的快速入门教程使用TPU 启动了一个实例,ctpu up并且我能够成功运行 MNIST 教程。我退出云外壳并使用 SSH 控制台登录到连接到 TPU 的虚拟机,如此所述,当我再次运行 MNIST 教程时,我得到了

当我跑步时ctpu ls,我得到

ctpu status命令给出

我在这里缺少一些基本的东西吗?

0 投票
1 回答
560 浏览

python - 使用 GPU 时未找到 Tensorflow _tpu_ops.so

我将此 BERT NER github 代码移植到 google colab,在那里我手动设置了运行它的标志 ( https://github.com/kyzhouhzau/BERT-NER )。

我将 use_tpu 设置为 False,所以它应该使用 GPU。

flags.DEFINE_bool("use_tpu", False, "Whether to use TPU or GPU/CPU.")

colab 上使用的 TF 版本是 1.13.1,命令 tf.test.gpu_device_name() 返回 '/device:GPU:0'。

这是我在运行 tf.app.run() 时收到的错误消息。这是因为它正在寻找 TPU 而失败吗?我该如何解决?谢谢你的帮助!

0 投票
1 回答
1103 浏览

google-cloud-platform - 使用带有 TPU 的现有 VM

根据ctpu 文档,我可以使用以下命令:status、和up,以下“ctpu up 将创建一个预装了 TensorFlow 的 Compute Engine VM”在哪里。 但是,我已经在使用 GCP 上有一个虚拟机。我所有的机器学习脚本都在那里。我什至成功地执行了它们,但它们执行速度很慢,我想使用抢占式 TPU。如何连接我的 VM 以使用 TPU 而不是创建新 VM?pausedeleteup

0 投票
3 回答
644 浏览

python - Google EdgeTPU 无法让 PWM 与 Python 一起使用

这是我的测试代码:

问题是这部分:

运行时可以看到输出PWM(0,0) PWM(0,1) PWM(0,2)

但我在尝试运行以下命令时收到错误消息:

PWM(1,1)

PWM(2,2)

基于来自 Coral 和图书馆网站的文档: https ://coral.withgoogle.com/tutorials/devboard-gpio/

https://github.com/vsergeev/python-periphery

PWM(1,1)

PWM(2,2)

应该可以正常工作,我可以看到存在以下目录:

在 python-periphery 源代码 https://github.com/vsergeev/python-periphery/blob/master/periphery/pwm.py

它应该得到如下路径:

PWM(1,1) ===> /sys/class/pwm/pwmchip1/pwm1如果pwm1不存在,那么它应该调用export来生成它。

所以,我的主要问题是:

  • 它是什么channel以及pin如何使用它?
  • 为什么我无法让 PWM(1,1) PWM(2,2) 工作?

先感谢您。

---------------2019.4.2更新--------

我自己想出了前面的答案(感谢任何提供帮助的人)。

但正如您从我自己的回答中看到的那样,我仍然无法让 PWM 工作,因为它不能输出稳定的电压。(您可以在下面查看更多详细信息)。

我目前遇到了另一个输出电压根本不稳定的问题。所以,这是我做的测试:

我用占空比设置了PWMRaspberry Pi 3+ Model B和PWM。由于两个设备都有 GPIO 输出 3.3V,我的理论是,它们的输出应该是相同的,但它们不是。EdgeTPU Coral Board50hz5%

以下是使用 Arduino UNO 板测量的电压:Pi vs. EdgeTPU。(注:所有电压均需除以 10)。您可以看到 Pi 输出中有一个清晰的模式 (PWM),在 1.8v 左右交替。但是如果你看一下 EdgeTPU 的输出,你会发现电压到处都是,而且电压要低得多(1.1v 对 1.8v)。

对我来说,EdgeTPU PWM 输出很明显有问题,所以我做了进一步的研究。从(有限的)文件中发现,它说

所有 GPIO 引脚在 iMX8M SOC 内部都有一个90k 下拉电阻,在启动期间默认使用,除了 I2C 引脚,它在 SOM 上具有上拉至 3.3V。但是,这些都可以通过 bootup 后加载的设备树覆盖来更改

这让我怀疑90k pull-down resistor由于这个公式的事实可能会降低输出电压V=IR。因此,我正在考虑device tree overlay按照指示更改启动时的设置。但是,猜猜看,除了文件中的以下行之外,没有关于如何更改它的overlays.txt文档:

我到处搜索,没有关于如何配置 Mendel Linux 设备树覆盖的文档。所以,我目前卡住了,如果你知道答案,请分享它,我将不胜感激。

我也会将这个问题分享给珊瑚支持团队,看看他们是否会给我任何回应。(仅供参考,当我发布原始问题时,我确实向他们发送了一些东西,但还没有收到他们的任何消息,即使他们的网站说We try to respond to inquiries within one business day — but often you'll get a response even quicker, usually a few hours.)所以,祝我好运。如果收到任何回复,将保持更新此答案。

以下是我想传达给Google/Google Cloud/Google EdgeTPU/Google Coral Board团队的段落/问题:

  • 为什么选择 python-periphery 作为默认库来实现 GPIO 和 PWM ?
  • 为什么选择 Mendel Linux 作为默认操作系统,当没有站点/文档或任何类型可以找到?
0 投票
0 回答
130 浏览

validation - 如何在使用 TPUEstimator 进行训练时进行验证

我正在使用 TPUEstimator 进行培训。我的代码是:

我尝试使用 InMemoryEvaluatorHook。

但我没有得到任何结果

0 投票
0 回答
133 浏览

python - TPU inceptionV3 张量具有 NaN 值

我正在尝试使用 inceptionV3 和 TPU 来生成图片嵌入。作为基本代码,我使用的是 inceptionV3 的实验模型,但我更改了损失以及如何生成批次。我收到了这个错误。

我使用的损失是来自张量流的三重损失。

编辑:当我使用标志时--use-tpu=False,它可以工作,但我在主机上看不到任何负载,但我在 TPU 上看到了一些使用情况。