欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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)

运行!

tensorflow让AI学习加法