2017-12-22 13 views
0
InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [100,10] rhs shape= [300,10] 
[[Node: save/Assign_10 = Assign[T=DT_INT32, _class=["loc:@label"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/cpu:0"](label, save/RestoreV2_10)]] 
[[Node: save/RestoreV2_8/_9 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/gpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_26_save/RestoreV2_8", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/gpu:0"]()]] 

バッチサイズを使用してデータをトレーニングすると、バッチサイズを使用してモデルを復元してテストすると100になります。Tensorflowの復元エラー:テンソルの一致に合わせるには両方のテンソルのシェイプが必要です

答えて

0

このエラーは通常、トレーニングしたCNNモデルで定義されているテンソルとは異なる形状のテンソルを入力すると発生します。最初にテスト用のモデルを訓練してから復元したと述べたので、モデルを復元するために使用しているコードが、訓練用に定義したモデルをインスタンス化することを確認してください。

+0

モデルをトレーニングしてテストするときに、異なるバッチサイズを使用できるモデルを定義するにはどうすればよいですか?ほとんどの人は、この問題を解決する唯一の方法ですが、 'tf.placeholder()'を使ってデータを入力すると言っていますか?どうもありがとう。 – MakeSomeDifferences

+0

トレーニングに使用したのと同じテンソルを使用して訓練モデルのテストを試みましたか?問題が実際に異なるテンソルの形状であることを確認するためにこのテストを行います。 –

+0

はい、同じバッチサイズを使用する場合、コードは問題ありません。最終的に私は 'tf.placeholder()'を使用することを選択したので、トレインまたはテスト時にバッチサイズに制限はありません。 – MakeSomeDifferences

関連する問題