Difference between revisions of "Tensorflow Guide"
From Storrs HPC Wiki
(→TensorFlow v0.12.1 (Both GPU and CPU Support)) |
(→TensorFlow v0.12.1 (Both GPU and CPU Support)) |
||
Line 33: | Line 33: | ||
==TensorFlow v0.12.1 (Both GPU and CPU Support)== | ==TensorFlow v0.12.1 (Both GPU and CPU Support)== | ||
module load cuda/8.0.61 cudnn/6.0 python/2.7.6-gcc-unicode | module load cuda/8.0.61 cudnn/6.0 python/2.7.6-gcc-unicode | ||
− | + | Notice: | |
*1: You should see the following auto-output, which means the gpu dependence libraries have been loaded successfully. | *1: You should see the following auto-output, which means the gpu dependence libraries have been loaded successfully. | ||
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally | I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally |
Revision as of 22:23, 28 April 2017
Tensorflow | |
---|---|
Author | Google Brain Team |
Website | https://www.tensorflow.org/ |
Source | HistoryVersions |
Category | Machine Learning, Deep Neural Networks |
Help | documentation |
Current Supported Versions in HPC
CPU Support Version | Corresponding Python Module | Dependence | Released Date |
---|---|---|---|
v0.10.0rc0 | python/2.7.6 | - | Jul 29, 2016 |
- | - | - | - |
GPU & CPU Support Version | Corresponding Python Module | Dependence | Released Date |
---|---|---|---|
v0.12.1 | python/2.7.6-gcc-unicode | cuda, cudnn | Dec 25, 2016 |
- | - | - | - |
Import Modules
TensorFlow v0.10.0rc0 (CPU Support Only)
module load python/2.7.6
TensorFlow v0.12.1 (Both GPU and CPU Support)
module load cuda/8.0.61 cudnn/6.0 python/2.7.6-gcc-unicode
Notice:
- 1: You should see the following auto-output, which means the gpu dependence libraries have been loaded successfully.
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so.6 locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally
- 2: will get the error below if you run python in normal computing node:
E tensorflow/stream_executor/cuda/cuda_driver.cc:509] failed call to cuInit: CUresult(-1) I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:145] kernel driver does not appear to be running on this host (cn02): /proc/driver/nvidia/version does not exist
Application Usage
Check Version Number
$ python Python 2.7.6 (default, Apr 20 2016, 16:39:52) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf >>> print tf.__version__ 0.12.1 >>>
Example: How to Build Computational Graph
$ python Python 2.7.6 (default, Apr 20 2016, 16:39:52) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf >>> node1 = tf.constant(3.0, tf.float32) >>> node2 = tf.constant(4.0) >>> node3 = tf.add(node1, node2) >>> sess = tf.Session() >>> sess.run(node3) 7.0 >>> a = tf.placeholder(tf.float32) >>> b = tf.placeholder(tf.float32) >>> adder_node = a + b >>> print(sess.run(adder_node, {a: 3, b:4.5})) 7.5 >>> print(sess.run(adder_node, {a: [1,3], b: [2, 4]})) [ 3. 7.] >>> add_and_triple = adder_node * 3 >>> print(sess.run(add_and_triple, {a: 3, b:4.5})) 22.5 >>>
Example: Logging Device placement (GPU Version Guide)
hpc-xin@cn02:~$ ssh gpu01 hpc-xin@gpu01:~$ module purge hpc-xin@gpu01:~$ module load cuda/8.0.61 cudnn/6.0 python/2.7.6-gcc-unicode hpc-xin@gpu01:~$ python Python 2.7.6 (default, Apr 20 2016, 16:39:52) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so.6 locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally >>> a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') >>> b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') >>> c = tf.matmul(a, b) >>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K40m, pci bus id: 0000:03:00.0) I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:1) -> (device: 1, name: Tesla K40m, pci bus id: 0000:82:00.0) Device mapping: /job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Tesla K40m, pci bus id: 0000:03:00.0 /job:localhost/replica:0/task:0/gpu:1 -> device: 1, name: Tesla K40m, pci bus id: 0000:82:00.0 I tensorflow/core/common_runtime/direct_session.cc:255] Device mapping: /job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Tesla K40m, pci bus id: 0000:03:00.0 /job:localhost/replica:0/task:0/gpu:1 -> device: 1, name: Tesla K40m, pci bus id: 0000:82:00.0 >>> print(sess.run(c)) MatMul: (MatMul): /job:localhost/replica:0/task:0/gpu:0 I tensorflow/core/common_runtime/simple_placer.cc:827] MatMul: (MatMul)/job:localhost/replica:0/task:0/gpu:0 b: (Const): /job:localhost/replica:0/task:0/gpu:0 I tensorflow/core/common_runtime/simple_placer.cc:827] b: (Const)/job:localhost/replica:0/task:0/gpu:0 a: (Const): /job:localhost/replica:0/task:0/gpu:0 I tensorflow/core/common_runtime/simple_placer.cc:827] a: (Const)/job:localhost/replica:0/task:0/gpu:0 Const: (Const): /job:localhost/replica:0/task:0/cpu:0 I tensorflow/core/common_runtime/simple_placer.cc:827] Const: (Const)/job:localhost/replica:0/task:0/cpu:0 [[ 22. 28.] [ 49. 64.]]
More Examples
https://www.tensorflow.org/tutorials/mandelbrot