The screenshots that are shown in this and other examples in this chapter are often based on random generations; therefore, in order to increase the reproducibility, I suggest setting both the NumPy and TensorFlow random seed equal to `1000`. The commands are: `np.random.seed(1000)` and `tf.set_random_seed(1000)`.
事实是,当我们处理各种惊人的模型时,我们不得不面对不可避免的问题只是时间问题:我们必须手动为 Android 构建 TensorFlow 库,以修复默认 TensorFlow 库中的一些错误 根本无法应对。 `No OpKernel was registered to support Op 'RefSwitch' with these attrs.`错误就是这样的错误之一。 对于乐观的开发人员来说,这仅意味着另一种向您的技能组合中添加新技巧的机会。
事实是,当我们处理各种惊人的模型时,我们不得不面对不可避免的问题只是时间问题:我们必须手动为 Android 构建 TensorFlow 库,以修复默认 TensorFlow 库中的一些根本无法应对的错误。 `No OpKernel was registered to support Op 'RefSwitch' with these attrs.`错误就是这样的错误之一。 对于乐观的开发人员来说,这仅意味着另一种向您的技能组合中添加新技巧的机会。
在本章我们不得不结束有趣旅程之前的最后一个提示是,如果您使用错误的 ABI 构建适用于 Android 的 TensorFlow 本机库,您仍然可以从 Android Studio 构建和运行该应用程序,但您将 出现运行时错误`java.lang.RuntimeException: Native TF methods not found; check that the correct native libraries are present in the APK.`,这意味着您的应用程序的`jniLibs`文件夹中没有正确的 TensorFlow 本机库(图 7.9)。 要找出`jniLibs`内特定 ABI 文件夹中是否缺少该文件,可以从`Android Studio | View | Tool Windows`中打开`Device File Explorer`,然后选择设备的`data | app | package | lib`来查看,如图 7.12 所示。 如果您更喜欢命令行,则也可以使用`adb`工具找出来。
在本章我们不得不结束有趣旅程之前的最后一个提示是,如果您使用错误的 ABI 构建适用于 Android 的 TensorFlow 本机库,您仍然可以从 Android Studio 构建和运行该应用程序,但将出现运行时错误`java.lang.RuntimeException: Native TF methods not found; check that the correct native libraries are present in the APK.`,这意味着您的应用程序的`jniLibs`文件夹中没有正确的 TensorFlow 本机库(图 7.9)。 要找出`jniLibs`内特定 ABI 文件夹中是否缺少该文件,可以从`Android Studio | View | Tool Windows`中打开`Device File Explorer`,然后选择设备的`data | app | package | lib`来查看,如图 7.12 所示。 如果您更喜欢命令行,则也可以使用`adb`工具找出来。