首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么tensorflow的go/子目录不使用Bazel rules_go中的go_library?

TensorFlow的go/子目录不使用Bazel rules_go中的go_library是因为TensorFlow的go/子目录是用于构建TensorFlow的Go语言绑定库,而Bazel rules_go中的go_library主要用于构建独立的Go语言库。

TensorFlow的go/子目录中的代码是为了将TensorFlow的功能暴露给Go语言开发者使用。这些代码需要与TensorFlow的C++核心库进行交互,并提供Go语言友好的接口。因此,为了构建这些Go语言绑定库,TensorFlow使用了自定义的构建系统。

使用Bazel rules_go中的go_library构建Go语言库可能会导致一些问题,因为TensorFlow的go/子目录需要与TensorFlow的C++核心库进行交互,并且可能需要使用一些特定的构建选项和依赖项。这些特定的需求可能无法通过rules_go中的go_library满足,因此TensorFlow选择了使用自定义的构建系统来构建go/子目录中的代码。

虽然TensorFlow的go/子目录不使用Bazel rules_go中的go_library,但是它仍然是TensorFlow生态系统中重要的一部分,为Go语言开发者提供了使用TensorFlow的能力。如果您想了解更多关于TensorFlow的Go语言绑定库的信息,可以访问腾讯云的TensorFlow产品介绍页面:TensorFlow产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Starlark语言

Starlark Tensorflow, Envoy, Kubernetes, KubeVirt 等等大型项目都是用 Bazel 构建,要参与开发这些项目或者基于这些项目做开发,不能避开Bazel,...} } go代码引用了otto,otto是javascript解释器go实现,翻译成大白话就是go编写js解释器。...ngaro - 可嵌入Ngaro VM实现,支持在Retro编写脚本。 otto - 用Go编写JavaScript解释器。 purl - Go嵌入Perl 5.18.2。...一旦和Bazel结合起来,涉及东西太多太多了,已远不是本篇篇幅能够覆盖。 以云原生项目举例: Bazelgo_rules,用于Go项目的 Bazel构建。...https://github.com/bazelbuild/rules_go rules_docker, rules_k8s 为自己项目写bazel rule和bazel库 等等 除了Go语言rules_go

1.3K30

扩展 Bazel 构建语言

本篇介绍何使用宏和规则扩展 Bazel 构建语言。 在学习更高级概念之前,先了解以下几个知识点: 了解 BUILD 和 .bzl 文件中使用 Starlark 语言。...当 BUILD 文件过于重复或过于复杂时,它就非常有用,因为它允许您重复使用某些代码。 规则比宏更强大。它可以访问 Bazel 内部信息,并完全掌控将要处理内容。例如,它可以将信息传递给其他规则。...如果您想重复使用简单逻辑,请从宏开始。如果宏变得复杂,通常最好使其成为规则。...对新语言支持通常通过规则来实现,例如 rules_go( https://github.com/bazelbuild/rules_go )。...BUILD 三个阶段 加载阶段。规则实例化,将其添加到图表。 分析阶段。执行规则代码(其 implementation 函数),并将操作实例化。

1.6K10

Win10系统编译Tensorflow Lite 2.3为动态链接库tensorflowlite_c.dll

1.3 安装python 编译过程,需要用python运行一些脚本,去python官网下载最新版python安装即可,这里介绍python安装。...因此,要确认好当前tensorflow源码应该使用哪个bazel版本。 解压缩tensorflow-2.3.1.zip文件后,打开cmd,进入tensorflow-2.3.1。...按照我对tensorflow官方尿性了解, 他们每个版本都会使用当前最新bazel,换言之,在编译tensorflow 2.3.1期间很有可能最新bazel版本是3.1.0,也就是说官方用bazel...最佳做法是将E:\tensorflow-2.3.1\tensorflow目录下,只保留lite目录,其他目录删除。在lite目录只保留c和core两个子目录,其他删除。...在c和core两个子目录,只保留.h文件,其他文件删除。

4.6K50

自定义工具链

3.1.2 定义约束和平台 平台可能选择空间是通过使用构建文件 constraint_setting 和 constraint_value 规则定义。...比如 Bazel 官方提供了一个 CPP 标识:@bazel_tools//tools/cpp:toolchain_type,而 rules_go 提供了 @io_bazel_rules_go//go...用户通过在 WORKSPACE 文件调用 `register_toolchains`[3] 函数或者在命令行传递 --extra_toolchains 标志来注册他们想要使用工具链。...如果想自己完完全全实现一个与语言相关平台工具链规则集合,可以参考 go 语言规则实现:https://github.com/bazelbuild/rules_go/blob/master/go/...最后,整个实现代码这里也贴出来了。我们重点需要了解实现过程重点以及如果更好在工程实际应用。

4.5K31

关于Spring@Async注解以及为什么建议使用 - Java技术债务

,指在@Async注解在使用时,指定线程池名称,@Async默认异步配置使用是SimpleAsyncTaskExecutor,该线程池默认来一个任务创建一个线程,若系统不断创建线程,最终会导致系统占用内存过高...defaultExecutor : new SimpleAsyncTaskExecutor()); } 为什么建议直接使用 @Async 注解?...在泰山版《阿里巴巴开发手册》规定开发建议使用 Async 注解,这是为什么?在实际开发,异步编程已经成为了一个必备技能。...建议直接使用 Async 注解原因 由于 Async 注解局限性,直接使用 Async 注解可能不是一个好主意。...可能会导致死锁问题:如果异步操作包含了阻塞操作,可能会导致线程池中线程被阻塞,从而导致死锁问题。 综上所述,直接使用 Async 注解可能会导致各种问题,因此建议直接使用 Async 注解。

5010

关于 java set,get方法,而为什么推荐直接使用public

我不知道有没有人遇到过,有一段时间,我都觉得那些 set,get用处何在,我直接写一个public直接拿不就行了,多爽,但是随着使用频繁,越来越想去搜索一下这个问题,而不是按照官方推荐,前辈们使用都是建议...这里引入其中一句话: 在任何相互关系,具有关系所涉及各方都遵守边界是十分重要事情,当创建一个类库时,就建立了与客户端程序员之间关系,他们同样也是程序员,但是他们是使用类库来构建应用...如果所有的类成员对任何人都是可用,那么客户端程序员就可以对类做任何事情,而不受约束。即使你希望客户端程序员不要直接操作你某些成员,但是如果没有任何访问控制,将无法阻止此事发生。...综上所述,写到这里,我诞生了一个想法,其实set ,get ,public,对于它们使用完全取决于我们程序员自己,为了让项目之间逻辑更加清晰,有些标准自上而下,慢慢传了下来,无论你使用那种,但是有一个东西是无法避免...补充说明,set字面意思设置,get获取,我们了解一下java面向对象编程封闭性与安全性,private 修饰set get方法将方法封闭在了一个特定类,其他类就无法对其变量进行方法,这样就提高了数据安全性

1.4K20

BUILD.bazel hello-world

简介 Bazel是一个类似于类似于 Make、Maven 和 Gradle构建和测试工具。使用 Java、C++、Go、Android、iOS 以及许多其他语言和平台进行构建和测试。...当然Bazel还有很多其他优势: 开源 100%在沙箱环境构建 支持任何语言,因为除了直接支持语言,还有支持语言扩展,比如官方维护go语言扩展rules_go。...支持超大项目 快速构建,快速测试 install bazel 两种方式 bazel release 页面下载二进制文件 https://github.com/bazelbuild/bazel/releases...ERROR: Unable to find package for @io_bazel_rules_go//go:def.bzl: The repository '@io_bazel_rules_go'...,将 https://github.com/bazelbuild/rules_go#setup 一段内容加到WORKSPACE文件 [root@localhost bazel-hello-world

1.1K30

腾讯开源围棋AI程序PhoenixGo,复现AlphaGo Zero

PhoenixGo是一个围棋AI程序,它执行AlphaGo Zero论文“掌握无人知识Go游戏”。它也被称为FoxGo“BensonDarr”,CGOS“cronus”。...在中国福州举办“World AI Go Tournament 2018”,来自微信团队的人工智能围棋程序PhoenixGo获得了冠军。...然后用bazel建立: $ bazel build //mcts:mcts_main 诸如Tensorflow之类将自动下载。此命令可能需要很长时间。...--logtostderr ip:port在配置文件填充工作人员(etc/mcts_dist.conf是32位工作人员示例配置),然后运行分布式主服务器: $ bazel-bin/mcts/mcts_main...--gpu_list:gpu_list在配置文件覆盖 --listen_port:使用--gtpTCP协议在端口上运行gtp引擎 --allow_ip:使用--listen_port,允许连接客户端

1.5K20

Ubuntu配置TensorFlow使用环境方法

在安装结束后,使用如下命令,看到版本号则安装成功 $ protoc --version Bazel 安装准备 在安装Bazel之前,需要安装JDK8,具体安装方法请参考如下链接 jdk8安装方法 然后安装其他依赖工具包.../bazel-0.4.3-jdk7-installer-linux-x86_64.sh --user 安装完成后继续安装其他TensorFlow需要依赖工具包 $ sudo apt-get install...python3-numpy swig python3-dev python3-wheel 在完成后,在~/.bashrc添加环境变量 export PATH"$PATH:$HOME/bin" 然后使用...NVIDIA cuDNN可以集成到更高级别的机器学习框架,如加州大学伯克利分校流行caffe软件。...到此这篇关于Ubuntu配置TensorFlow使用环境方法文章就介绍到这了,更多相关Ubuntu配置TensorFlow内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

1.1K10

TensorFlow使用Cloud TPU在30分钟内训练出实时移动对象检测器

要按照本教程设备上部分进行操作,你需要按照下方链接说明使用Bazel从源代码安装TensorFlow 。编译TensorFlow可能需要一段时间。...将数据集上载到GCS 在本地获得TFRecord文件后,将它们复制到/data子目录GCS存储桶: gsutil -m cp -r / tmp / pet_faces_tfrecord / pet_faces...} /data/pet_label_map.pbtxt 此时,在GCS bucket/data子目录应该有21个文件:20个用于训练和测试分片TFRecord文件,以及标签映射文件。.../object_detection_tutorial.ipynb 如上所述,对于本节,你需要使用提供Dockerfile,或者从源构建TensorFlow(支持GCP)并安装bazel构建工具。...请注意,如果你只想在训练模型情况下完成本教程第二部分,我们提供了一个预训练模型。

3.9K50

Building TensorFlow on Android(译)

为了让你在Android上开始使用tensorflow,我们将通过两种方式来构建我们移动端Tensorflow例子并将它部署到一个Android设备上。 为什么要选择这些方法之一?...如果您使用自定义操作,或有其他原因从头开始构建Tensorflow,请向下滚动并查看我们有关使用Bazel构建demo说明。...使用Bazel构建Demo 另外一种方法在Android上使用Tensorflow就是使用Bazel构建一个apk并且使用ADB加载它到你设备当中。...具体如下图所示: 运行Bazel去构建Demo bazel build -c opt //tensorflow/examples/android:tensorflow_demo 使用ADB去安装apk到你设备当中...TF Detect 使用多盒模型试图在相机任务位置绘制边框。对于每个检测结果,这些框都有可信度注释。结果可能并不完美,因为这种对象检测仍然是一个活跃研究课题。

89910

Jetson TX1上安装Tensorflow Serving遇到问题总结

目前在网络上暂时没找到Jetson系列板子上成功安装Tensorflow Serving案例,而本人在安装过程遇到很多问题都搜不到解决方法,只能自己摸索,最终成功安装并运行。...这里使用NFS时会出现如下告警 root@tegra-ubuntu:/data/serving# /data/bazel/output/bazel build -c opt --config=cuda...分析BUILD.bazel源码发现,有对平台判断,针对不同平台会拷贝不同目录代码进行编译,而平台里包含aarch64相关,从而不会拷相应代码。...,Makefile等文件是动态生成,这也是修改Makefile等文件生效原因;bazel在执行每个目标(如libevent)前,会先把此目标的输出(如libevent.a)都删除,然后在执行后,再检测输出文件是否存在...*这样目录,修改Makefile,找到CFLAGS定义,追加一个-fPIC选项,再make install (3) 此时,生成文件会输出到bazel-genfiles/external/com_github_libevent_libevent

2.7K40

Tensorflow c++ 实践及各种坑

Tensorflow当前官网仅包含python、C、Java、Go发布包,并无C++ release包,并且tensorflow官网也注明了并不保证除python以外库稳定性,在功能方面python...众所周知,python在开发效率、易用性上有着巨大优势,但作为一个解释性语言,在性能方面还是存在比较大缺陷,在各类AI服务化过程,采用python作为模型快速构建工具,使用高级语言(如C++,java...本文重点介绍tensorflow C++服务化过程实现方式及遇到各种问题。...实现方案 对于tensorflow c++库使用,有两种方法: (1) 最佳方式当然是直接用C++构建graph,但是当前c++tensorflow库并不像python api那样full-featured...可参照builds a small graph in c++ here, C++ tensorflow api还包含cpu和gpu数字内核实现类,可用以添加新op。

6.8K40

在Linux服务器上更换Nvidia驱动

版本 比如 tensorflow-gpu 各个版本对Cuda 和 cuDNN 都有自己要求: https://tensorflow.google.cn/install/source#linux...GCC 4.8 Bazel 0.11.0 7 9 tensorflow_gpu-1.8.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.10.0 7 9 tensorflow_gpu...tensorflow_gpu-1.0.0 2.7, 3.3-3.6 GCC 4.8 Bazel 0.4.2 5.1 8 pytorch 同样有各个版本对Cuda要求: https://...10.2 以上,因此需要驱动版本 >= 440.33 下载驱动 官网下载 https://www.nvidia.cn/geforce/drivers/ 在搜索列表中选择合适自己目标的驱动版本(也建议选择最新...,应用开发有可能跟不上,够用就好) 我下载了 NVIDIA-Linux-x86_64-450.80.02.run 安装驱动 需要强调是我现在安装环境是Linux服务器,没有图形界面,使用图形界面的同志不要按照此方案安装

5.3K20
领券