此方法更为常见,并在一个不错的博客条目中描述,[《为 Raspberry Pi 交叉编译 TensorFlow》](https://petewarden.com/2017/08/20/cross-compiling-tensorflow-for-the-raspberry-pi),作者是 *Pete Warden*。
此方法更为常见,并在一个不错的博客条目中描述,[《为 Raspberry Pi 交叉编译 TensorFlow》](https://petewarden.com/2017/08/20/cross-compiling-tensorflow-for-the-raspberry-pi),作者是 Pete Warden。
要运行脚本,请先从[这里](http://download.tensorflow.org/models/speech_commands_v0.01.zip)下载预训练的音频识别模型,然后将其解压缩到`/tmp`,或者对我们在第 5 章“了解简单语音命令”中使用的模型使用`scp`到 Pi 板的`/tmp`目录,然后运行:
...
...
@@ -444,7 +444,7 @@ if current_top_score > self.detection_threshold_ and time_since_last_top > self.
gpg3_obj.stop()
```
现在 p 将您的 Raspberry Pi 机器人放在地面上,从计算机上用`ssh`连接到它,然后运行以下脚本:
现在将您的 Raspberry Pi 机器人放在地面上,从计算机上用`ssh`连接到它,然后运行以下脚本:
请注意,kernel 只是权重的另一个名称,`(4, 4)`,(4,),`(4, 1)`和(1,)是权重的形状和对第一个(输入到隐藏)和 第二层(隐藏到输出)。 如果您从 iPython 多次运行脚本,则`tf`对象的默认图形将包含先前运行的可训练变量,因此,除非调用`tf.reset_default_graph()`,否则需要使用`gvs = [(g, v) for g, v in gvs if g != None]`删除那些过时的训练变量, 将返回 None 渐变(有关`computer_gradients`的更多信息,请参见[这里](https://www.tensorflow.org/api_docs/python/tf/train/AdamOptimizer#compute_gradients))。
请注意,`kernel`只是权重的另一个名称,`(4, 4)`,`(4, )`,`(4, 1)`和`(1, )`是权重的形状和对第一个(输入到隐藏)和 第二层(隐藏到输出)。 如果您从 iPython 多次运行脚本,则`tf`对象的默认图形将包含先前运行的可训练变量,因此,除非调用`tf.reset_default_graph()`,否则需要使用`gvs = [(g, v) for g, v in gvs if g != None]`删除那些过时的训练变量, 将返回 None 渐变(有关`computer_gradients`的更多信息,请参见[这里](https://www.tensorflow.org/api_docs/python/tf/train/AdamOptimizer#compute_gradients))。
如果您想使用 TensorFlow 或 Keras 构建自己的出色模型,实现最令您兴奋的算法和网络,则需要在本书结束后继续学习,因为我们没有详细介绍如何做到这一点, 但希望我们能激发您足够的动力来开始这一旅程,并从书中获得保证,一旦您构建并训练了模型,便知道如何快速,随时随地在移动设备上部署和运行它们。
关于走哪条路和要解决哪些 AI 任务,伊恩·古德费洛(Ian Goodfellow)在接受安德鲁·伍(Andrew Ng)采访时的建议可能是最好的:*问问自己,下一步做什么是最好的,哪条是最适合的 采取:强化学习,无监督学习或生成对抗网络*。 无论如何,这将是一条充满兴奋的绝妙之路,当然还要有艰苦的工作,而您从本书中学到的技能就像您的智能手机一样,随时可以为您服务,并准备好 您将使您的甜蜜而聪明的小设备变得更加甜蜜和智能。
关于走哪条路和要解决哪些 AI 任务,Ian Goodfellow 在接受 Andrew Ng 采访时的建议可能是最好的:“问问自己,下一步做什么是最好的,选取哪条路是最适合的:强化学习,无监督学习或生成对抗网络”。 无论如何,这将是一条充满兴奋的绝妙之路,当然还要有艰苦的工作,而您从本书中学到的技能就像您的智能手机一样,随时可以为您服务,并准备好 您将使您的甜蜜而聪明的小设备变得更加甜蜜和智能。