問題タブ [tensorflow-transform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tensorflow - Apache Beam でパイプラインをネストする
私はApacheビームで次のことをしようとしています。
具体的には、テンソルフロー ニューラル ネットワークの前処理。
- フォルダの各ファイルに対して。
- ファイルの各行
- float の 1d リストへの行の処理
- ファイルの各行
各ファイルの浮動小数点数の 2 次元リストになるように各リターンが必要です。
ネストされたパイプラインを作成することでこれを達成できると思います。
別のパイプラインの ParDo 内でパイプラインを作成して実行できます。
これは非効率に思えますが、私の問題はかなり標準的な使用例のようです。
- Apache Beam でこれを改善するツールはありますか?
- 問題を再構築して、Apache Beam でより適切に機能させる方法はありますか?
- ネストされたパイプラインは、私が思っているほど悪くはありませんか?
ありがとう
tensorflow - tf.data.Dataset への膨大なデータセットの最適なデータ ストリーミングおよび処理ソリューション
環境:
私のテキスト入力パイプラインは現在、次の 2 つの主要部分で構成されています。
私は。複雑なテキストの前処理とtf.SequenceExamples
tfrecords へのエクスポート (カスタム トークン化、語彙の作成、統計計算、正規化、および完全なデータセットと個々の例ごとのその他多数)。これは、データ構成ごとに 1 回行われます。
Ⅱ.トレーニング中にもかなりの処理を行う tf.Dataset (TFRecords) パイプライン (string_split
文字、テーブル ルックアップ、バケット化、条件付きフィルタリングなど)。
元のデータセットは、複数の場所 (BigQuery、GCS、RDS など) に存在します。
問題:
問題は、本番データセットが急速に (数テラバイト) 増加するにつれて、可能なデータ構成ごとに tfrecords ファイルを再作成することが現実的でないことです (パート 1 には多数のハイパーパラメーターがあります)。言うまでもなく、または tfrecords のサイズが大きくなると、tf.Dataset
読み取り速度が驚くほど遅くなります。tf.SequenceExamples
かなりの数の可能な解決策があります:
- Apache Beam + Cloud DataFlow + feed_dict;
- tf.Transform;
- Apache Beam + Cloud DataFlow + tf.Dataset.from_generator;
- tensorflow/エコシステム + Hadoop または Spark
- tf.contrib.cloud.BigQueryReader
、しかし、次のいずれも私の要件を完全に満たしていないようです:
- パート I のように、BigQuery、GCS、RDS などからのオンザフライ データのストリーミングと処理。
- データ (プロトス?) を何らかの方法で直接送信して
tf.Dataset
、パート II で使用します。 - トレーニングと推論の両方で高速で信頼性があります。
(オプション) データの選択された部分に対していくつかのフルパス統計を事前に計算できること。
編集: Python 3 のサポートは素晴らしいでしょう。
tf.data.Dataset
パイプラインに最も適した選択肢は何ですか? この場合のベストプラクティスは何ですか?
前もって感謝します!
python - tf.contrib.estimator.forward_features の使い方
forward_features を使用して cloudml のインスタンス キーを取得しようとしていますが、修正方法がわからないエラーが常に発生します。tf.Transform を使用する前処理セクションはhttps://github.com/GoogleCloudPlatform/cloudml-samples/tree/master/reddit_tftを変更したもので、インスタンス キーは文字列で、それ以外はすべて浮動小数点数です。
トレーニング機能と一緒にキー列を渡すと、エラーが発生しますTensors in list passed to 'values' of 'ConcatV2' Op have types [float32, float32, string, float32, float32, float32, float32, float32, float32, f
loat32, float32, float32, float32, float32, float32, float32, float32, float32, float32, float32, float32, float32, float32, float32] that don't all match.
ただし、トレーニング中にインスタンス キーを渡さないと、キーが存在しないという値エラーが発生します特徴。また、 forward_features セクションのキー列名を「example_id」から列ではないランダムな名前に変更した場合でも、後者ではなく前者のエラーが発生します。誰かがこれを理解するのを手伝ってくれますか?