0


当代人工智能 实验一 使用神经网络解决三好学生问题

  1. 运行并测试三好学生问题代码,根据实验分析学习率对网络的影响。
  2. 若某校三好学生在评判准则为德育分、智育分、体育分和社会实践构成,有三位学生的分数分别如下。试使用神经网络求解每一项分数的权重。 德育分智育分体育分社会实践总分908080708480901009086901007010092三好学生代码(TensorFlow 1.x): import tensorflow as tfx1 = tf.placeholder(dtype=tf.float32)x2 = tf.placeholder(dtype=tf.float32)x3 = tf.placeholder(dtype=tf.float32)w1 = tf.Variable(0.1, dtype=tf.float32)w2 = tf.Variable(0.1, dtype=tf.float32)w3 = tf.Variable(0.1, dtype=tf.float32)n1 = x1 * w1n2 = x2 * w2n3 = x3 * w3y = n1 + n2 + n3sess = tf.Session()init = tf.global_variables_initializer()sess.run(init)result = sess.run([x1, x2, x3, w1, w2, w3, y], feed_dict={x1: 90, x2: 80, x3: 70})print(result)yTrain = tf.placeholder(dtype=tf.float32)loss = tf.abs(y - yTrain)optimizer = tf.train.RMSPropOptimizer(0.001)train = optimizer.minimize(loss)result = sess.run([train, x1, x2, x3, w1, w2, w3, y, yTrain, loss], feed_dict={x1: 90, x2: 80, x3: 70, yTrain: 85})print(result)result = sess.run([train, x1, x2, x3, w1, w2, w3, y, yTrain, loss], feed_dict={x1: 98, x2: 95, x3: 87, yTrain: 96})print(result)for i in range(5000): result = sess.run([train, x1, x2, x3, w1, w2, w3, y, yTrain, loss], feed_dict={x1: 90, x2: 80, x3: 70, yTrain: 85}) print(result)result = sess.run([train, x1, x2, x3, w1, w2, w3, y, yTrain, loss], feed_dict={x1: 98, x2: 95, x3: 87, yTrain: 96})print(result)若是TensorFlow 2.x的版本,需要修改代码,运行如下代码:import tensorflow as tf# 定义变量w1 = tf.Variable(0.1, dtype=tf.float32)w2 = tf.Variable(0.1, dtype=tf.float32)w3 = tf.Variable(0.1, dtype=tf.float32)# 定义模型函数def model(x1, x2, x3): n1 = x1 * w1 n2 = x2 * w2 n3 = x3 * w3 y = n1 + n2 + n3 return y# 定义损失函数def loss_function(y_pred, y_true): return tf.abs(y_pred - y_true)# 选择优化器optimizer = tf.optimizers.RMSprop(0.001)# 训练步骤函数def train_step(x1, x2, x3, y_true): with tf.GradientTape() as tape: y_pred = model(x1, x2, x3) loss = loss_function(y_pred, y_true) gradients = tape.gradient(loss, [w1, w2, w3]) optimizer.apply_gradients(zip(gradients, [w1, w2, w3])) return loss# 示例数据和训练x1_data = tf.constant([90, 98], dtype=tf.float32)x2_data = tf.constant([80, 95], dtype=tf.float32)x3_data = tf.constant([70, 87], dtype=tf.float32)y_train_data = tf.constant([85, 96], dtype=tf.float32)# 运行训练循环for i in range(5000): loss = train_step(x1_data, x2_data, x3_data, y_train_data) if i % 100 == 0: print(f"Iteration {i}, Loss: {loss.numpy()}")# 检查最终的权重和损失y_pred = model(x1_data, x2_data, x3_data)final_loss = loss_function(y_pred, y_train_data)print(f"Final weights: {w1.numpy()}, {w2.numpy()}, {w3.numpy()}")print(f"Final loss: {final_loss.numpy()}")分析权重代码(TensorFlow版本为2.x):import tensorflow as tf# 定义变量w1 = tf.Variable(0.1, dtype=tf.float32)w2 = tf.Variable(0.1, dtype=tf.float32)w3 = tf.Variable(0.1, dtype=tf.float32)w4 = tf.Variable(0.1, dtype=tf.float32)# 定义模型函数def model(x1, x2, x3,x4): n1 = x1 * w1 n2 = x2 * w2 n3 = x3 * w3 n4 = x4 * w4 y = n1 + n2 + n3 + n4 return y# 定义损失函数def loss_function(y_pred, y_true): return tf.abs(y_pred - y_true)# 选择优化器optimizer = tf.optimizers.RMSprop(0.001)# 训练步骤函数def train_step(x1, x2, x3, x4,y_true): with tf.GradientTape() as tape: y_pred = model(x1, x2, x3,x4) loss = loss_function(y_pred, y_true) gradients = tape.gradient(loss, [w1, w2, w3,w4]) optimizer.apply_gradients(zip(gradients, [w1, w2, w3,w4])) return loss# 示例数据和训练x1_data = tf.constant([90, 80,90], dtype=tf.float32)x2_data = tf.constant([80, 90,100], dtype=tf.float32)x3_data = tf.constant([80, 100,70], dtype=tf.float32)x4_data = tf.constant([70, 90,100], dtype=tf.float32)y_train_data = tf.constant([84, 86,92], dtype=tf.float32)# 运行训练循环for i in range(5000): loss = train_step(x1_data, x2_data, x3_data,x4_data, y_train_data) if i % 100 == 0: print(f"Iteration {i}, Loss: {loss.numpy()}")# 检查最终的权重和损失y_pred = model(x1_data, x2_data, x3_data,x4_data)final_loss = loss_function(y_pred, y_train_data)print(f"Final weights: {w1.numpy()}, {w2.numpy()}, {w3.numpy()},{w4.numpy()}")print(f"Final loss: {final_loss.numpy()}")最终的权重为:ω1=0.5046337842941284ω2= 0.25738802552223206ω3=0.10077429562807083ω4=0.13746078312397003 作者:henu 21级 计算机与信息工程学院 空午
标签: 人工智能

本文转载自: https://blog.csdn.net/Kuugo_/article/details/136473871
版权归原作者 空午 所有, 如有侵权,请联系我们删除。

“当代人工智能 实验一 使用神经网络解决三好学生问题”的评论:

还没有评论