問題タブ [tensorflow]
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.
python - TensorFlow - numpy のようなテンソル インデックス作成
numpy では、次のことができます。
TensorFlow で同等のものを試すと、次のようになります。
最後の行では、「Bad slice index tensor」という例外が発生します。TensorFlow は numpy や Theano のようなインデックス作成をサポートしていないようです。
これを行う TensorFlow の方法があるかどうかは誰にもわかりません (任意の値でテンソルにインデックスを付けます)。tf.nn.embedding 部分を見てきましたが、これに使用できるかどうかはわかりません。使用できたとしても、この簡単なものに対する大きな回避策です。
(現在、データをx
入力としてフィードし、numpy でインデックス作成を行っていますが、x
効率を高めるために TensorFlow 内に配置したいと考えていました)
tensorflow - シーケンスのタグ付けに tensorflow を使用: 同期されたシーケンスの入力と出力
シーケンスのタグ付け、つまり品詞のタグ付けに Tensorflow を使用したいと思います。ここで概説されているのと同じモデルを使用しようとしました: http://tensorflow.org/tutorials/seq2seq/index.md (英語をフランス語に翻訳するモデルの概要を説明しています)。
タグ付けでは、入力シーケンスと出力シーケンスがまったく同じ長さになるため、入力シーケンスと出力シーケンスが同じ長さになるようにバケットを構成し、ConLL 2000 でこのモデルを使用して POS タガーを学習しようとしました。
ただし、デコーダーが入力シーケンスよりも短いタグ付きシーケンスを出力する場合があるようです (EOS タグの出現が時期尚早に感じられるようです)。
例: 彼は、9 月の経常収支赤字はわずか 18 億ドルにまで縮小すると考えています。
上記の文は 18 個のトークンを持つようにトークン化され、20 個にパディングされます (バケット化のため)。
上記をデコードするように求められると、デコーダーは次のように吐き出します。
PRP VBD DT JJ JJ NN MD VB から VB DT NN IN NN . _EOS . _EOS CD CD
したがって、ここでは、18 トークンではなく 15 トークンの後にシーケンス (EOS) を終了します。
私のシナリオでは、デコードされたシーケンスがエンコードされたシーケンスと同じ長さであることをシーケンスに学習させるにはどうすればよいですか。
python - バイナリ観測からの確率分布の回復 - この実装の欠陥の理由は何ですか?
確率分布を回復しようとしています (確率密度ではなく、[0,1] の範囲の関数で、x での観測の成功確率を f(x) でエンコードします)。10 個のニューロンとソフトマックスを持つ隠れ層を使用します。これが私のコードです:
質問:
tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, yTrain))
クロスエントロピーを最小限に抑えてソフトマックスを手動で実行することと適用することの違いは何ですか?
モデルが分布の最後の期間にスナップしないのは一般的です。私はそれを一度だけ成功させました。トレーニングをさらに実行することで修正される可能性がありますが、最後の ~20k の実行で結果が安定することが多いため、そのようには見えません。最適化アルゴリズムをより適切に選択するか、隠れ層を増やすか、隠れ層の次元を増やすことで改善される可能性が最も高いでしょうか? (編集によって部分的に回答されました)
x=0 に近い異常は典型的なものです。それらの原因は何ですか?
編集:フィット感が大幅に向上しました
アクティベーションをシグモイドから tanh に変更します。
その他の質問:
隠れ次元が高いほど、極小値から抜け出すのが容易になるのは一般的ですか?
隠れ層の最適な次元と入力の次元の間のおおよその典型的な関係は何dim(hidden) = f(dim(input))
ですか? 線形か、線形より弱いか、線形より強いか?
tensorflow - TensorFlow コア デバッグ; デバッグ シンボルの欠落
私は、CIFAR-10 モデル トレーニングの Python コードからコア C++ コードに足を踏み入れることで、TensorFlow の内部構造を学ぼうとしています。Python コードの段階的なデバッグに Eclipse+PyDev を使用するとうまくいきますが、TensorFlow コアの C++ コードにステップインする方法が見つかりません。別のプロジェクトで Eclipse CDT を使用して C++ コードをビルドし、ここcifar10_train.py
で説明されているように実行中の Python プロセスにデバッガーをアタッチしようとしましたが、シンボルが読み込まれることはなく、(明らかに) 遅延ブレークポイントがヒットすることもありません。
背景とセットアップ:
私はUbuntu 14.04 LTSで実行しており、ここで説明されているようにソースからTensorFlowコードをインストールし、私のCDTプロジェクトは次を含むMakefileを使用しています
bazel build -c dbg //tensorflow/cc:tutorials_example_trainer
.
python-2.7 - ラズベリーパイのテンソルフロー
にインストールしようとしTensorflow
ていRaspberry Pi
ます。OSは、Ubuntu Mate
バージョンはpython2.7
PIP
7.1.2
これを実行すると
それはそれを伝えます
「tensorflow-0.5.0 ... は、このプラットフォームでサポートされているホイールではありません。」
にインストールすることは可能Tensorflow
ですRaspberry
か? そして、誰かが私が欠けているものを知っていますか?
tensorflow - テンソルフローの損失関数として2つの画像の二乗差を使用する
ネットワークの損失関数として 2 つのイメージ間で SSD を使用しようとしています。
問題は、重みが発散し、エラーが発生することです
なぜですか?画像サイズでssdを正規化する(機能しなかった)、出力値を1にトリミングする(もうクラッシュしませんが、まだ評価する必要があります)など、他のことを試しました:
私の観察は期待されるべきですか?
編集:@mdaoustの提案は正しいことが証明されました。主なポイントは、バッチサイズで正規化することでした。これは、このコードを使用して、バッチ サイズに関係なく実行できます。
この変更により、学習率をわずかに (0.0001 に) 下げるだけで済みました。
python - トレーニング後にモデルを保存/復元する方法は?
Tensorflow でモデルをトレーニングした後:
- トレーニング済みモデルをどのように保存しますか?
- この保存されたモデルを後でどのように復元しますか?
python - tensorflow で seq2seq モデルを構築する際のエラー
テンソルフローの seq2seq.py で定義されている seq2seq モデルを理解しようとしています。tensorflow に付属する translate.py の例からコピーしたコードを使用します。同じエラーが発生し続け、それがどこから来たのか本当にわかりません。
エラーを再現するための最小限のコード例:
最後の行を評価するときに発生するエラー (Python インタープリターで対話的に評価しました):
エラーは私の側にあると思われます:)サイドノートで。ドキュメンテーションとチュートリアルは非常に優れていますが、シーケンスからシーケンスへのモデル (英語からフランス語への翻訳の例) のサンプル コードはかなり密集しています。また、何が起こっているのかを理解するために、ファイル間を何度も移動する必要があります。私は少なくともコードで何度か迷子になりました。
ここでは、基本的な seq2seq モデルの構築とトレーニングの最小限の例 (おそらくいくつかのおもちゃのデータ) が非常に役立ちます。これがすでにどこかに存在するかどうか誰かが知っていますか?
編集 @Ishamaelの提案に従って上記のコードを修正しました(つまり、エラーは返されません)(以下を参照)が、この修正バージョンではまだ明確でないことがいくつかあります。私の入力は、実数値の長さ 2 のベクトルのシーケンスです。私の出力は長さ 22 のバイナリ ベクトルのシーケンスです。私の tf.placeholder コードは次のように見えませんか? (編集はい)
上記の tf.int32 を tf.float32 に変更する必要もありました。私の出力はバイナリなので。これは私のデコーダーの tf.placeholder の tf.int32 であってはなりませんか? しかし、これを行うと、テンソルフローは再び文句を言います。この背後にある理由が何であるかはわかりません。
ここでの非表示レイヤーのサイズは 512 です。
完全な固定コード
python - グラフからノードを削除するか、デフォルト グラフ全体をリセットします
デフォルトのグローバル グラフを操作する場合、ノードを追加した後でノードを削除したり、デフォルトのグラフを空にリセットしたりすることはできますか? IPython でインタラクティブに TF を操作していると、カーネルを繰り返し再起動する必要があることに気付きます。可能であれば、グラフをもっと簡単に実験できるようにしたいと考えています。
python - ブールテンソルを使用したテンソルフローのインデックス作成
numpy では、同じ形状の 2 つの配列を使用して、x
このy
ようなスライスを行うことができますy[x > 1]
。テンソルフローで同じ結果を得るにはどうすればよいですか? y[tf.greater(x, 1)]
動作せずtf.slice
、このようなものもサポートしていません。現在ブール値テンソルでインデックスを作成する方法はありますか、それとも現在サポートされていませんか?