Python 无法在tensorflow中打印神经网络的输出

Python 无法在tensorflow中打印神经网络的输出,python,tensorflow,oop,keras,neural-network,Python,Tensorflow,Oop,Keras,Neural Network,因此,对于上面的代码,我实现了一个简单的、顺序的、完全连接的NN temp_func用于打印给定np数组的NN的输出 所以我通过创建一个带有np数组的人工示例来测试它 import numpy as np import tensorflow.compat.v1 as tf tf.disable_v2_behavior class DQNagent: def __init__(self, session, structure, input_dim, output_dim):

因此,对于上面的代码,我实现了一个简单的、顺序的、完全连接的NN temp_func用于打印给定np数组的NN的输出

所以我通过创建一个带有np数组的人工示例来测试它

import numpy as np
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior


class DQNagent:

    def __init__(self, session, structure, input_dim, output_dim):
        self.session = session
        self.structure = structure
        self.input_dim = input_dim
        self.output_dim = output_dim
        self.input_vec = tf.placeholder(tf.float32, shape=[None, self.input_dim])
        self.network = self.create_model()

    def create_model(self):

        for i in range(0, len(self.structure)-1):
            if i == 0:
                network = tf.layers.Dense(self.structure[i], tf.keras.activations.relu)(self.input_vec)
                network = tf.layers.BatchNormalization()(network)
            else:
                network = tf.layers.Dense(self.structure[i], tf.keras.activations.relu)(network)
                network = tf.layers.BatchNormalization()(network)

        network = tf.layers.Dense(self.output_dim, tf.keras.activations.linear)(network)

        return network

    def temp_func(self, input_data):
        temp_input_data = np.expand_dims(input_data, 0)
        output_vec = self.session.run(self.network, feed_dict={self.input_vec: temp_input_data})
        print(output_vec)
所以NNstructure[i]代表第i层神经元的数量 然后我创建了一个会话

data = []
for _ in range(10):
    data.append(np.random.normal(0.0,1.0))

NNstructure = []
for _ in range(2):
    NNstructure.append(10)
理论上,它应该用人工生成的数据打印出神经网络的输出 如果我不使用类的概念编写所有这些代码,它运行得很好

我收到的错误消息是

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    dqn = DQNagent(sess, NNstructure, len(data), 5)
    dqn.temp_func(data)

在执行变量初始化之后,您正在创建变量,因此没有任何内容被初始化。需要更改以下行的顺序

tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value dense_1/kernel
 [[{{node dense_1/kernel/read}}]]

sess.run(tf.global_variables_initializer())
dqn = DQNagent(sess, NNstructure, len(data), 5)

dqn = DQNagent(sess, NNstructure, len(data), 5)
sess.run(tf.global_variables_initializer())