Я изучаю линейную регрессию и следую этой статье https://medium.com/all-of-us-are-belong-to-machines/the-gentlest-introduction-to-tensorflow-248dc871a224

Это отличный набор статей, и каждый должен прочитать его.

Сжатый код

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
# in real situation, should normalize data
x = tf.placeholder(tf.float32,[None,1])   # second parameter is the number of features
W = W = tf.Variable(tf.zeros([1,1]))
         # first parameter is number of features, second is number of output

b = tf.Variable(tf.zeros([1]))            # number of features
y = tf.matmul(x,W) + b
y_ = tf.placeholder(tf.float32,[None,1])  # second parameter is the number of outputs.
loss = tf.reduce_sum(tf.pow((y_-y),2))
train_step = tf.train.GradientDescentOptimizer(0.0001).minimize(loss)
init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    for i in range(1000):
        #x_data = np.random.rand(100,1) # using minibatch/batch
        #y_data = x_data * 3.0 + 1.0
        x_data = np.array([[i]])       # using stochastic gradient
        y_data = np.array([[i*2]])
        sess.run(train_step, feed_dict={x:x_data,y_:y_data})
        if i % 100 == 0 :
            print("i % d" % i)
            print(sess.run(W))

Если вы хотите использовать мультифункции, замените y, W, b и т. д. на правую сторону.

Однако при использовании стохастического градиентного спуска выходные данные продолжают печатать NaN и также взрываются. Вам нужно поиграть со скоростью обучения, количеством эпох и, возможно, заменить GradientDescentOptimizer другим оптимизатором, таким как tf.train.AdagradientOptimizer и tf.train.AdamOptimizer.