Python은 주류 프레임워크tensorflow를 이용하여 BP 네트워크 의합을 구축한다
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 8 11:56:47 2018
@author: Administrator
"""
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# ,
x = np.linspace(-2, 2, 1000)[:, np.newaxis]
y = 5 * x + np.sin(2 * 3.14 * x) + 2
# x = train_X
# y = train_Y
#####s
np.random.seed(2019)
n_index = np.random.permutation(len(x))
# ###########
train_x_disorder = x[n_index[0:800]]
test_x_disorder = x[n_index[800:len(x) + 1]]
train_y_disorder = y[n_index[0:800]]
test_y_disorder = y[n_index[800:len(x) + 1]]
train_X = train_x_disorder
train_Y = train_y_disorder
tf.set_random_seed(2019)
#
#
X = tf.placeholder("float", [None, 1])
Y = tf.placeholder("float", [None, 1])
#
W1 = tf.Variable(tf.random_normal([1, 80]), name="weight")
b1 = tf.Variable(tf.ones([1, 80]), name="bias")
W3 = tf.Variable(tf.random_normal([80, 1]), name="weight")
b3 = tf.Variable(tf.ones([1]), name="bias")
#
z1 = tf.matmul(X, W1) + b1
z2 = tf.nn.relu(z1)
z5 = tf.matmul(z2, W3) + b3
#
cost = tf.reduce_mean(tf.square(Y - z5))
# optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) # Gradient descent
optimizer = tf.train.AdamOptimizer(learning_rate=0.01).minimize(cost)
#
init = tf.global_variables_initializer()
#
training_epochs = 10000
display_step = 100
loss_dis = []
# session
sess = tf.Session()
sess.run(init)
for epoch in range(training_epochs + 1):
sess.run(optimizer, feed_dict={X: train_X, Y: train_Y})
#
if epoch % display_step == 0:
loss = sess.run(cost, feed_dict={X: train_X, Y: train_Y})
print("Epoch:", epoch, "cost=", loss)
loss_dis.append(loss)
print(" Finish")
#
pre = sess.run(z5,feed_dict={X:train_X})
plt.figure()
plt.plot(train_X,pre,'o',train_X,train_Y,'*')
error = pre-train_Y
plt.figure()
plt.plot(error)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.