# 1以上给予的的背景小知识的了解请使用TensorFlow完成以下相关的题目要求。import tensorflow as tfimport numpy as np# 1以下为一个判断逻异或的的数据按照要求去做逻辑回归运算;# ①正确加载下图给予的亦或初始化数据7分x_data = 1 2 2 3 3 1 4 3 5 3
首先,我们需要加载给定的异或数据集。
x_data = [[1, 2], [2, 3], [3, 1], [4, 3], [5, 3], [6, 2]] y_data = [[0], [0], [0], [1], [1], [1]]
接下来,我们可以使用tf.placeholder定义输入的占位符。
X = tf.placeholder(dtype=tf.float32, shape=[None, 2]) Y = tf.placeholder(dtype=tf.float32, shape=[None, 1])
然后,我们定义偏置和权重,并根据给定的数据进行初始化。
W = tf.Variable(tf.random_normal(shape=[2, 1])) b = tf.Variable(tf.random_normal(shape=[1]))
接下来,我们可以使用tf.sigmoid函数构建预测模型。
h = tf.sigmoid(tf.matmul(X, W) + b)
然后,我们可以使用底层代码定义损失函数,这里选择交叉熵。
loss = -tf.reduce_mean(Y * tf.log(h) + (1 - Y) * tf.log(1 - h))
接下来,我们可以选择优化器(这里选择了梯度下降优化器)。
op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
然后,我们创建一个会话并进行运算计算图分析。
with tf.Session() as sess: sess.run(tf.global_variables_initializer())
接下来,我们进行1000次迭代运算。
for i in range(1000): loss_, op_ = sess.run([loss, op], feed_dict={X: x_data, Y: y_data})
在每40步时,我们打印出损失值。
if i % 40 == 0: print(i, loss_)
最后,我们使用训练好的模型进行预测。
print(sess.run(y_predict, feed_dict={X: [x_data[-1]], Y: [y_data[-1]]}))
原文地址: https://www.cveoy.top/t/topic/i5HN 著作权归作者所有。请勿转载和采集!