Git Product home page Git Product logo

tensorflow-windows-wheel's Introduction

tensorflow-windows-wheel

This repo contains all you need that work with tensorflow on windows.

  • Python 3.9 support

  • 64 bit Windows support

  • Legacy & low-end CPU (without AVX) support

    • If your CPU didn't support AVX instructions, you will get ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed. (Win 10) or ImportError: DLL load failed with error code -1073741795 (Win 7) when using tensorflow official release 1.6.0 and up (pip install tensorflow)
    • You can use pip install <filename.whl> which file download from sse2 folder instead of using official AVX binary.
Path Compiler CUDA/cuDNN SIMD Notes
2.9.0\py39\CPU+GPU\cuda117cudnn8sse2 VS2022 17.2 11.7.0_516.01/8.4.0.27 x86_64 Python 3.9/compute_35
2.9.0\py39\CPU+GPU\cuda117cudnn8avx2 VS2022 17.2 11.7.0_516.01/8.4.0.27 AVX2 Python 3.9/compute_35,sm_50,sm_52,sm_61,sm_70,sm_75,compute_86
2.8.0\py39\CPU+GPU\cuda115cudnn8sse2 VS2019 16.11 11.5.2_496.13/8.3.2.44 x86_64 Python 3.9/compute_35
2.8.0\py39\CPU+GPU\cuda115cudnn8avx2 VS2019 16.11 11.5.2_496.13/8.3.2.44 AVX2 Python 3.9/compute_35,sm_50,sm_52,sm_61,sm_70,sm_75,compute_86
2.7.0\py38\CPU+GPU\cuda115cudnn8sse2 VS2019 16.11 11.5.0_496.13/8.3.0.98 x86_64 Python 3.8/compute_35
2.7.0\py38\CPU+GPU\cuda115cudnn8avx2 VS2019 16.11 11.5.0_496.13/8.3.0.98 AVX2 Python 3.8/compute_35,sm_50,sm_52,sm_61,sm_70,sm_75,compute_86
2.6.0\py38\CPU+GPU\cuda113cudnn8sse2 VS2019 16.11 11.4.1_471.41/8.2.2.26 x86_64 Python 3.8/compute_35
2.6.0\py38\CPU+GPU\cuda113cudnn8avx2 VS2019 16.11 11.4.1_471.41/8.2.2.26 AVX2 Python 3.8/compute_35,sm_50,sm_52,sm_61,sm_70,sm_75,compute_86
2.5.0\py38\CPU+GPU\cuda113cudnn8sse2 VS2019 16.9 11.3.0_465.89/8.2.0.53 x86_64 Python 3.8/compute_35
2.5.0\py38\CPU+GPU\cuda113cudnn8avx2 VS2019 16.9 11.3.0_465.89/8.2.0.53 AVX2 Python 3.8/compute_35,sm_50,sm_52,sm_61,sm_70,sm_75,compute_86
1.15.4+nv20.12\py38\CPU+GPU\cuda111cudnn8sse2 VS2019 16.8 11.1.1_456.81/8.0.5.39 x86_64 Python 3.8/Compute 3.5
1.15.4+nv20.12\py38\CPU+GPU\cuda111cudnn8avx2 VS2019 16.8 11.1.1_456.81/8.0.5.39 AVX2 Python 3.8/Compute 3.5,5.0,5.2,6.1,7.0,7.5,8.6
2.4.0\py38\CPU+GPU\cuda111cudnn8sse2 VS2019 16.8 11.1.1_456.81/8.0.5.39 x86_64 Python 3.8/compute_35
2.4.0\py38\CPU+GPU\cuda111cudnn8avx2 VS2019 16.8 11.1.1_456.81/8.0.5.39 AVX2 Python 3.8/compute_35,sm_50,sm_52,sm_61,sm_70,sm_75,compute_86
2.3.0\py38\CPU+GPU\cuda110cudnn8sse2 VS2019 16.6 11.0.2_451.48/8.0.2.39 x86_64 Python 3.8/compute_35
2.3.0\py38\CPU+GPU\cuda110cudnn8avx2 VS2019 16.6 11.0.2_451.48/8.0.2.39 AVX2 Python 3.8/compute_35,sm_50,sm_52,sm_61,sm_70,compute_75
2.2.0\py37\CPU+GPU\cuda102cudnn76sse2 VS2019 16.5 10.2.89_441.22/7.6.5.32 x86_64 Python 3.7/Compute 3.0
2.2.0\py37\CPU+GPU\cuda102cudnn76avx2 VS2019 16.5 10.2.89_441.22/7.6.5.32 AVX2 Python 3.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
2.1.0\py37\CPU+GPU\cuda102cudnn76sse2 VS2019 16.4 10.2.89_441.22/7.6.5.32 x86_64 Python 3.7/Compute 3.0
2.1.0\py37\CPU+GPU\cuda102cudnn76avx2 VS2019 16.4 10.2.89_441.22/7.6.5.32 AVX2 Python 3.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
2.0.0\py37\CPU\sse2 VS2019 16.3 No x86_64 Python 3.7
2.0.0\py37\CPU\avx2 VS2019 16.3 No AVX2 Python 3.7
2.0.0\py37\GPU\cuda101cudnn76sse2 VS2019 16.3 10.1.243_426.00/7.6.4.38 x86_64 Python 3.7/Compute 3.0
2.0.0\py37\GPU\cuda101cudnn76avx2 VS2019 16.3 10.1.243_426.00/7.6.4.38 AVX2 Python 3.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
1.15.0\py37\CPU+GPU\cuda101cudnn76sse2 VS2019 16.3 10.1.243_426.00/7.6.4.38 x86_64 Python 3.7/Compute 3.0
1.15.0\py37\CPU+GPU\cuda101cudnn76avx2 VS2019 16.3 10.1.243_426.00/7.6.4.38 AVX2 Python 3.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
1.14.0\py37\CPU\sse2 VS2019 16.1 No x86_64 Python 3.7
1.14.0\py37\CPU\avx2 VS2019 16.1 No AVX2 Python 3.7
1.14.0\py37\GPU\cuda101cudnn76sse2 VS2019 16.1 10.1.168_425.25/7.6.0.64 x86_64 Python 3.7/Compute 3.0
1.14.0\py37\GPU\cuda101cudnn76avx2 VS2019 16.1 10.1.168_425.25/7.6.0.64 AVX2 Python 3.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
1.13.1\py37\CPU\sse2 VS2017 15.9 No x86_64 Python 3.7
1.13.1\py37\CPU\avx2 VS2017 15.9 No AVX2 Python 3.7
1.13.1\py37\GPU\cuda101cudnn75sse2 VS2017 15.9 10.1.105_418.96/7.5.0.56 x86_64 Python 3.7/Compute 3.0
1.13.1\py37\GPU\cuda101cudnn75avx2 VS2017 15.9 10.1.105_418.96/7.5.0.56 AVX2 Python 3.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
1.12.0\py36\CPU\sse2 VS2017 15.8 No x86_64 Python 3.6
1.12.0\py36\CPU\avx2 VS2017 15.8 No AVX2 Python 3.6
1.12.0\py36\GPU\cuda100cudnn73sse2 VS2017 15.8 10.0.130_411.31/7.3.1.20 x86_64 Python 3.6/Compute 3.0
1.12.0\py36\GPU\cuda100cudnn73avx2 VS2017 15.8 10.0.130_411.31/7.3.1.20 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
1.12.0\py37\CPU\sse2 VS2017 15.8 No x86_64 Python 3.7
1.12.0\py37\CPU\avx2 VS2017 15.8 No AVX2 Python 3.7
1.12.0\py37\GPU\cuda100cudnn73sse2 VS2017 15.8 10.0.130_411.31/7.3.1.20 x86_64 Python 3.7/Compute 3.0
1.12.0\py37\GPU\cuda100cudnn73avx2 VS2017 15.8 10.0.130_411.31/7.3.1.20 AVX2 Python 3.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
1.11.0\py36\CPU\sse2 VS2017 15.8 No x86_64 Python 3.6
1.11.0\py36\CPU\avx2 VS2017 15.8 No AVX2 Python 3.6
1.11.0\py36\GPU\cuda100cudnn73sse2 VS2017 15.8 10.0.130_411.31/7.3.0.29 x86_64 Python 3.6/Compute 3.0
1.11.0\py36\GPU\cuda100cudnn73avx2 VS2017 15.8 10.0.130_411.31/7.3.0.29 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
1.11.0\py37\CPU\sse2 VS2017 15.8 No x86_64 Python 3.7
1.11.0\py37\CPU\avx2 VS2017 15.8 No AVX2 Python 3.7
1.11.0\py37\GPU\cuda100cudnn73sse2 VS2017 15.8 10.0.130_411.31/7.3.0.29 x86_64 Python 3.7/Compute 3.0
1.11.0\py37\GPU\cuda100cudnn73avx2 VS2017 15.8 10.0.130_411.31/7.3.0.29 AVX2 Python 3.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0,7.5
1.10.0\py36\CPU\sse2 VS2017 15.8 No x86_64 Python 3.6
1.10.0\py36\CPU\avx2 VS2017 15.8 No AVX2 Python 3.6
1.10.0\py36\GPU\cuda92cudnn72sse2 VS2017 15.8 9.2.148.1/7.2.1.38 x86_64 Python 3.6/Compute 3.0
1.10.0\py36\GPU\cuda92cudnn72avx2 VS2017 15.8 9.2.148.1/7.2.1.38 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.10.0\py27\CPU\sse2 VS2017 15.8 No x86_64 Python 2.7
1.10.0\py27\CPU\avx2 VS2017 15.8 No AVX2 Python 2.7
1.10.0\py27\GPU\cuda92cudnn72sse2 VS2017 15.8 9.2.148.1/7.2.1.38 x86_64 Python 2.7/Compute 3.0
1.10.0\py27\GPU\cuda92cudnn72avx2 VS2017 15.8 9.2.148.1/7.2.1.38 AVX2 Python 2.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.9.0\py36\CPU\sse2 VS2017 15.7 No x86_64 Python 3.6
1.9.0\py36\CPU\avx2 VS2017 15.7 No AVX2 Python 3.6
1.9.0\py36\GPU\cuda92cudnn71sse2 VS2017 15.7 9.2.148/7.1.4 x86_64 Python 3.6/Compute 3.0
1.9.0\py36\GPU\cuda92cudnn71avx2 VS2017 15.7 9.2.148/7.1.4 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.9.0\py27\CPU\sse2 VS2017 15.7 No x86_64 Python 2.7
1.9.0\py27\CPU\avx2 VS2017 15.7 No AVX2 Python 2.7
1.9.0\py27\GPU\cuda92cudnn71sse2 VS2017 15.7 9.2.148/7.1.4 x86_64 Python 2.7/Compute 3.0
1.9.0\py27\GPU\cuda92cudnn71avx2 VS2017 15.7 9.2.148/7.1.4 AVX2 Python 2.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.8.0\py36\CPU\sse2 VS2017 15.4 No x86_64 Python 3.6
1.8.0\py36\CPU\avx2 VS2017 15.4 No AVX2 Python 3.6
1.8.0\py36\GPU\cuda91cudnn71sse2 VS2017 15.4 9.1.85.3/7.1.3 x86_64 Python 3.6/Compute 3.0
1.8.0\py36\GPU\cuda91cudnn71avx2 VS2017 15.4 9.1.85.3/7.1.3 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.8.0\py27\CPU\sse2 VS2017 15.4 No x86_64 Python 2.7
1.8.0\py27\CPU\avx2 VS2017 15.4 No AVX2 Python 2.7
1.8.0\py27\GPU\cuda91cudnn71sse2 VS2017 15.4 9.1.85.3/7.1.3 x86_64 Python 2.7/Compute 3.0
1.8.0\py27\GPU\cuda91cudnn71avx2 VS2017 15.4 9.1.85.3/7.1.3 AVX2 Python 2.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.7.0\py36\CPU\sse2 VS2017 15.4 No x86_64 Python 3.6
1.7.0\py36\CPU\avx2 VS2017 15.4 No AVX2 Python 3.6
1.7.0\py36\GPU\cuda91cudnn71sse2 VS2017 15.4 9.1.85.3/7.1.2 x86_64 Python 3.6/Compute 3.0
1.7.0\py36\GPU\cuda91cudnn71avx2 VS2017 15.4 9.1.85.3/7.1.2 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.7.0\py27\CPU\sse2 VS2017 15.4 No x86_64 Python 2.7
1.7.0\py27\CPU\avx2 VS2017 15.4 No AVX2 Python 2.7
1.7.0\py27\GPU\cuda91cudnn71sse2 VS2017 15.4 9.1.85.3/7.1.2 x86_64 Python 2.7/Compute 3.0
1.7.0\py27\GPU\cuda91cudnn71avx2 VS2017 15.4 9.1.85.3/7.1.2 AVX2 Python 2.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.6.0\py36\CPU\sse2 VS2017 15.4 No x86_64 Python 3.6
1.6.0\py36\CPU\avx2 VS2017 15.4 No AVX2 Python 3.6
1.6.0\py36\GPU\cuda91cudnn71sse2 VS2017 15.4 9.1.85.3/7.1.1 x86_64 Python 3.6/Compute 3.0
1.6.0\py36\GPU\cuda91cudnn71avx2 VS2017 15.4 9.1.85.3/7.1.1 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.6.0\py27\CPU\sse2 VS2017 15.4 No x86_64 Python 2.7
1.6.0\py27\CPU\avx2 VS2017 15.4 No AVX2 Python 2.7
1.6.0\py27\GPU\cuda91cudnn71sse2 VS2017 15.4 9.1.85.2/7.1.1 x86_64 Python 2.7/Compute 3.0
1.6.0\py27\GPU\cuda91cudnn71avx2 VS2017 15.4 9.1.85.2/7.1.1 AVX2 Python 2.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.5.0\py36\CPU\avx VS2017 15.4 No AVX Python 3.6
1.5.0\py36\CPU\avx2 VS2017 15.4 No AVX2 Python 3.6
1.5.0\py36\GPU\cuda91cudnn7avx2 VS2017 15.4 9.1.85/7.0.5 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.5.0\py27\CPU\sse2 VS2017 15.4 No x86_64 Python 2.7
1.5.0\py27\CPU\avx VS2017 15.4 No AVX Python 2.7
1.5.0\py27\CPU\avx2 VS2017 15.4 No AVX2 Python 2.7
1.5.0\py27\GPU\cuda91cudnn7sse2 VS2017 15.4 9.1.85/7.0.5 x86_64 Python 2.7/Compute 3.0
1.5.0\py27\GPU\cuda91cudnn7avx2 VS2017 15.4 9.1.85/7.0.5 AVX2 Python 2.7/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.4.0\py36\CPU\avx VS2017 15.4 No AVX Python 3.6
1.4.0\py36\CPU\avx2 VS2017 15.4 No AVX2 Python 3.6
1.4.0\py36\GPU\cuda91cudnn7avx2 VS2017 15.4 9.1.85/7.0.5 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1,7.0
1.3.0\py36\CPU\avx VS2015 Update 3 No AVX Python 3.6
1.3.0\py36\CPU\avx2 VS2015 Update 3 No AVX2 Python 3.6
1.3.0\py36\GPU\cuda8cudnn6avx2 VS2015 Update 3 8.0.61.2/6.0.21 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1
1.2.1\py36\CPU\avx VS2015 Update 3 No AVX Python 3.6
1.2.1\py36\CPU\avx2 VS2015 Update 3 No AVX2 Python 3.6
1.2.1\py36\GPU\cuda8cudnn6avx2 VS2015 Update 3 8.0.61.2/6.0.21 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1
1.1.0\py36\CPU\avx VS2015 Update 3 No AVX Python 3.6
1.1.0\py36\CPU\avx2 VS2015 Update 3 No AVX2 Python 3.6
1.1.0\py36\GPU\cuda8cudnn6avx2 VS2015 Update 3 8.0.61.2/6.0.21 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1
1.0.0\py36\CPU\sse2 VS2015 Update 3 No x86_64 Python 3.6
1.0.0\py36\CPU\avx VS2015 Update 3 No AVX Python 3.6
1.0.0\py36\CPU\avx2 VS2015 Update 3 No AVX2 Python 3.6
1.0.0\py36\GPU\cuda8cudnn51sse2 VS2015 Update 3 8.0.61.2/5.1.10 x86_64 Python 3.6/Compute 3.0
1.0.0\py36\GPU\cuda8cudnn51avx2 VS2015 Update 3 8.0.61.2/5.1.10 AVX2 Python 3.6/Compute 3.0,3.5,5.0,5.2,6.1
0.12.0\py35\CPU\avx VS2015 Update 3 No AVX Python 3.5
0.12.0\py35\CPU\avx2 VS2015 Update 3 No AVX2 Python 3.5
0.12.0\py35\GPU\cuda8cudnn51avx2 VS2015 Update 3 8.0.61.2/5.1.10 AVX2 Python 3.5/Compute 3.0,3.5,5.0,5.2,6.1

tensorflow-windows-wheel's People

Contributors

fo40225 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tensorflow-windows-wheel's Issues

Is x86 supposed to be slower than x64?

First of all, thank you very much for sharing the x86 building. It was literally killing me...

I tried to compile the same C++ code with r1.8 x86(libtensorflow-cpu-windows-x86_32-1.8.0-sse2) and x64(libtensorflow-cpu-windows-x86_64-1.8.0-sse2). The exactly same inference takes about 200ms in the x64 version, but as long as 400ms in the x86 version. Is it normal?

Please provide a donation link...

It wasn't going well for me, trying to build TensorFlow on my older Windows 10 machine. You saved me a ton of frustration and many hours of effort.

Please provide a link that we can use for donation. If you have a PayPal link, that would be ideal.

Many thanks!

Jim W.

Build steps under Windows 64 bit environment ?

Hi,
Thanks for you share so many wheels of TensorFlow.
Could you please share the steps how you build AVX2 support under windows 64 bit with anaconda 5.1 (Python 3.6.4) environment?

Thanks in advance!

Problem with protobuf library

I use 'libtensorflow-gpu-windows-x86_64-1.10.0-sse2cuda92cudnn72' to do sth. I want custom ReadBinaryProto function( in env.h), so I write another function (like ReadTextStrProto(...)) in which call proto->ParseFromString(data).
When compile it, error is unresolved external symbol ...... ParseFromString ..., it seems miss some library(maybe libprotobuf.lib). In 7z file, it seems not containit.
So question is whether I miss something or I should build protobuf library by myself ?
Thanks.

how to build single library file and some issues

I am building the tf r1.11 library using bazel on windows. It compiles fine but the libtensorflow_cc.so.if.lib file I get is much smaller (in kb) than yours that is in MB. Also I am not able to link properly against a simple program without getting "unresolved errors". I think that is because the single lib file I have does not have everything. How do you get one lib file (tensorflow.lib) that has everything needed in tensorflow.dll(or libtensorflow_cc.so) ?

Also I see that you have a tensorflow_static.lib file even for the GPU verion. How do you produce that ?

Btw the only reason I am trying to recompile (instead of using your binaries) is because tensorflow built with --config=monolithic seems to have problems with protobuf strings like
tensorflow/tensorflow#5379 tensorflow/tensorflow#16291 .
The fix is to add ptotobuf; in tf_version_script linker file. I want to rebuild with that since it is a very serious issue that doesn't allow you to do many things without. Try this simple code given in the second link that demonstrates all string fields share the same memory location if you use shared library built with --config=monolithic (tried it boths on linus and windows).

#include "tensorflow/core/protobuf/control_flow.pb.h"
#include "tensorflow/core/protobuf/config.pb.h"
#include <iostream>

int main() {
  tensorflow::CondContextDef options;
  tensorflow::GPUOptions gpu_options;

  gpu_options.set_allocator_type("allocator_type");
  options.set_context_name("context");
  options.set_pred_name("pred");
  options.set_pivot_name("pivot");
  options.set_branch(1);

  std::cout << "context name " << options.context_name() << std::endl; //print pivot
  std::cout << "pred name " << options.pred_name()<< std::endl; //print pivot
  std::cout << "pivot name " << options.pivot_name()<< std::endl; //print pivot

  std::cout << "allocator_type " << gpu_options.allocator_type() << std::endl; //print pivot

}

How to install?

dont know how to install from the .whl file.
Please help and add in the wiki.

Many thanks!
You just saved my life!

bazel build branch r1.10 on windows ERROR _api_implementation.so

ERROR: C:/users/thinkpad/_bazel_thinkpad/26orbg4z/external/protobuf_archive/BUILD:645:1: C++ compilation of rule '@protobuf_archive//:python/google/protobuf/internal/_api_implementation.so' failed (Exit 1): cl.exe failed: error executing command
C:\users\thinkpad_bazel_thinkpad\26orbg4z\execroot\org_tensorflow\external\protobuf_archive\python\google\protobuf\internal\api_implementation.cc : fatal error C1083: 无法打开编译器生成的文件: “”: Invalid argument
Target //tensorflow/tools/pip_package:build_pip_package failed to build
INFO: Elapsed time: 22363.015s, Critical Path: 4574.16s
INFO: 6185 processes: 6185 local.
FAILED: Build did NOT complete successfully
How to solve compilation errors?
Thank you

Error installing 1.8.0\py36\GPU\cuda91cudnn71avx2

hello Great repo, thanks!

But I'm getting the following error when I try to install on windows 10 x64:

pip install --ignore-installed --upgrade "https://github.com/fo40225/tensorflow-windows-wheel/blob/master/1.8.0/py36/GPU/cuda91cudnn71avx2/tensorflow_gpu-1.8.0-cp36-cp36m-win_amd64.whl"
Collecting tensorflow-gpu==1.8.0 from https://github.com/fo40225/tensorflow-windows-wheel/blob/master/1.8.0/py36/GPU/cuda91cudnn71avx2/tensorflow_gpu-1.8.0-cp36-cp36m-win_amd64.whl
  Downloading https://github.com/fo40225/tensorflow-windows-wheel/blob/master/1.8.0/py36/GPU/cuda91cudnn71avx2/tensorflow_gpu-1.8.0-cp36-cp36m-win_amd64.whl
     / 40kB 239kB/s
Exception:
Traceback (most recent call last):
  File "c:\dev\python36\lib\site-packages\pip\_internal\basecommand.py", line 228, in main
    status = self.run(options, args)
  File "c:\dev\python36\lib\site-packages\pip\_internal\commands\install.py", line 291, in run
    resolver.resolve(requirement_set)
  File "c:\dev\python36\lib\site-packages\pip\_internal\resolve.py", line 103, in resolve
    self._resolve_one(requirement_set, req)
  File "c:\dev\python36\lib\site-packages\pip\_internal\resolve.py", line 257, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "c:\dev\python36\lib\site-packages\pip\_internal\resolve.py", line 210, in _get_abstract_dist_for
    self.require_hashes
  File "c:\dev\python36\lib\site-packages\pip\_internal\operations\prepare.py", line 310, in prepare_linked_requirement
    progress_bar=self.progress_bar
  File "c:\dev\python36\lib\site-packages\pip\_internal\download.py", line 837, in unpack_url
    progress_bar=progress_bar
  File "c:\dev\python36\lib\site-packages\pip\_internal\download.py", line 678, in unpack_http_url
    unpack_file(from_path, location, content_type, link)
  File "c:\dev\python36\lib\site-packages\pip\_internal\utils\misc.py", line 575, in unpack_file
    flatten=not filename.endswith('.whl')
  File "c:\dev\python36\lib\site-packages\pip\_internal\utils\misc.py", line 460, in unzip_file
    zip = zipfile.ZipFile(zipfp, allowZip64=True)
  File "c:\dev\python36\lib\zipfile.py", line 1108, in __init__
    self._RealGetContents()
  File "c:\dev\python36\lib\zipfile.py", line 1175, in _RealGetContents
    raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: File is not a zip file

Any idea how to solve it? Thanks!

vs2017 use libtensorflow-cpu-windows-x86_64-1.10.0-avx2 C++Compile Error

When I use your ibtensorflow-cpu-windows-x86_64-1.10.0-avx2 on windows 10,the error is on follow.
Can you help me?Thank you.
\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(230): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(229): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(230): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(230): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(230): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(231): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(231): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(231): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(231): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(231): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(232): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(232): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(232): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(232): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(232): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(233): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(233): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(233): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(233): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(233): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(234): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(234): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(234): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(234): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(234): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(235): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(235): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(235): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(235): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\logging.h(235): error C2143: 语法错误: 缺少“;”(在“{”的前面)
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\platform\default\string_coding.h(44): warning C4267: “参数”: 从“size_t”转换到“tensorflow::uint32”,可能丢失数据
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\allocator.h(115): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\allocator.h(115): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\allocator.h(115): note: 此诊断出现在编译器生成的函数“T *tensorflow::Allocator::Allocate(size_t,const tensorflow::AllocationAttributes &)”中
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\lib\gtl\array_slice_internal.h(172): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\lib\gtl\array_slice_internal.h(227): note: 参见对正在编译的 类 模板 实例化 "tensorflow::gtl::array_slice_internal::ArraySliceImplBase" 的引用
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(106): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(106): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(106): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(106): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(107): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(107): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(107): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(107): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(108): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(108): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(108): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(108): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(109): warning C4003: “max”宏的实参不足
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(109): error C2589: “(”:“::”右边的非法标记
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(109): error C2062: 意外的类型“unknown-type”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\tensorflow\core\framework\tensor_shape.h(109): error C2059: 语法错误:“)”
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\unsupported\eigen\cxx11\src\tensor\tensor.h(76): warning C4554: “&”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
1>i:\tensorflow\windows\libtensorflow-cpu-windows-x86_64-1.10.0-avx2\include\unsupported\eigen\cxx11\src\tensor\tensormap.h(31): note: 参见对正在编译的 类 模板 实例化 "Eigen::Tensor<T,1,1,int>" 的引用
1> with

tensorflow-1.9.0-cp36-cp36m-win_amd64.whl bad zip file error

Hi,
I am trying to make tensorflow 1.10 work on windows 10 with SSE2 (old pc), and got below error. any clue?
pip3 install --ignore-installed --upgrade tensorflow-1.9.0-cp36-cp36m-win_amd64.whl
.
.
raise BadZipFile("File is not a zip file")
zipfile.BadZipFile: File is not a zip file
_

Thanks,..

Don't know how to install

Please how do i install?
I'm confused about how to install. I use windows 10. I tried pip install *.whl it didn't work

ModuleNotFoundError: No module named 'tensorflow'

Hi there!

I have used the following command lines and "successfully" installed tf1.50:
pushd C:\Program Files\Anaconda3\Scripts
conda create -n tensorflow pip python=3.6
activate tensorflow
pip install tensorflow_gpu-1.5.0-cp36-cp36m-win_amd64.whl

But when I try run the following line in Python interactive sheel, I get the error in the subject line, any idea?

Kindest,
Wei

Tensorflow for Java with GPU support

Great Repository. I was wondering if you can share the build process in the github wiki. Other than that it would be nice if you can add java bindings to Tensorflow-GPU. This is something Google does not provide.

bazel build branch r1.10 on windows

I've been using this repo for some time and I wanted to share that I was able to build tf on windows 10 with bazel. This is based on the build log from the Official Builds.

Versions:
VS2017 with VS2015 workload
CUDA 9.2.148 and cuDNN 7.1.4
Python 3.6.6
Bazel 0.15.2

Clone the repo and checkout branch r1.10

git clone https://github.com/tensorflow/tensorflow
cd tensorflow
git checkout r1.0

VS prompt

"%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64

Activate your python env

conda activate py36

for CUPTI

set PATH=%ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v9.2\extras\CUPTI\libx64;%PATH%

for grep, bash and perl

set PATH=%ProgramFiles%\Git\usr\bin;%PATH%

bazel envs

set BAZEL_SH=%ProgramFiles%\Git\usr\bin\bash.exe
set BAZEL_VC=%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC

this will create .tf_configure.bazelrc file with options you choose... cpu or gpu, cuda version, cudnn version, /arch:AVX2 or whatever...

python configure.py

build command. (--jobs 2 --local_resources 3000,2,1.0 is optional, I wanted to use the PC while building)

bazel build --jobs 2 --local_resources 3000,2,1.0 --config=opt //tensorflow/tools/pip_package:build_pip_package

Create wheel package

bazel-bin\tensorflow\tools\pip_package\build_pip_package tmp/tensorflow_pkg

bug report

Hello, I find there is a bug in the file logging.h;
When debug it, it report the problem:
Severity Code Description Project File Line Suppression State
Error C2589 '(': illegal token on right side of '::' c:\code\3rdpart\libtensorflow-gpu-windows-x86_64-1.9.0-avx2cuda92cudnn71\include\tensorflow\core\platform\default\logging.h 229

Pls check it

TensorFlow 1.11 CPU x64 with AVX instructions ?

Hello!

I used a lot of time 1.05 version with AVX compatibility, but it's time to upgrade

Please, can you compile the last version for the x64 AVX instruction? I only see AVX2

EDIT: I'm asking for Python 3.6 or 3.7, I dont care

Need SSE/GPU with 6.1 compute

Thank you for creating these wheels. I have a Bloomfield CPU (SSE4.2) and a 1080 Ti (6.1 compute), but I didn't see any version that matched my configuration. Would tensorflow run at half speed with the 3.0 compute builds? Is there any way you could create an SSE + 6.1 compute wheel? I've tried and can't get bazel to build. Would love these versions if you have time:

TF 1.8, SSE, 6.1 compute
TF 1.11, SSE, 6.1 compute

Not a supported wheel on this platform for python 3.6 builds

Hi thanks for all the optimized builds!
Your python 2.7 builds for tf 1.5 all worked like a charm (both cpu and gpu) for me, but I run into problems when using python 3.6 builds.

I create a new conda environment using
conda create -n py36tf python=3.6
and then attempt to install tensorflow
pip install tensorflow_gpu-1.5.0-cp36-cp36m-win_amd64.whl
but I get a not supported wheel error.
I am on Windows 7 64 bit.

Possibly it's because of the precise python 3.6.x version you used?

Best,
Julien

Get Nan when powering tesnors with float32

Hi!

I'm from here issue tensorflow repo.

The issue was closed and to do not open it again I write here to answer your this question

Is it a common scenario to calculate the power of negative numbers?

Yes. If I calculate power any tensors float32 type with negative number, all negative number turn to NaN, no metter what powet is ( equal to 2 or more then 2 or odd).
But if initialize tensor with float 64, everything will be fine.

Due to the special function unit is limited resource in GPU, you should use multiply if your power is small integer.

Ok, I got it, I can multiply tensors on itself, but it is really stupid, and ruined pipeline) And in the code from someone else where is normal TF I'll get NaN anyway and not only NaN in calulate power but optimizers and other stuff uder the hood just may not work properly.

So what shoud I do?

I don't want to downgrade my Cuda и СuDNN, I just want to use the last ones with last TF without compile it by myself.

And by the way, thanks you for doing it! Many people, I'm sure, aprecciate for that.

Build recipe for Windows 32-bit TensorFlow 1.8

I am very curious to know how you managed to build the 32-bit DLL for TensorFlow 1.8. I've been trying for several days, but ran into the problem that Eigen expects 32-bit integers for sizes, while TensorFlow makes use of int64. Please tell me how you fixed this.

Tensorflow 1.7.1

Can you please compile TensorFlow 1.7.1 (GPU - CUDA 9.2 & CPU) as I need that specific version for a project ?

TFLite missing from contrib

Thanks for the wheel and am able to use 1.7 on my Windows 10 machine. I have a question though. I'm working on models to be implemented in an Android app. I observe that TFLite is missing from contrib and am not able to use TFLite associated commands like toco.

Does this mean that processor that does not support AVX are barred from using TFLite ?

cuDNN 7.1.3 is not on NVIDIA website

I don't know why, but 7.1.3 is no longer on NVIDIA website. So, I can't use 1.8.0\py36\GPU\cuda91cudnn71sse2 build.

Screenshots of https://developer.nvidia.com/rdp/cudnn-download

Screenshots of https://developer.nvidia.com/rdp/cudnn-archive

It appears every other version is available. Can you provide a download link, please.

Support for AVX512

Hi guys, do you have any plan to add Tensorflow binaries with AVX512 support?
Thanks for such a great work @fo40225!

What different between AVX2 and x86_64 SIMD?

Sorry for my bad English. I'm new to learn Python and Deep Learning field.
Can you explain what different between SIMD AVX2 and x86_64 SIMD version?

I have a computer with core i7 8550u and MX150 GPU, which version should I choose? I used AVX2 (because I read the intel manual that says my CPU support AVX2, but when I install it and try with MNIST, I took around 7-8s per Epoch, it's just a little bit better than I run MNIST on CPU (8s) and I saw that GPU usage just around 15-20%) Is this normal?
Thank you a lot.

Build Steps for building c++ dll and libs on windows

Hi,
Thanks a lot for sharing all the dlls and libs for windows. I wanted to know build steps that you used for building tensorflow c++ dlls and libs for windows 10 with tensorflow version 1.10, cuda 9.2 and cudnn 7.2.

tflearn

Hi,

thanks a lot for all these .whl.
it seems that tflearn is not included right ?
I tried to install it after the installation of .whl of tensorflow but when I want to import it I have this error:

AttributeError: 'module' object has no attribute 'float32'

Performance improvement is not achieved with AVX

My processor- Intel(R) Core(TM) i7-3740QM supports the AVX instructions set. I created 2 environments with Anaconda 4.5.0:

  • tf_avx: has tf installed with tensorflow-windows-wheel/1.5.0/py36/CPU/avx/tensorflow-1.5.0-cp36-cp36m-win_amd64.whl

  • tf_wo_simd: has tf installed with pip install tensorflow==1.2.0
    (the reason I selected this version is to ensure that I'm installing a version without SIMD. When it's activated, I can see the warnings about the SIMD printed by tf)

I ran the same code, evaluating a simple network with two fully connected layers, on each of the envs. I couldn't see the time improvement between the two. I will continue to say that it comes after I try it on a complicated network with few conv layers, the improvement wasn't seen there too.

Did I miss something?
Thank you for your help

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.