Tensorflowは、ニューラルネットワークの最初の使用を書きました

        トレーニングコースは、鋼の抽出の分野で関係を作るためにLSTM +の注目のメカニズムを使用しているため。白としてのみだけでいくつかの理論的な知識RNNとのネットワークを学習少し深さ、B駅でLSTMを学びました。

しかし、唯一のいくつかの理論的な知識は完全な関係の抽出作業ではありません知っています。だから私はtensorflowニューラルネットワークプログラミングを記録し始めたライブラリーから「tensoflow戦闘-----深い学習フレームワーク」を借りて!

       まず、機構tensorflowの動作を教え、特定の計算のために、一般的に2つの段階に分けることができ、数値を計算するために使用される演算を定義する第一段階は、第二段階は、計算を実行するために使用されます。

あなたはこの概念を持っていたら、あなたは、この操作は、優れたフレームワークの定義は別パーツ、およびモデルのトレーニングセクションには非常に良いことができますことがわかります、以下は最初の実験コードです:簡単な分類問題、2、3、ニューラルネットワークの1(3層、各層のノード)。

tensorflowインポートAS TF 
numpy.randomからインポートRandomState
BATCH_SIZE = 8
(tf.random_normal((W1 = tf.Variable 2 3) STDDEV = 1 SEED = 1))//がランダム重みを初期化し、第二のパラメータであります標準偏差
tf.VariableのW2 =(tf.random_normal((3 1) STDDEV = 1 SEED = 1))//ランダム重みを初期化

X = tf.placeholder(tf.float32 形状=(なし、2) =名「x_input」)//それが定数として定義されている場合ので、一般的に、トレーニング中にストアデータを入力するために使用されるプレースホルダ、消費あまりスペース
Y_ = tf.placeholder(tf.float32 形状=(なし、1) 名前= 「y_input」)//パラメータの説明、あなたは型と大きさを定義する必要があり、該当なし平均、私は訓練の数のいくつかのグループがあるかわからない
biases1 = tf.Variable(tf.random_normal((1 3)は= STDDEV バイアス1))//定義は、実際には、いわゆるオフセット切片の概念である
biases2 = tf.Variable(tf.random_normal((1 1) STDDEV = 1))
、#A = tf.matmul(X- W1)+ biases1

//以下がフロント伝播され得る
A = tf.sigmoid(tf.matmul(X 、W1)+ biases1)//活性化関数をシグモイド関数を線形化するために使用されるように作用する
Yを= tf.matmul(A 、+ biases2のW2)
Y = tf.sigmoid(Y)
損失損失関数番号が選択されているクロスとエントロピーファンクション番号
= -tf.reduce_mean cross_entropy(Y_ * tf.log(tf.clip_by_value(Y 1E-10 1.0))+(1-Y)* tf.log(tf.clip_by_value(1-Y 1E-10 1.0 )))
選択の最適化方法(重みを更新する、すなわち、バックプロパゲーション法を用いて、この方法は意味がアダムのみ勾配降下を知っている)か分からない
train_step tf.train.AdamOptimizer =(0 0.001から)(cross_entropyを.minimize )

生成機械番号データセット
RDM RandomState =(1) 機械因子がある。1
dataset_size = 128
X-rdm.rand =(dataset_size 2)
Y = [ INT(X1 + X2 < 1)] (X1用、X2)] X-における
//セッションを生成し、その実行前述のステージの計算トレーニングモデルを始め
tf.Session()を持つ:SESのAS
// tensorflow全てテンソルを初期化しなければならない
 initall = tf.global_variables_initializer()
sess.run(initall)
#Print(sess.run(biases1))プリント(sess.run(W1))プリント(sess.run(W2))//トレーニングセットは、バッチと呼ばれる小規模なA部分を抽出するために、トレーニングプロセスでありますバッチ訓練のバッチ=ステップ5000 Iのためにある範囲(ステップ):スタート=(私はBATCH_SIZEを*)%のdataset_sizeの終了= 分(スタート+ BATCH_SIZE 、dataset_size)sess.run(train_step feed_dict = {X:X- [スタート] :終了] 、Y_:Y [スタート:終了]})トレーニングチェックトレーニング結果あたり// 1000倍、すなわち、クロスエントロピー関数、小さい良好IF(I%の1000年== 0)。









    
  = sess.run total_cross(cross_entropy feed_dict = {X:X- 、Y_:Y})
  プリント(I "" 、total_cross)
//最後の更新権の最終重量チェック
プリント(sess.run(W1))
プリント(セッション数.RUN(W2))

も、ブログを書くために初めて、初心者のために、カザフスタンアウト問題くださいポイントがあります。

おすすめ

転載: www.cnblogs.com/guairenkuangren/p/12035281.html