通过tensorflow定义的函数也可以有多个返回值,返回值可以是普通数据,也可以是张量对象,对于多个返回值可以有两种形式:
一种是直接通过逗号分隔,如return weights, biases,此时返回值会以元组(tuple)的形式返回,即(weights, bisases)的形式返回,获取返回值可以通过return_data[0]、return_data[1]的方式获取。
第二种形式是通过字典形式,如return {'w':weights, 'b':bisase},此时返回值是以字典(dict)的形式返回,即{'w':weights, 'b':bisase},获取返回值可以通过return_data['w']、return_data['b']的形式获取。
对于返回值的获取需要使用一个变量来进行接收,即return_data。实例如下:
import tensorflow as tf
def get_variables(input_data, in_size1 ,out_size1, in_size2, out_size2):
w = tf.Variable(tf.random_normal([in_size1, out_size1]))
b = tf.Variable(tf.random_normal([in_size2, out_size2]))
outdata = tf.matmul(input_data, w)
return {'outdata':outdata,'weight':w,'biase':b}
x = tf.placeholder(tf.float32,[None, 2])
out = get_variables(x, 2,2,3,3)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(sess.run(out['biase']))#,feed_dict = {x:[[1.,1.],[2.,2.]]}))