AttributeError: у модуля tenensflow нет атрибута «log», ошибка - PullRequest
0 голосов
/ 08 марта 2020

Я использовал библиотеку ZhuSuan для построения байесовской ячейки LSTM. Я использовал код, который был в вашей бумаге: ZhuSuan: библиотека для байесовской глубины python. Но я получил ошибку:

AttributeError: модуль 'tenorflow' не имеет атрибута 'log' Может кто-нибудь помочь мне решить эту проблему?

  class BayesianLSTMCell(object):
    def __init__(self, num_units, forget_bias=1.0):
        self._forget_bias = forget_bias
        w_mean = tf.zeros([2 * num_units + 1, 4 * num_units])
        self._w = zs.Normal('w', w_mean, std=1., group_ndims=2)
    def __call__(self, state, inputs):
        c, h = state
        batch_size = tf.shape(inputs)[0]
        linear_in = tf.concat([inputs, h, tf.ones([batch_size, 1])], axis=1)
        linear_out = tf.matmul(linear_in, self._w)
        # i = input_gate, j = new_input, f = forget_gate, o = output_gate
        i, j, f, o = tf.split(value=linear_out, num_or_size_splits=4, axis=1)
        new_c = (c * tf.sigmoid(f + self._forget_bias) +
                 tf.sigmoid(i) * tf.tanh(j))
        new_h = tf.tanh(new_c) * tf.sigmoid(o)
        return new_c, new_h
def bayesian_rnn(cell, inputs, seq_len):
    batch_size = tf.shape(inputs)[0]
    initializer = (tf.zeros([batch_size, 128]), tf.zeros([batch_size, 128]))
    c_list, h_list = tf.scan(cell, inputs, initializer=initializer)
    relevant_outputs = tf.gather_nd(
    h_list, tf.stack([seq_len - 1, tf.range(batch_size)], axis=1))
    logits = tf.squeeze(tf.layers.dense(relevant_outputs, 1), -1)
    return logits 
seq_len=5
with zs.BayesianNet() as model:
    cell = BayesianLSTMCell(128, forget_bias=0.)
    logits = bayesian_rnn(cell, b, seq_len)
    _ = zs.Bernoulli(Y, logits, dtype=tf.float32
...