tensorflow-條件迴圈控制(2)
阿新 • • 發佈:2018-12-03
tf.tuple(元組)
tf.tuple(
tensors,
name=None,
control_inputs=None
)
將多個tensor合併組。
這建立了一個張量元組,其值與多張量引數相同,只是每個張量的值只有在計算完所有張量的值之後才返回。
control_inputs包含額外的OPS,在OP完成之前必須完成,但其輸出不返回。
這可以被用作平行計算的“連線”機制:所有的引數張量可以平行計算,但是在所有平行計算完成之後,元組返回的任何張量的值都是可用的。
.
引數:
tensors: 多tensor的列表或IndexedSlices, 有些條目可能是None。
name: (可選)用作操作的 name_scope的名稱。
control_inputs: 在返回之前完成附加操作表
返回:
像tensors一樣
Raises:
ValueError:如果tensors沒有包括任何tensor或IndexedSlices。
TypeError: 如果control_inputs不是一個Operation或Tensor 物件的列表。
#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Mon Aug 27 11:16:32 2018 @author: myhaspl """ import tensorflow as tf x1 = tf.random_normal([1000,1000],mean=100) x2 = tf.random_normal([1000,1000],mean=100) x3 = tf.random_normal([1000,1000],mean=100) y1 = tf.sqrt(x1) y2 = tf.sqrt(x2) y3 = tf.sqrt(x3) z = tf.tuple([y1,y2,y3]) sess=tf.Session() with sess: res=sess.run(z) print res[0] [[ 9.989998 9.980425 9.897268 ... 10.010141 10.008263 10.005144] [ 9.970587 9.988404 10.011098 ... 10.027785 9.956984 10.110886] [ 9.982615 9.952952 10.033136 ... 9.999784 10.009718 9.915539] ... [ 9.934934 9.926054 10.045075 ... 10.0579 10.020126 9.959899] [10.031994 10.059689 10.05442 ... 10.009988 9.977903 10.036525] [ 9.945853 9.955557 10.047363 ... 10.067215 9.942139 10.06124 ]]