テンソルフロー モデル内で既存の埋め込みを使用しようとしていますが、埋め込みのサイズが 2Gb を超えているため、これを行う最初の試みが失敗しました。
embedding_var = tf.get_variable(
"embeddings",
shape=GLOVE_MATRIX.shape,
initializer=tf.constant_initializer(np.array(GLOVE_MATRIX))
)
これは私にこのエラーを与えました:
Cannot create a tensor proto whose content is larger than 2GB.
Estimator API に基づく AWS SageMaker を使用しており、セッションでのグラフの実際の実行は舞台裏で行われるため、埋め込み用にいくつかのプレースホルダーを初期化する方法がわかりません。 誰かがEstimatorAPIの観点からそのような初期化を行う方法を共有することができれば役に立ちます。
ヘルプとサポートについては、Stack Overflow にアクセスしてください。
https://stackoverflow.com/questions/tagged/tensorflow
GitHub の問題を開く場合のポリシーは次のとおりです。
私たちがそのポリシーを持っている理由はここにあります: TensorFlow 開発者は問題に対応します。 私たちは、バグの修正や機能の追加など、コミュニティ全体に利益をもたらす作業に集中したいと考えています。 サポートは個人のみを支援します。 また、GitHub は、問題が提出されたときに数千人に通知します。 Stack Overflow にリダイレクトされるのではなく、興味深い問題について話していることを彼らに見てもらいたいと考えています。
環境キャプチャ スクリプトを使用して、この情報の一部を収集できます。
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
TensorFlow バージョンは次のコマンドで取得できます。
python -c "テンソルフローを tf としてインポート; print(tf.GIT_VERSION, tf.VERSION)"
ここで問題を明確に説明します。 TensorFlow のバグまたは機能のリクエストである理由をここに必ず伝えてください。
問題の診断に役立つログまたはソース コードを含めます。 トレースバックを含める場合は、完全なトレースバックを含めてください。 大きなログとファイルを添付する必要があります。 問題を生成するために必要な最小限の再現可能なテスト ケースを提供するようにしてください。
これは通常、「StackOverflow に送信」 (以下に標準の応答を追加) の問題だと思いますが、2GB の制限は、バグまたは機能リクエストの範囲内にあるようです。
@martinwicke @ispirmustafa何か提案はありますか?
この質問は、バグや機能のリクエストではないため、 StackOverflow で質問する方が適切です。 そこに質問を読む大きなコミュニティもあります。 ありがとう!
グラフのサイズ制限に関係があると思います。 constant_initializer を使用すると、GLOVE_MATRIX がグラフに埋め込まれ、グラフのサイズが大きくなります。
非定数イニシャライザを使用してみてください。
埋め込みで変数を初期化する正しい方法は、 tf.train.Scaffoldを使用することのようstackoverflowにあります
最も参考になるコメント
埋め込みで変数を初期化する正しい方法は、 tf.train.Scaffoldを使用することのようstackoverflowにあります