Использование NumPy для скрытого слоя выводит данные веса и уклонов - PullRequest
1 голос
/ 29 мая 2019

Я извлек веса и смещения для моих скрытых полностью связанных слоев Tensorflow (3 скрытых-ReLU, 1 выходной-NoActivation) следующим образом:

trainable_variables = tf.trainable_variables()

kernels_list = [trainable_variable for trainable_variable in trainable_variables if "DQN" in trainable_variable.name and "kernel" in trainable_variable.name]
biases_list = [trainable_variable for trainable_variable in trainable_variables if "DQN" in trainable_variable.name and "bias" in trainable_variable.name]

sess.run(tf.global_variables_initializer())

kval_list = [sess.run(kernels_list[i]) for i in range(len(kernels_list))]
bval_list = [sess.run(biases_list[i]) for i in range(len(biases_list))]

Учитывая, что модель полностью обучена, я хочу использовать эти весовые коэффициенты и отклонения для выполнения "прогнозирования с пустыми краями". У меня есть входной массив, который идет к первому скрытому слою, затем numpy использует эти веса и смещения, чтобы найти выходные данные из первого скрытого слоя и т. Д. Вот код, который я использую, чтобы попытаться выполнить эти вычисления:

x = state # state is my 1 dimensional input array

for i in range(0, len(kernels_list)):
    weights = kval_list[i]
    biases = bval_list[i]

    w = x.dot(weights)
    w += biases

    out = np.maximum(w, 0) # ReLU
    if i == len(kernels_list) - 1: # If output layer, no ReLU
        out = w

    x = out # Input to the next layer

Однако, когда я сравниваю окончательное значение x (выходной слой) с выходным слоем с помощью прогноза Tensorflow, я получаю разные значения для каждого выходного узла ... Я неправильно выполняю свои матричные вычисления? Входной слой имеет 1140 узлов, поэтому x.shape = (1140,) изначально, а первый скрытый слой имеет 600 узлов, поэтому weights.shape = (1140, 600) и biases.shape = (600,) в первой итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...