Tensorflow: Estimator API 内で埋め込みレイヤーを初期化する方法は?

作成日 2018年01月12日  ·  3コメント  ·  ソース: tensorflow/tensorflow

テンソルフロー モデル内で既存の埋め込みを使用しようとしていますが、埋め込みのサイズが 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 の問題を開く場合のポリシーは次のとおりです。

  1. バグか機能リクエストである必要があります。
  2. 以下のフォームに記入する必要があります。
  3. TensorBoardの問題ではないはずです。 それらはここに行き

私たちがそのポリシーを持っている理由はここにあります: TensorFlow 開発者は問題に対応します。 私たちは、バグの修正や機能の追加など、コミュニティ全体に利益をもたらす作業に集中したいと考えています。 サポートは個人のみを支援します。 また、GitHub は、問題が提出されたときに数千人に通知します。 Stack Overflow にリダイレクトされるのではなく、興味深い問題について話していることを彼らに見てもらいたいと考えています。


システムインフォメーション

  • カスタム コードを作成しましたか (TensorFlow で提供されるストック サンプル スクリプトを使用するのではなく) :
  • OS プラットフォームとディストリビューション (例: Linux Ubuntu 16.04) :
  • (ソースまたはバイナリ)からインストールされたTensorFlow
  • TensorFlow バージョン (以下のコマンドを使用) :
  • パイソンのバージョン:
  • Bazel バージョン (ソースからコンパイルする場合) :
  • GCC/コンパイラのバージョン (ソースからコンパイルする場合) :
  • CUDA/cuDNN バージョン:
  • GPU モデルとメモリ:
  • 再現する正確なコマンド:

環境キャプチャ スクリプトを使用して、この情報の一部を収集できます。

https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh

TensorFlow バージョンは次のコマンドで取得できます。

python -c "テンソルフローを tf としてインポート; print(tf.GIT_VERSION, tf.VERSION)"

問題の説明

ここで問題を明確に説明します。 TensorFlow のバグまたは機能のリクエストである理由をここに必ず伝えてください。

ソースコード・ログ

問題の診断に役立つログまたはソース コードを含めます。 トレースバックを含める場合は、完全なトレースバックを含めてください。 大きなログとファイルを添付する必要があります。 問題を生成するために必要な最小限の再現可能なテスト ケースを提供するようにしてください。

awaiting response bug

最も参考になるコメント

埋め込みで変数を初期化する正しい方法は、 tf.train.Scaffoldを使用することのようstackoverflowにあります

全てのコメント3件

これは通常、「StackOverflow に送信」 (以下に標準の応答を追加) の問題だと思いますが、2GB の制限は、バグまたは機能リクエストの範囲内にあるようです。

@martinwicke @ispirmustafa何か提案はありますか?

この質問は、バグや機能のリクエストではないため、 StackOverflow で質問する方が適切です。 そこに質問を読む大きなコミュニティもあります。 ありがとう!

グラフのサイズ制限に関係があると思います。 constant_initializer を使用すると、GLOVE_MATRIX がグラフに埋め込まれ、グラフのサイズが大きくなります。
非定数イニシャライザを使用してみてください。

埋め込みで変数を初期化する正しい方法は、 tf.train.Scaffoldを使用することのようstackoverflowにあります

このページは役に立ちましたか?
0 / 5 - 0 評価