tensorflow让AI学习加法
程序员文章站
2022-07-06 21:54:04
...
在Visual Studio 2019中,创建python项目
import tensorflow as tf
import random
# 两个随机输入参数x,y
inputs = tf.placeholder(tf.float32,[2])
# 加法公式为 v = F(x,y) = a[0]*x+a[1]*y
# 训练的参数为:a[0],a[1]
a = tf.Variable(tf.random_uniform([2],0,1.0))
v = tf.reduce_sum(tf.multiply(inputs,a),0)
# x+y的真正结果,这个结果是程序求解出来的,当作监督学习的标签
y_input = tf.placeholder(tf.float32)
# 误差:ai输出的v值与真实标签值之间的误差
cost = tf.losses.mean_squared_error(y_input,v)
# 优化器
optimizer = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
session = tf.Session()
session.run(tf.global_variables_initializer())
# 加法,用来求解两个随机值的加和
def model_add(a,b):
return a+b
print('a:',session.run(a))
# 训练
for i in range(10000):
# 随机两个值
test_a = random.uniform(0,10)
test_b = random.uniform(0,10)
array = []
array.append(test_a)
array.append(test_b)
sum_value = model_add(test_a,test_b)
# 优化
optimizer.run(feed_dict={y_input:sum_value,inputs:array},session=session)
# 计算误差,打印误差
c = cost.eval(feed_dict={y_input:sum_value,inputs:array},session=session)
print(c)
# 误差足够小,不再训练
if c<0.00001:
break
#训练的参数
print('a:',session.run(a))
# 测试
for i in range(10):
test_a = random.uniform(0,5500)+5000
test_b = random.uniform(0,5500)+5000
array = []
array.append(test_a)
array.append(test_b)
result = session.run(v,feed_dict={inputs:array})
print(' ',test_a, ' + ',test_b,' = ',result)
运行!
上一篇: 学习杂记