windows下编译tensorflow动态链接库的问题
问题1:Error Loading Package @io_bazel_rules_docker when building Tensorflow
解决方案网址:(https://github.com/tensorflow/tensorflow/issues/28824)
在tensorflow源文件的Workspace下的文件开头部分,插入这个代码
http_archive(
name = "io_bazel_rules_docker",
sha256 = "aed1c249d4ec8f703edddf35cbe9dfaca0b5f5ea6e4cd9e83e99f3b0d1136c3d",
strip_prefix = "rules_docker-0.7.0",
urls = ["https://github.com/bazelbuild/rules_docker/archive/v0.7.0.tar.gz"],
)
之后重新编译就可以解决问题1。
问题2:因为环境变量设置的疏忽,导致出现的问题报错
解决方法:
更改bazel-vc和bazel-vs ,这个问题是因为我更改了环境变量,最后忘记改回来,最后导致了这个问题。所以检查环境变量的设置是否正确。
问题3:nvcc++报错。
解决方案:对cuda10.0进行升级,升级到10.1,之后对tensorflow源码进行重新编译。原因是cuda10.0的nvc++缺少功能。官方没有对其进行升级。
可以参考这个博客:
https://blog.csdn.net/DLW__/article/details/104229303
注意:安装完cuda10.1时 应该对cuda10.1 进行cudnn安装,三个文件进行替换,保证编译成功,否则在python ./configure.py 报错。
问题4:c++编译器插件没有卸载干净导致的问题
由于之前安装vs,卸载时候插件没有卸载干净,所以编译时会报错。
问题5:无法编译rebatch.cc
问题描述:
解决方法:将标定目录下的rebatch.cc文件中内容进行修改
以前的:
constexpr std::array<const char*, 6> kBatchDatasetOps = {
kBatchOp, kBatchV2Op, kMapAndBatchOp, kExperimentalMapAndBatchOp,
kPaddedBatchOp, kPaddedBatchV2Op};
已更改:
constexpr std::array<const char*, 6> kBatchDatasetOps = {
"BatchDataset", "BatchDatasetV2", "MapAndBatchDataset", "ExperimentalMapAndBatchDataset",
"PaddedBatchDataset", "PaddedBatchDatasetV2"
};
问题6 编译过程中的报错
问题描述:
这个和网络有关系,多试几次,有可能是网络不好或者科学上网,这个github网站有关系。
利用这个指令对源码进行编译
bazel build --config=opt --config=cuda //tensorflow:tensorflow.dll
最后生成tensorflow.dll 文件。
这个是编译生成后的文件。
致谢:非常感谢我曾经参考过的博客作者和文章,以及我参考过的解决方案的作者,愿岁月和生活对大家温柔以待。