tensorlow函数多个返回值问题

来源:互联网 发布:女性健康知讲座 编辑:程序博客网 时间:2024/05/17 17:46

通过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.]]}))

原创粉丝点击