タグ付けされた質問 「tensorflow」

TensorFlowは、ディープラーニング用に設計されたオープンソースライブラリおよびAPIであり、Googleによって記述および保守されています。このタグを言語固有のタグ([python]、[c ++]、[javascript]、[r]など)とともに使用して、APIを使用して機械学習の問題を解決する方法について質問します。TensorFlow APIで使用できるプログラミング言語はさまざまであるため、プログラミング言語を指定する必要があります。[オブジェクト検出]などのアプリケーション領域も指定します。

6
TensorFlowのステップとエポックの違いは何ですか?
ほとんどのモデルには、データを実行するステップの数を示すstepsパラメータがあります。しかし、ほとんどの実際的な使用法では、フィット関数N epochsも実行しています。 1エポックで1000ステップを実行することと10エポックで100ステップを実行することの違いは何ですか?実際にはどちらが良いですか?連続するエポック間でロジックの変更はありますか?データシャッフル?

5
Kerasモデルをgpuで実行できますか?
私はKerasモデルを実行していますが、提出期限は36時間ですが、モデルをCPUでトレーニングすると約50時間かかりますが、GPUでKerasを実行する方法はありますか? Tensorflowバックエンドを使用していて、anacondaをインストールせずにJupyterノートブックで実行しています。

1
TensorBoard(ウェイト)ヒストグラムについて
TensorBoardのスカラー値を表示して理解することは非常に簡単です。ただし、ヒストグラムグラフの理解方法は明確ではありません。 たとえば、これらは私のネットワークの重みのヒストグラムです。 (サンサイドのおかげでバグを修正した後) これらを解釈する最良の方法は何ですか?レイヤー1の重みはほぼフラットに見えますが、これはどういう意味ですか? ここにネットワーク構築コードを追加しました。 X = tf.placeholder(tf.float32, [None, input_size], name="input_x") x_image = tf.reshape(X, [-1, 6, 10, 1]) tf.summary.image('input', x_image, 4) # First layer of weights with tf.name_scope("layer1"): W1 = tf.get_variable("W1", shape=[input_size, hidden_layer_neurons], initializer=tf.contrib.layers.xavier_initializer()) layer1 = tf.matmul(X, W1) layer1_act = tf.nn.tanh(layer1) tf.summary.histogram("weights", W1) tf.summary.histogram("layer", layer1) tf.summary.histogram("activations", layer1_act) # Second layer …

9
Tensorflowで、グラフ内のすべてのTensorの名前を取得します
とでニューラルネットを作成しTensorflowていskflowます。なんらかの理由で、特定の入力に対していくつかの内部テンソルの値を取得したいので、を使用myClassifier.get_layer_value(input, "tensorName")しmyClassifierていskflow.estimators.TensorFlowEstimatorます。 ただし、テンソル名の正しい構文を見つけるのは難しく、その名前を知っていても(操作とテンソルの間で混乱します)、テンソルボードを使用してグラフをプロットし、名前を探します。 テンソルボードを使用せずにグラフのすべてのテンソルを列挙する方法はありますか?

9
バッチ正規化とドロップアウトの注文?
元々の質問は、特にTensorFlowの実装に関するものでした。ただし、答えは一般的な実装です。この一般的な答えは、TensorFlowの正しい答えでもあります。 TensorFlowでバッチ正規化とドロップアウトを使用する場合(具体的にはcontrib.layersを使用)、順序について心配する必要がありますか? ドロップアウトを使用してすぐにバッチ正規化を実行すると、問題が発生する可能性があります。たとえば、バッチ正規化のシフトがトレーニング出力のより大きなスケール数にトレーニングするが、テスト中にドロップアウトなしで同じシフトがより小さな(より多くの出力を持つための補正により)スケール数に適用される場合、シフトがオフになっている可能性があります。TensorFlowバッチ正規化レイヤーはこれを自動的に補正しますか?それとも私が行方不明になった何らかの理由でこれは起こりませんか? また、これら2つを一緒に使用するときに注意すべき他の落とし穴はありますか?たとえば、上記に関して正しい順序で使用していると仮定すると(正しい順序があると仮定して)、連続する複数のレイヤーでバッチ正規化とドロップアウトの両方を使用すると問題が発生する可能性がありますか?すぐに問題が発生することはありませんが、何か不足している可能性があります。 どうもありがとうございました! 更新: 実験的なテストでは、と思われる順序がことを示唆してい事柄。同じネットワークを2回実行しましたが、バッチノルムとドロップアウトリバースのみを使用しています。ドロップアウトがバッチノルムの前にある場合、トレーニングの損失が減少するにつれて検証の損失が増加するように見えます。他のケースでは、どちらも下がっています。しかし私の場合、動きが遅いので、トレーニングを重ねると状況が変わる可能性があり、それは1つのテストにすぎません。より決定的で情報に基づいた回答をいただければ幸いです。

12
リモートサーバーでTensorboardを実行するにはどうすればよいですか?
私はTensorflowを初めて使用するので、自分が何をしているかを視覚化することで大きなメリットが得られます。Tensorboardは便利な視覚化ツールであることを理解していますが、リモートのUbuntuマシンで実行するにはどうすればよいですか?

4
Tensorflow Strides引数
tf.nn.avg_pool、tf.nn.max_pool、tf.nn.conv2dのストライド引数を理解しようとしています。 ドキュメントは繰り返し言います strides:長さが4以上の整数のリスト。入力テンソルの各次元のスライディングウィンドウのストライド。 私の質問は: 4以上の整数のそれぞれは何を表していますか? なぜconvnetに対してstrides [0] = strides [3] = 1にする必要があるのですか? で、この例で、私たちは見ますtf.reshape(_X,shape=[-1, 28, 28, 1])。なぜ-1? 悲しいことに、-1を使用して再形成するためのドキュメントの例は、このシナリオにうまく変換できません。

5
TensorFlowのtf.app.flagsの目的は何ですか?
Tensorflowでいくつかのサンプルコードを読んでいますが、次のコードが見つかりました flags = tf.app.flags FLAGS = flags.FLAGS flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.') flags.DEFINE_integer('max_steps', 2000, 'Number of steps to run trainer.') flags.DEFINE_integer('hidden1', 128, 'Number of units in hidden layer 1.') flags.DEFINE_integer('hidden2', 32, 'Number of units in hidden layer 2.') flags.DEFINE_integer('batch_size', 100, 'Batch size. ' 'Must divide evenly into the dataset sizes.') …
115 python  tensorflow 

4
TensorFlow、モデルを保存した後に3つのファイルがあるのはなぜですか?
ドキュメントを読んだ後、モデルをに保存しTensorFlowました。これが私のデモコードです。 # Create some variables. v1 = tf.Variable(..., name="v1") v2 = tf.Variable(..., name="v2") ... # Add an op to initialize the variables. init_op = tf.global_variables_initializer() # Add ops to save and restore all the variables. saver = tf.train.Saver() # Later, launch the model, initialize the variables, do some work, save …
113 tensorflow 

3
sparse_softmax_cross_entropy_with_logitsとsoftmax_cross_entropy_with_logitsの違いは何ですか?
私は最近出会ったtf.nn.sparse_softmax_cross_entropy_with_logitsと私は違いが比較されているものを把握することはできませんtf.nn.softmax_cross_entropy_with_logits。 使用時にトレーニングベクトルyをワンホットエンコードする必要がある唯一の違いはありsparse_softmax_cross_entropy_with_logitsますか? APIを読んでも、と比較して他の違いを見つけることができませんでしたsoftmax_cross_entropy_with_logits。しかし、なぜ追加の機能が必要なのでしょうか。 ワンホットエンコードされたトレーニングデータ/ベクトルが提供されている場合softmax_cross_entropy_with_logits、と同じ結果を生成するべきではありませんsparse_softmax_cross_entropy_with_logitsか?

5
Kerasでの "Flatten"の役割は何ですか?
FlattenKeras における関数の役割を理解しようとしています。以下は、単純な2層ネットワークである私のコードです。形状(3、2)の2次元データを取り込み、形状(1、4)の1次元データを出力します。 model = Sequential() model.add(Dense(16, input_shape=(3, 2))) model.add(Activation('relu')) model.add(Flatten()) model.add(Dense(4)) model.compile(loss='mean_squared_error', optimizer='SGD') x = np.array([[[1, 2], [3, 4], [5, 6]]]) y = model.predict(x) print y.shape これyは、形状(1、4)の出力です。ただし、Flatten線を削除すると、y形(1、3、4)のものが印刷されます。 分かりません。ニューラルネットワークについての私の理解から、このmodel.add(Dense(16, input_shape=(3, 2)))関数は、16ノードの完全に接続された非表示のレイヤーを作成しています。これらの各ノードは、3x2入力要素のそれぞれに接続されています。したがって、この最初のレイヤーの出力にある16個のノードはすでに「フラット」です。したがって、最初のレイヤーの出力形状は(1、16)になります。そして、第2層はこれを入力として、形状(1、4)のデータを出力する。 では、最初のレイヤーの出力がすでに「フラット」で形状(1、16)である場合、なぜさらにフラットにする必要があるのでしょうか。

5
GradientDescentOptimizerの適応学習率を設定するにはどうすればよいですか?
TensorFlowを使用してニューラルネットワークをトレーニングしています。これは私が初期化している方法ですGradientDescentOptimizer: init = tf.initialize_all_variables() sess = tf.Session() sess.run(init) mse = tf.reduce_mean(tf.square(out - out_)) train_step = tf.train.GradientDescentOptimizer(0.3).minimize(mse) ここで重要なのは、学習率またはその減衰値の更新ルールを設定する方法がわからないことです。 ここで適応学習率を使用するにはどうすればよいですか?
104 python  tensorflow 

2
TensorFlow保存/グラフのファイルからの読み込み
これまでに収集したものから、TensorFlowグラフをファイルにダンプして別のプログラムにロードする方法はいくつかありますが、それらがどのように機能するかについての明確な例や情報を見つけることができませんでした。私がすでに知っているのはこれです: a tf.train.Saver()を使用してモデルの変数をチェックポイントファイル(.ckpt)に保存し、後で復元する(ソース) モデルを.pbファイルに保存し、tf.train.write_graph()and tf.import_graph_def()(source) .pbファイルからモデルを読み込み、再トレーニングして、Bazel(ソースを使用して新しい.pbファイルにダンプします) グラフをフリーズして、グラフと重みを一緒に保存します(ソース) as_graph_def()モデルを保存するために使用し、重み/変数については、それらを定数にマッピングします(ソース) ただし、これらのさまざまな方法に関するいくつかの質問を解決することはできませんでした。 チェックポイントファイルについては、モデルのトレーニング済みの重みのみを保存しますか?チェックポイントファイルを新しいプログラムにロードして、モデルを実行するために使用できますか、それとも、特定の時間/段階でモデルの重みを保存する方法として機能するだけですか? について tf.train.write_graph()、重み/変数も保存されますか? Bazelに関しては、再トレーニングのために.pbファイルにのみ保存/ロードできますか?グラフを.pbにダンプするだけの簡単なBazelコマンドはありますか? フリーズに関して、フリーズされたグラフを使用してロードできますか tf.import_graph_def()ますか? TensorFlowのAndroidデモは、.pbファイルからGoogleのInceptionモデルに読み込まれます。自分の.pbファイルを置き換えたい場合は、どうすればよいですか?ネイティブコード/メソッドを変更する必要がありますか? 一般的に、これらすべての方法の違いは何ですか?より広義には、as_graph_def()/。ckpt / .pb の違いは何ですか? 要するに、私が探しているのは、グラフ(さまざまな操作など)とその重み/変数の両方をファイルに保存する方法です。これを使用して、グラフと重みを別のプログラムにロードできます。 、使用するため(必ずしも継続/再トレーニングではない)。 このトピックに関するドキュメントは簡単ではないので、回答や情報があれば大歓迎です。

6
トレーニング済みのKerasモデルを読み込んでトレーニングを続行する
部分的にトレーニングされたKerasモデルを保存し、モデルを再度ロードした後でトレーニングを続行できるかどうか疑問に思いました。 これは、将来的にトレーニングデータが増え、モデル全体を再トレーニングしたくないためです。 私が使用している機能は次のとおりです。 #Partly train model model.fit(first_training, first_classes, batch_size=32, nb_epoch=20) #Save partly trained model model.save('partly_trained.h5') #Load partly trained model from keras.models import load_model model = load_model('partly_trained.h5') #Continue training model.fit(second_training, second_classes, batch_size=32, nb_epoch=20) 編集1:完全に機能する例を追加 10エポック後の最初のデータセットでは、最後のエポックの損失は0.0748で、精度は0.9863です。 モデルを保存、削除、再ロードすると、2番目のデータセットでトレーニングされたモデルの損失と精度はそれぞれ0.1711と0.9504になります。 これは、新しいトレーニングデータまたは完全に再トレーニングされたモデルが原因ですか? """ Model by: http://machinelearningmastery.com/ """ # load (downloaded if needed) the MNIST dataset import …

7
Tensorflowバックエンドを使用するKerasは、CPUまたはGPUを自由に使用するように強制できますか?
TensorflowバックエンドとCUDAでKerasをインストールしました。ときどきオンデマンドでKerasにCPUの使用を強制したいのですが。これは、仮想環境に別のCPUのみのTensorflowをインストールすることなく実行できますか?もしそうなら?バックエンドがTheanoの場合、フラグを設定できますが、Kerasを介してアクセス可能なTensorflowフラグについては聞いたことがありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.