问题标签 [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.
tensorflow - 与 GPU 相比,使用 TPU 进行训练时,Val_acc 会振荡且不收敛
我已经实现了一个 MobileNets 深度学习架构,并在 Cifar-100 上对其进行了训练。为此,我使用了谷歌 Colab,它在他们的 GPU 上正常工作,虽然我没有得到很好的准确性。但是当我在他们的 TPU 上训练时,前 10 个 epoch 的验证准确率基本上保持在 0,然后当它上升时,它是不一致的,并且不像 GPU 那样稳步增加。
您可以在这两个屏幕上看到我的意思: https ://imgur.com/a/hmOFEcW
我有点卡住了,因为我不完全了解 TPU 的工作原理,我知道它必须划分工作,但除此之外......我想我可以尝试手动修改优化器的学习率?让它学得更快。但这并不能解释为什么最终精度会下降。
python - 未在具有成本层的分配策略范围内创建变量
我正在尝试使用 TPU 在 Google-colaboratory 上微调 BERT 模型。但我总是收到以下错误:
ValueError: 在 (tensorflow.python.在 0x7f6a1fad3390 处分发.tpu_strategy.TPUStrategyV1 对象)。这很可能是由于并非所有层或模型或优化器都是在分发策略范围之外创建的。尝试确保您的代码类似于以下内容。
使用 strategy.scope():
模型=_create_model()
模型.编译(...)
我的代码基于这个笔记本!我针对我的具体问题对其进行了修改,显然尝试在 TPU 上运行它。
我有一个服装层 BertLayer,它显然是在范围之外创建的:
模型创建在这里完成:
调用model.compile时发生错误
据我了解,BertLayer 确实是在范围内创建的,但我对 keras 和 tensorflow 比较陌生,所以很高兴得到您的帮助。我正在研究 tensorflow 1.14
tensorflow - 如何使用 tpu 解决 tf.keras 中的“动态维度传播失败”错误?
当我尝试使用 TPU 在 google colab 上使用自己的图像训练图像检测器时出现此错误:
来自 /job:worker/replica:0/task:0:编译失败:要求从 hlo %convert.283 = f32[1,80,80,32]{3,2,1,0} convert 传播动态维度(f32[1,80,80,32]{3,2,1,0} %add.1), metadata={op_type="FusedBatchNorm" op_name="bn_Conv1_3/FusedBatchNorm"}@{}@0 to hlo %钳位.288 = f32[1,80,80,32]{3,2,1,0} 钳位(f32[1,80,80,32]{3,2,1,0} %broadcast.286, f32 [1,80,80,32]{3,2,1,0} %convert.283, f32[1,80,80,32]{3,2,1,0} %broadcast.287), metadata= {op_type="Relu6" op_name="Conv1_relu_3/Relu6"},未实现。TPU 编译失败 [[node TPUReplicateMetadata_1(定义于:24)]]
这是代码的链接:
https://drive.google.com/open?id=1mPiod1At85RgNwHx4vYFxH38Ck16Ep1m
你知道发生了什么吗?
一定不是图片大小的问题,也不是batch size的问题,我已经看过了。
谢谢。
python - 我可以从量化的 Tensoflow 模型中获得什么结果?
我有一个非常简单的 Tensorflow 模型,它根据来自 6 个传感器的输入(输入范围从 0.0 到 1.0)输出 3 个值(左、直、右)
训练模型后,我可以使用将其转换为普通的 TFLite 模型
tflite_model = 转换器.convert()
然后我在模型上运行一些推理测试,得到我期望的结果。3 个输出中的一个为 99%,其他输出非常低。
测试右输入 [0.0,0.0,1.0] 结果 [[0.00089144 0.00154889 0.99755967]]
测试直接输入 [0.0,1.0,0.0] 结果 [[0.00087439 0.996424 0.00270158]]
测试左输入 [1.0,0.0,0.0] 结果 [[0.9948014 0.00256803 0.00263061]]
然后我对模型进行量化(以便在边缘 TPU 上使用它)
我运行与上面相同的测试。结果仍然正确,但最大输出为 132,其他输出为 62。
测试右输入 [0.0,0.0,1.0] [[ 62 62 132]]
测试直接输入 [0.0,1.0,0.0] [[ 62 132 62]]
测试左输入 [1.0,0.0,0.0] [[132 62 62]]
我本来希望得到 [[255 0 0]] 范围内的结果
当我使用像 Input [0,0,255] 这样的整数输入时,也会发生同样的事情
量化转换有问题吗?我应该使用浮点整数作为输入吗?
tensorflow - 尝试在 TPU 上运行 effecientNet
尝试在 TPU 上运行 EffecientNet,通过运行这个
但我得到这个错误
ValueError:图层在非批量维度中具有可变形状。TPU 模型对于所有操作必须具有恒定的形状。
python - Google Coral Edge TPU 编译模型 - 推理总是几乎相同
我正在尝试让 Mobilenetv2 模型(重新训练到我的数据集的最后一层)在 Google 边缘 TPU Coral 上运行。我可以使用“edgetpu_compiler”(按照此页面https://coral.withgoogle.com/docs/edgetpu/compiler/#usage)量化和编译模型。但是当我在 TPU 中运行推理时,对于非常不同的输入图像,我得到了类似的输出。
我使用“tflite_convert”工具来量化模型,如下所示:
然后我使用“edgetpu_compiler”工具为 TPU 编译它:
然后,当我使用此代码运行推理时:
输出是这样的(假设标签[“Class1”,“Class2”,“Class3”,“Class4”]):
对于任何输入图像,它几乎相同,通常前两个类具有相同(或非常相似)的值(第 3 和第 4 相同),如上例所示。一类应该是 0.99(as it is in the .h5 model or even in the .tflite model without quantization)
可以是参数吗?我该-default_ranges_min=0 --default_ranges_max=6 --std_dev_values=127 --mean_values=128?
如何计算它们?
编辑1:
使用这篇文章的答案,我尝试使用 both 量化模型--std_dev_values=127 --mean_values=128 and --std_dev_values=255 --mean_values=0
,但我仍然得到垃圾推断。由于mobilenet2使用relu6,默认范围应该是-default_ranges_min=0 --default_ranges_max=6
正确的?
该模型是经过重新训练的 MobileNetv2,输入是 RGB 图像(3 通道),输入形状为 1,482,640,3。
object-detection-api - `RuntimeError: Failed to allocate tensors` 在 Google Coral 上使用重新训练的对象检测模型时
我正在尝试在 Google Coral 上部署对象检测模型。我使用以下配置文件训练了模型,我尝试将其与此处描述的 docker 映像中的演示配置文件紧密匹配。
我成功地训练了我的模型,然后./convert_checkpoint_to_edgetpu_tflite.sh
似乎成功地运行了脚本,输出如下:
然后我edgetpu_compiler output_tflite_graph.tflite
似乎也成功地运行了以下输出:
以及以下output_tflite_graph_edgetpu.log
文件:
最后,我把我的转换output_tflite_graph_edgetpu.tflite
在珊瑚上,并得到以下错误:
我究竟做错了什么?
谢谢!
PS:我意识到这可能更适合 git 问题,但我不确定在 git 上发布 google-coral 问题的位置...
tensorflow - AttributeError: KerasTPUModel' 对象没有属性 _ckpt_saved_epoch
我正在尝试在 Google Colab 上训练模型,以便在 TPU 上进行训练。但是,我遇到了以下错误:
在尝试运行以下代码时。
我不确定发生了什么。我使用类似的代码在 CPU 上训练它(需要很长时间才能训练)。
tpu - Coral Edge TPU 连接到 Windows 10
我已经按照https://coral.withgoogle.com/docs/dev-board/get-started/的描述成功设置了 Coral TPU 。我也可以运行演示。我是使用 Mac 计算机完成的。
现在,我想将 Coral 连接到 Windows 10 机器。在 Windows 机器上,驱动程序与 mdt 一起安装。
mdt shell
返回:
我该如何连接?