2017-03-08 10 views
3
state = cell.zero_state(batchsize, tf.float32).eval() 

を持っていない私は、訓練を受けたtensorflowモデルをデコードして実行するには、このhttps://github.com/kvfrans/twitch/blob/master/sample.py#L45例に従うことをしようとしていますが、使用tensorflowコードが古いバージョンだったように思えます。私はV 1.0.0へのほとんどの通話を修正するために管理しているが、上記のコード行は私に次のエラーを与えるところ私は立ち往生しています:Tensorflow:はAttributeError:「タプル」オブジェクトが属性「evalの」

Traceback (most recent call last): 
    File "server.py", line 1, in <module> 
    from sample import * 
    File "/home/user/twitch/sample.py", line 75, in <module> 
    print predict("this game is") 
    File "/home/user/twitch/sample.py", line 46, in predict 
    state = initialstate.eval() 
AttributeError: 'tuple' object has no attribute 'eval' 

私は.eval()stateを修正する方法上の任意のアイデアを?後に使用されます。

guessed_logits, state = sess.run([logits, final_state], feed_dict={input_data: primer, initialstate: state}) 

答えて

3

1つのオプションは、最初のテンソルするPythonのオブジェクトを変換することができ

.eval() methodtf.Tensorにのみ実装されていますが、 bservedの場合、cell.zero_state()メソッドはtupleオブジェクトを返します。

tf.Session.run()方法は、タプルを解凍する方法を理解し、tf.Tensor.eval()"default" sessionで、単一のテンソルにtf.Session.run()を呼び出すためだけの便利なラッパーです。以下で...

state = cell.zero_state(batchsize, tf.float32).eval() 

:この観察を使用して、この行を切り替えることができます

state = tf.get_default_session().run(cell.zero_state(batchsize, tf.float32)) 
+0

これはうまくいきました、ありがとう! – Blizzard

1

TensorFlow Release 1.0.0 notesから:

あなたが得るエラーメッセージについて説明して

LSTMCell , BasicLSTMCell , and MultiRNNCell constructors now default to state_is_tuple=True. For a quick fix while transitioning to the new default, simply pass the argument state_is_tuple=False .

(あなたがtuple.eval()を呼び出すことはできません)。

+0

は、私はそれを固定 'state_is_tuple = false'を、あなたはどのように推薦を回すことができないのですか? – Blizzard

+0

@Blizzardあなたに興味のあるタプルの要素を選択し、それに対してevalを実行します。 –

+0

それは意味がある、ありがとう! – Blizzard

2

Pythonオブジェクト(この場合はタプル)でevalを実行することはできません。

state = cell.zero_state(batchsize, tf.float32).eval() 

に:それはテンソルがしたら

state = tf.convert_to_tensor(cell.zero_state(batchsize, tf.float32)) 

、あなたevalそれで:

state.eval() 
+0

これで返されます: 'ValueError:辞書を平坦化できませんでした。キーには4つの要素がありましたが、値に1つの要素がありました。キー:[ shape =(2,2,1,200)dtype = float32>]。 – Blizzard

関連する問題