1. 程式人生 > >tensorflow-條件迴圈控制(2)

tensorflow-條件迴圈控制(2)

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 ]]