tensorflow模块没有堆栈方法

时间:2017-04-12 10:50:36

标签: python numpy tensorflow deep-learning

我是tensorflow的新手:我有0.8版本和cuda 7.5这是我的代码: 我的numpy版本是1.11我认为(不确定) 我该怎么解决?它说没有模块名称堆栈? 我正在尝试实现变量Autoencoder

import tensorflow as tf
import numpy as np
from libs.utils import weight_variable, bias_variable, montage_batch

def VAE(input_shape=[None, 784],
        n_components_encoder=2048,
        n_components_decoder=2048,
        n_hidden=2,
        debug=False):
    # %%
    # Input placeholder
    if debug:
        input_shape = [50, 784]
        x = tf.Variable(np.zeros((input_shape), dtype=np.float32))
    else:
        x = tf.placeholder(tf.float32, input_shape)

    activation = tf.nn.softplus

    dims = x.get_shape().as_list()
    n_features = dims[1]

    W_enc1 = weight_variable([n_features, n_components_encoder])
    b_enc1 = bias_variable([n_components_encoder])
    h_enc1 = activation(tf.matmul(x, W_enc1) + b_enc1)

    W_enc2 = weight_variable([n_components_encoder, n_components_encoder])
    b_enc2 = bias_variable([n_components_encoder])
    h_enc2 = activation(tf.matmul(h_enc1, W_enc2) + b_enc2)

    W_log_sigma = weight_variable([n_components_encoder, n_hidden])
    b_log_sigma = bias_variable([n_hidden])

    z_mu = tf.matmul(h_enc3, W_mu) + b_mu
    z_log_sigma = 0.5 * (tf.matmul(h_enc3, W_log_sigma) + b_log_sigma)

    # %%
    # Sample from noise distribution p(eps) ~ N(0, 1)
    if debug:
        epsilon = tf.random_normal(
            [dims[0], n_hidden])
    else:
        epsilon = tf.random_normal(
            tf.stack([tf.shape(x)[0], n_hidden]))

,日志是:

  File "/home/hoda/Downloads/tensorflow_tutorials-master/python/11_variational_autoencoder.py", line 58, in VAE
    tf.stack([tf.shape(x)[0], n_hidden]))
AttributeError: 'module' object has no attribute 'stack'

2 个答案:

答案 0 :(得分:0)

查看tf文档。

np.stack是一个相对较新的功能。 hstackvstack一直存在,并且只是np.concatenate的包装。添加了np.stack,以方便新轴上的concatenate更灵活。使用np.source(np.stack)查看其代码。

鉴于历史,如果tf没有类似的功能,或者它是一个新功能,我不会感到惊讶。或者它可以独立于np.stack模型实现。

答案 1 :(得分:0)

https://developers.facebook.com/docs/instant-articles/monetization/direct-sold中添加了

tf.stack,其中github将最早的标记显示为版本0.12.0。您可以将tensorflow升级到该版本吗?

如果不是 - 看起来tensorflow用于调用此函数tf.pack,那么使用该名称可能会有效。