2016-10-25 4 views
2

私は単純なRNNCellを動作させようとしています。この単純なコード:テンソルフロー= float64_ref、実際= float64

Metadata-Version: 2.0 Name: tensorflow Version: 0.11.0rc1 Summary: TensorFlow helps the tensors flow Home-page: http://tensorflow.org/ Author: Google Inc. Author-email: [email protected] Installer: pip License: Apache 2.0 Location: /Users/ethan/env/lib/python2.7/site-packages Requires: mock, protobuf, numpy, wheel, six Classifiers: Development Status :: 4 - Beta Intended Audience :: Developers Intended Audience :: Education Intended Audience :: Science/Research License :: OSI Approved :: Apache Software License Programming Language :: Python :: 2.7 Topic :: Scientific/Engineering :: Mathematics Topic :: Software Development :: Libraries :: Python Modules Topic :: Software Development :: Libraries Entry-points: [console_scripts] tensorboard = tensorflow.tensorboard.tensorboard:main

ありがとう:

Traceback (most recent call last): 
    File "scrap.py", line 38, in <module> 
    g, _ = tf.nn.rnn_cell.BasicRNNCell(2)(x, x) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/rnn_cell.py", line 199, in __call__ 
    output = self._activation(_linear([inputs, state], self._num_units, True)) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/rnn_cell.py", line 903, in _linear 
    "Matrix", [total_arg_size, output_size], dtype=dtype) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.py", line 1022, in get_variable 
    custom_getter=custom_getter) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.py", line 849, in get_variable 
    custom_getter=custom_getter) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.py", line 345, in get_variable 
    validate_shape=validate_shape) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.py", line 330, in _true_getter 
    caching_device=caching_device, validate_shape=validate_shape) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.py", line 676, in _get_single_variable 
    validate_shape=validate_shape) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/variables.py", line 215, in __init__ 
    dtype=dtype) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/variables.py", line 288, in _init_from_args 
    initial_value(), name="initial_value", dtype=dtype) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/variable_scope.py", line 666, in <lambda> 
    shape.as_list(), dtype=dtype, partition_info=partition_info) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/init_ops.py", line 280, in _initializer 
    dtype, seed=seed) 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/ops/random_ops.py", line 232, in random_uniform 
    minval = ops.convert_to_tensor(minval, dtype=dtype, name="min") 
    File "/Users/ethan/env/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 671, in convert_to_tensor 
    dtype.name, ret.dtype.name)) 
RuntimeError: min: Conversion function <function _constant_tensor_conversion_function at 0x112053c08> for type <type 'object'> returned incompatible dtype: requested = float64_ref, actual = float64 

これはpip show tensorflowの出力は次のとおりです。

with tf.Session() as sess: 
    x = tf.Variable(np.ones((2, 3))) 
    tf.initialize_all_variables().run() 
    out, state = BasicRNNCell(4)(x, x) 

は、次のエラーがスローされます!

答えて

0

TensorFlowでは、クラスTensorはdtypeがfloat64_refであり、クラスVariableはdtypeがfloat64です。また、BasicRNNCellは、変数以外のTensorを入力として必要とします。あなたのコードで 、 x = tf.Variable(...)x = tf.convert_to_tensor(...)

+0

あなたのソリューションは機能していることを確認しましたが、少し混乱します。なぜ変数を入力として受け取ることができないのですか? – ethanabrooks

2

Tensorflowのバグだと思いますが、open an issue on GitHubにお招きします。この問題を回避するには

、あなたの代わりにfloat64xfloat64_refを作成し、inputsパラメータとして、この値を渡すためにtf.identityを使用することができます。

import tensorflow as tf 
import numpy as np 

with tf.Session() as sess: 
    x = tf.Variable(np.ones((2, 3))) 
    sess.run(tf.initialize_all_variables()) 
    out, state = tf.nn.rnn_cell.BasicRNNCell(4)(tf.identity(x), x) 
+0

最後に問題を開くに暇に変更する必要があります。推奨していただきありがとうございます。 – ethanabrooks

+0

これには本当の解決策がありますか?同じエラーが発生し、単純なコードでもこれが発生します。 >>>テンソルをtfとしてインポート >>> tf.Variable(initial_value = [0.0]、dtype = tf.float64) – sirgogo

+0

を使用して?最新では、あなたのコードの実行に問題はありません – nessuno