我尝试按照本指南的来源构建TensorFlow:Installing TensorFlow from Sources。构建似乎运行良好,但那是最后一步:
调用pip install来安装该pip包。文件名 .whlfile取决于您的平台。例如,以下命令 将在Linux上安装TensorFlow 1.0.0的pip包:
sudo pip install /tmp/tensorflow_pkg/tensorflow-1.0.0-py2-none-any.whl
如果您运行Linux,我认为这很棒,但我也很欣赏Mac OS X上的位置。
Mac上存储的包裹在哪里?我无法找到它/tmp
,也找不到/Users/Library/Caches
。由于在Mac上搜索被破坏,我运气不好。
答案 0 :(得分:3)
听起来你可能已经跳过了一步。 Bazel不会创建此文件。 Bazel构建的程序。
您提到的https://www.tensorflow.org/install/install_sources之前的步骤是运行
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
第二个参数指定放置wheel文件的位置。此外,该程序记录其输出目录:
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
Mon Feb 20 22:08:08 EST 2017 : === Using tmpdir: /var/folders/yt/9r8s598x603bx58zq85yrx680096yv/T/tmp.XXXXXXXXXX.gp5oIM0Z
Mon Feb 20 22:08:13 EST 2017 : === Building wheel
Mon Feb 20 22:08:45 EST 2017 : === Output wheel file is in: /tmp/tensorflow_pkg
$ ls /tmp/tensorflow_pkg/
tensorflow-1.0.0-cp27-cp27m-macosx_10_12_intel.whl
答案 1 :(得分:1)
以下是我用于在MacOS上构建的程序
先决条件
然后
cd ~/git/tensorflow
git fetch --all
brew upgrade bazel
git stash
git rebase tf/master
git stash pop
# to resolve conflict from previous ./configure run
git checkout --theirs -- tensorflow/core/platform/default/build_config.bzl
# do the actual build in TMUX session to avoid losing state when closing terminal
tmux new-session -s bazel -n 0
cd ~/git/tensorflow
./configure
export CUDA_VISIBLE_DEVICES=
export CUDA_HOME=/usr/local/cuda
export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/cuda/extras/CUPTI/lib
export LD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
export PATH=$DYLD_LIBRARY_PATH:$PATH
export date=feb11
export tag=head
export flags="--config=cuda --config=opt -k --action_env PATH --action_env DYLD_LIBRARY_PATH --action_env LD_LIBRARY_PATH"
bazel build $flags -k //tensorflow/tools/pip_package:build_pip_package
rm -Rf /tmp/tensorflow_pkg
mkdir /tmp/tensorflow_pkg
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
mkdir -p ~/g/tfbins/$date.$tag
cp `find /tmp/tensorflow_pkg -type f ` ~/tfbins/$date.$tag
这会将您的wheel文件放入~/tfbins/feb11.head
您可以使用类似的东西自动./configure
部分
https://github.com/yaroslavvb/stuff/blob/master/configure_tf.sh
注意,MacOS上的CUDA现在已经打破了最新的Bazel版本,如果你想要CUDA,你需要降级到0.4.3或者从头部建立Bazel - https://github.com/tensorflow/tensorflow/issues/7227
然后你可以通过这样做公开分享轮子(首先设置gsutil并选择不同的$ bucket)
export wheel=`find ~/tfbins/$date.$tag -type f`
export basename=`find ~/tfbins/$date.$tag -type f -printf "%f\n"`
cd ~/tfbins/$date.$tag
fullname=$date.$tag.$basename
ln -s $basename $fullname
export bucket=tensorflow-community-wheels
gsutil cp $fullname gs://$bucket
gsutil acl set public-read gs://$bucket/$fullname
echo https://storage.cloud.google.com/$bucket/$fullname
然后将从最后一行打印的链接分享到https://github.com/yaroslavvb/tensorflow-community-wheels:)