问题标签 [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.
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.">
我应该做些什么来获得所需的身份验证?
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
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
变量。
问题是:
- 为什么这不起作用,我们如何让跨分片复制器优化这个简单的功能?
- 我应该如何塑造变量
w
以利用 TPU 上的并行批次/分片? - 我们如何通过使用等效的数据集
prefetch
操作或使用输入队列来提高效率?
目标是在lower level
没有 TPUEstimator 的情况下使用 TPU API,例如通过仅使用张量、队列和分片来利用 TPU 的强大功能来帮助解决自定义问题。
tpu - 无法连接到 Coral 开发板(Edge TPU)
在遵循Get Started with Edge TPU Dev Board上的说明时,我无法通过第 2 步:
问题是屏幕立即返回
我已经验证了 /etc/udev/rules.d/65-edgetpu-board.rules 的内容,验证了 dmesg 输出,尝试了不同的 USB 端口,验证了所有屏幕实例都已关闭等。
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 而失败吗?我该如何解决?谢谢你的帮助!
google-cloud-platform - 使用带有 TPU 的现有 VM
根据ctpu 文档,我可以使用以下命令:status
、和up
,以下“ctpu up 将创建一个预装了 TensorFlow 的 Compute Engine VM”在哪里。
但是,我已经在使用 GCP 上有一个虚拟机。我所有的机器学习脚本都在那里。我什至成功地执行了它们,但它们执行速度很慢,我想使用抢占式 TPU。如何连接我的 VM 以使用 TPU 而不是创建新 VM?pause
delete
up
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 Board
50hz
5%
以下是使用 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 作为默认操作系统,当没有站点/文档或任何类型可以找到?
validation - 如何在使用 TPUEstimator 进行训练时进行验证
我正在使用 TPUEstimator 进行培训。我的代码是:
我尝试使用 InMemoryEvaluatorHook。
但我没有得到任何结果
python - TPU inceptionV3 张量具有 NaN 值
我正在尝试使用 inceptionV3 和 TPU 来生成图片嵌入。作为基本代码,我使用的是 inceptionV3 的实验模型,但我更改了损失以及如何生成批次。我收到了这个错误。
我使用的损失是来自张量流的三重损失。
编辑:当我使用标志时--use-tpu=False
,它可以工作,但我在主机上看不到任何负载,但我在 TPU 上看到了一些使用情况。