bazel - 构建 nuro_image 时如何确定使用哪个基础?
问题描述
如标题所述,当我添加新的 push_image 时,如何确定如何在 BUILD 文件中为 nuro_image 目标指定 base?我在代码库中看到了几个不同的,例如
base = "//learning/utils:tf_base_image",
和
base = "@nuro_image//image",
有什么区别?
解决方案
这取决于二进制/图像需要什么依赖项。如果二进制文件需要 Tensorflow 作为依赖项,那么您需要使用tf_base_image
.
这个想法类似于最低共同祖先。想象一下,我们正在将二进制 A 构建到图像中。假设 A 有两个依赖项 B 和 C,而 B 和 C 都依赖于 Tensorflow。如果 A 使用tf_base_image
,那么当我们构建 B 和 C 时,依赖的 Tensorflow 库已经包含在内,可以重复使用。但是如果我们 A 使用@nuro_image//image
,那么 B 和 C 都需要获取 Tensorflow,因此我们最终会包含两次相同的库。结果,构建变得更慢,我们得到更大的图像。
为了更好地理解,tf_base_image
这里的定义是:
https ://gitent.corp.nuro.team/Nuro-ai/Nuro/blob/develop/learning/utils/BUILD#L84-L98
推荐阅读
- html - 即使我做到了,CSS也没有将项目向右对齐
- vuetify.js - 如何在 vuetify v-calendar 中使用“event-more-text”道具
- javascript - 无法在数据表中显示图像 (Javascript)
- sql - 从具有特定条件的 SQL 中创建的视图中选择
- reactjs - 在 SPA 中对访客/匿名用户进行身份验证
- redcap - REDCap 自动填充早期记录中的字段
- javascript - 为什么卡不会扩展?
- python - 如何在 numpy 的 3d 数组中找到最小值和最大值,并对结果进行分组?
- java - Gradle 是否支持在单个项目中构建多个 java 模块?
- css - 我还需要显示:-webkit-flex;-moz-flex; -ms-flex; 在 2021 年?