2017-04-12 9 views
-1

私はテンソルフローの新機能です:私はtfバージョン0.8とcuda 7.5を持っています。これは私のコードです: 私のバージョンnumpyは1.11です(わからない) どうすれば修正できますか?それはモジュール名のスタックを言う? 私はtensorflowモジュールにはスタックメソッドがありません

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' 
+0

_「モジュール名のスタックはありません」_ - そうではありません!エラーは 'tensorflow'モジュールに' stack'メソッドがないことを伝えています。ドキュメントでは、['tf.stack'](https://www.tensorflow.org/api_docs/python/tf/stack)は存在していると言われていますので、あまり古いバージョンを使用している必要があります – Eric

+0

私はtensorflow 0.8を使用しています。 0 bcz私はcuda7を持っています!どのバージョンを私はbczを最新の唯一のworlにインストールする必要がありますか? –

答えて

0

tf.stackthis commitに追加されました。このgithubは、最古のタグをバージョン0.12.0として示しています。 tensorflowをそのバージョンにアップグレードできますか?

もしそうでなければ、この関数tf.packを呼び出すためにはtensorflowが使用されているように見えます。代わりにその名前を使用しても問題ありません。

0

tfドキュメントを確認してください。

np.stackは比較的新しい機能です。 hstackvstackは時間の経過とともに表示され、np.concatenateのラッパーです。新しい軸のconcatenateをより柔軟にするために便宜的にnp.stackが追加されました。そのコードをnp.source(np.stack)で見てください。

tfには同じ機能がないか、新しいものがないと私は驚くことはありません。あるいは、np.stackモデルから独立して実装することもできます。

関連する問題