TensorFlow非線形回帰 - ニューラルネットワークアルゴリズムに基づいて、

インポートAS tensorflowのTF
 インポートnumpyのNP AS
 インポートPLT AS matplotlib.pyplot 

"" " 
1. 
形状:。* 2行列の次元を3 
=================== 
2. 
[なし]を、 1]:N行1 
=================== 
3 
numpy.random.normal(LOC = 0.0、スケール= 1.0、サイズ=なし)
正常
LOC :フロート
    本の確率分布の平均値(全物流センターの中心に対応)
スケール:浮遊
    この確率の分布の標準偏差を(、分布の幅に対応するスケール分厚い大きい小規模、背の高い、薄い)
サイズ:intまたはタプルのINTS 
    形状出力は、デフォルトで値のみ出力、Noneです

"" " 
XDATA:[np.newaxis](200、-0.5、0.5)= np.linspaceは   #は後ろ増加寸法 
(ノイズ= np.random.normal 0、0.02、xdata.shape)  雑音が、一貫した寸法とXDATA確保する 
YDATA = np.square(XDATA)+ノイズ   Y = X ^ 2 +ノイズYDATA = np.exp(XDATA)+ノイズ

定義する2つのプレースホルダ 
X = tf.placeholderを(tf.float32、[なし1])  N行、 
Y = tf.placeholder(tf.float32、[なし1])  サンプルに応じてN行、1、(X)が定義されている
"" " 
入力層:入力が1点であり、その後、あなたはニューロンライン必要Xは、
カスタム:中間層
、出力層:Yを、出力ニューロンと、ポイントの一つである
「」 " 

#は、ニューラルネットワークの中間層を定義します

重量 = tf.Variable(tf.random_normal([1、10]))  入力層と中間層と、正規分布からのランダムな値の出力、(1つの入力)ライン10(中間層への入力を接続する重み)カラム、ライン上に置く重み 
バイアス= tf.Variable(tf.zeros([1、10]))  オフセット値を0に初期化され、中間層からの入力10個のニューロン
= tf.matmul wx_plus_b_l1(X、重量)+バイアス   信号SUM * X +バイアス量 
L1 = tf.nn.tanh(wx_plus_b_l1)  活性化機能を、S字

#は出力層定義
"" " 
出力:中間層の出力L1を入力層
"" " 

weight1の = tf.Variable(tf.random_normal([10 ,. 1]))  yに中間層(出力),. 1 - > 10 
。biases1 = tf.Variable(tf.zeros([1 、1]))  オフセット値、1 - > 1 
wx_plus_b_l2 = tf.matmul weight1の(L1)+ biases1   出力層信号の和は 
= tf.nn.tanh(wx_plus_b_l2)予測   #の予測結果

二次検討を機能の 
損失= tf.reduce_mean - (tf.squareは(Y)は、予測)   #の平均値の誤差

勾配降下を
= tf.train.GradientDescentOptimizerのtrain_step(0.1 ).minimize(損失)

SES AS tf.Session()を持つ:
     #は変数描く
    ses.runを(tf.global_variables_initializer())
     のために _ レンジ(5001 ):
        ses.run( train_step、feed_dict = {X:XDATA、Y:YDATA})  トレーニングの勾配降下法を用いて、×:サンプル点

        #は、予測値取得 
    predict_value = ses.run(予測、feed_dict = ){:XDATA、Y YDATA X}
         塗料
    plt.figure()
    plt.scatter(XDATA、YDATA)
    plt.plot(XDATA、predict_value、' R- '、LW = 5)  赤実線、ライン幅=幅。5行 
    plt.show()

 

 

おすすめ

転載: www.cnblogs.com/clement-chiu/p/11406915.html
おすすめ