[AI]ニューラルネットワークインフラストラクチャ

著作権:ソースを明記してくださいhttps://blog.csdn.net/weixin_40937100/article/details/88878296

、セッションテンソル図。

1、テンソルの分類

  • 0次:スカラー
  • 1注文:ベクトル
  • n個の順序:テンソル

図2に示すように、図の計算:計算プロセスニューラルネットワーク構造、ネットワーク構造のみ、非動作。
ここに画像を挿入説明

図3に示すように、セッションは:プロセスを算出します

import tensorflow as tf
x = tf.constant([[1.0,2.0]])
w = tf.constant([[3.0],[4.0]])
y = tf.matmul(x,w)
print y
with tf.Session() as sess
    print sess.run(y)

ここに画像を挿入説明
データの単一のセットを供給 - 2つの単純な二層に完全に接続されたニューラルネットワークを実現

#coding: utf-8 
#两层简单神经网络(全连接)
import tensorflow as tf

#定义输入和参数
x = tf.constant([[0.7,0.5]])
w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))

#定义前向传播过程(由一层计算层构成)计算图
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)

#利用会话进行计算
with tf.Session() as sess:
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    print"y in tf3_3.py is :\n",sess.run(y)

第三に、単純な二層に完全に接続されたニューラルネットワーク - データの複数のセットを供給

#coding:utf-8
#两层的简单神经网络(全连接)

import tensorflow as tf

#定义输入和参数
#用placeholder定义输入(sess.run喂多组数据)
x = tf.placeholder(tf.float32,shape=(None,2))
w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))

#定义向前传播过程

a = tf.matmul(x,w1)
y = tf.matmul(a,w2)

#利用会话来计算结果

with tf.Session() as sess:
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    print"y in tf3_5.py is: \n",sess.run(y,feed_dict={x:[[0.7,0.5],[0.2,0.3],[0.3,0.4],[0.4,0.5]]})
    print"w1: ",sess.run(w1)
    print"w2: ",sess.run(w2)

第四に、構文の概要

1、tf.random_normal([2,3]、 STDDEV = 2、= 0を意味し、種子= 1)
のパラメータが表す:2×3行列、2の標準偏差、平均0とランダムシードを生成する(ランダムシードを除去します)別の乱数を取得します
2、tf.truncated_normal()正規分布の点から過大偏差を除去する
)(3 tf.random_uniformを均等に分散
、tf.zeros([3,2]、4 Int32)を生成するために、[[0 、0]、[0,0]、[0,0] 0フルアレイ
5、tf.ones([3,2]、 Int32)を生成する[1,1]、[1,1]、[1 、1]]フルアレイ
6、tf.fill([3,2]、 6) 与えられた値のアレイ全体の[6,6]、[6,6]、[6,6]]を生成する
7、TFを.constant([3,2,1])を直接アレイを設定生成されます

ここに画像を挿入説明
ここに画像を挿入説明

ファイブ前方後方伝播勾配降下最適化アルゴリズム+

#coding:utf-8
import tensorflow as tf
import numpy as np

# BATCH_SIZE表示一次喂入神经网络多少组数据
BATCH_SIZE = 8

# 保证随机生成的结果相同
seed = 23455

# 基于seed产生随机数
rng = np.random.RandomState(seed)

# 随机数返回32行2列的矩阵,表示32组体积和重量,作为输入数据集
X = rng.rand(32,2)

# 从X这个32行2列的矩阵中,抽出一行,如果和小于1,则Y赋值1,否则赋值0
Y = [[int(x0+x1<1)] for (x0,x1) in X]

print"打印数据集X和Y"
print"X:\n",X
print"Y:\n",Y
print"\n"


# 定义输入、输出、参数、计算图

x  = tf.placeholder(tf.float32,shape=(None,2))
y_ = tf.placeholder(tf.float32,shape=(None,1))

w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))

a = tf.matmul(x,w1)
y = tf.matmul(a,w2)


# 定义损失函数
# 损失函数:均方误差,优化方法:梯度下降学习过程
loss = tf.reduce_mean(tf.square(y-y_))

train_step = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
#Optimizer = tf.trian.GradientDescentOptimizer(0.001)
#train_step = Optimizer.minimize(loss)

# 选用优化方法1:
#train_step = tf.train.MomentumOptimizer(0.001,0.9).minimize(loss)

# 备选优化方法2:
#train_step = tf.train.AdamOptimizer(0.001).minimize(loss)

# 生成会话 训练STEPS轮

with tf.Session() as sess:
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    
    # 输出目前的(未经过训练的)参数:
    print"w1:\n",sess.run(w1)
    print"w2:\n",sess.run(w2)
    print"原始参数输出完毕\n"
    
    # 训练模型过程如下:
    STEPS = 3000
    for i in range(STEPS):
        start = (i*BATCH_SIZE) % 32
        end = start + BATCH_SIZE
        sess.run(train_step,feed_dict={x:X[start:end],y_:Y[start:end]})
        if i % 500 == 0:
            total_loss = sess.run(loss,feed_dict={x:X,y_:Y})
            print"After %d training step(s),loss on all data is %g"%(i,total_loss)
    #输出训练后的参数
    print"\n" 
    print"w1:\n",sess.run(w1)
    print"w2:\n",sess.run(w2)

ここに画像を挿入説明

第六に、ステレオタイプのニューラルネットワークを構築

0、調製
1、インポート(tensorflow、numpyの等)
2、定数定義
3、乱数発生器
1、フォワード伝搬
1、入力:X、Y_
2、パラメータ:W1のW2
3、出力:A、Y
4、図構造計算
2、伝搬反応
1、損失損失関数
2、最適化train_stepを
図3に示すように、セッションを生成し、トレーニングの反復ステップが車輪。
セッション数AS(tf.Sessionと、1):
2、定義されたステップ
。3、反復トレーニング、ループ反復
4 、印刷で観察損失が減少しやすくするために、ラウンドの特定の番号の後に機能の喪失を促し
×を、または、書かれた6回、まだ間違って、野菜やX_Xを実践し続けること

おすすめ

転載: blog.csdn.net/weixin_40937100/article/details/88878296