Я пытаюсь изучить тензор потока и нашел этот урок https://www.geeksforgeeks.org/linear-regression-using-tensorflow/ по линейной регрессии.
Я хочу создать линейную регрессию в соответствии с уроком с циклом for, который выводит текущую потерюданные поезда и теста каждые 50 циклов.
Мой код в настоящее время выглядит следующим образом:
import tensorflow as tf, numpy as np
learning_rate = 0.01
g = tf.Graph()
with g.as_default():
data = np.load('somedata.npy')
l = int(data.shape[0] * 0.8)
train = data[:l]
test = data[l:]
trainx = train[:, :-1]
trainy = train[:, -1]
testx = test[:, :-1]
testy = test[:, -1]
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
w = tf.get_variable("w", [102, 12], initializer=tf.truncated_normal_initializer(stddev=0.5))
b = tf.get_variable("b", [12,1], initializer=tf.truncated_normal_initializer(stddev=0.5))
prediction = tf.reduce_sum(tf.add(tf.multiply(w, x), b))
loss = tf.math.square(tf.math.subtract(prediction, y), 2)
optimizer = tf.train.GradientDescentOptimizer(learning_rate)
minimize_op = optimizer.minimize(loss, var_list=variables)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(1, 10001, 1):
for (_x, _y) in zip(x, y):
sess.run(optimizer, feed_dict = {X: _x, Y: _y})
if i + 1 % 100 == 0:
# calculate loss of train
print("Loop number: ", i, ":", " Loss Training: ", loss, end='')
# calculate loss of test
print("Loss Test: ", loss)
У меня есть следующие вопросы:
1. Как вы можете использовать данные из trainx, trainy, testx, testy, которые я получил из файла?
2. Нужно ли помещать деталь с прогнозом и потерями в цикл for или создать для них функцию?
3. Как рассчитать и распечатать потери?