gpt4 book ai didi

tensorflow - 为什么我必须在 tensorflow 中为线性回归打乱输入数据

转载 作者:行者123 更新时间:2023-12-01 06:04:07 27 4
gpt4 key购买 nike

我正在使用 tensorflow 构建线性回归模型,以下是我的代码。但是从我的实验来看,我必须对训练数据进行洗牌,否则权重和偏差将被估计为 na。谁能向我解释为什么我必须洗牌数据?谢谢

train_X = np.linspace(1, 50, 100)
train_Y = 1.5 * train_X + 10.0 + np.random.normal(scale=10, size=1)
data = list(zip(train_X, train_Y))
random.shuffle(data) # have to shuffle data, otherwise w and b would be na

X = tf.placeholder(dtype=tf.float32, shape=[], name='X')
Y = tf.placeholder(dtype=tf.float32, shape=[], name='Y')
W = tf.Variable(0.0, name='weight')
b = tf.Variable(0.0, name='bias')
Y_pred = W * X + b

cost = tf.square(Y-Y_pred, name="cost")
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.001).minimize(cost)

with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for _ in range(30):
for x, y in data:
sess.run(optimizer, feed_dict={X: x, Y: y})

w_value, b_value = sess.run([W, b])
print("w: {}, b: {}, {}".format(w_value, b_value, "test"))

最佳答案

有时数据按某些列排序
当您将数据拆分为 75% 与 25% 的比率时
您对最近 25% 分割中存在的某些值视而不见。
所以你学习除了测试中存在的值(最后 25% 行)之外的所有内容。
这就是为什么最好的方法是洗牌,以确保打破数据中的某些顺序,并了解存在的所有可能值

关于tensorflow - 为什么我必须在 tensorflow 中为线性回归打乱输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42017411/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com