C# Необходимо с использованием Tensorflow.NET реализовать модель множественной линейной регрессии

Для моей задачи требуется реализовать нейронную сеть которая должна найти параметры линейной функции, то есть должна работать с моделью множественной линейной регрессии y=w_1x1 + w_2x2 + b. В связи с тем, что обучающего кода по Tensorflow.NET и он часто пересекается с Python, который я не знаю, что-то внятное найти не удалось. Получилось собрать модель линейной регрессии y=w*x.

using Tensorflow;
using Tensorflow.NumPy;
using static Tensorflow.Binding;
using static Tensorflow.KerasApi;

    public void Run()
    {
        // Дополнительные параметры 
        float learning_rate = 0.01f;

        var W = tf.Variable<float>(1);
        var b = tf.Variable<float>(0);

        int epochs = 30;
        int steps = 100;
        Tensor loss = null;
        string str = "";
        for (int epoch = 0; epoch < epochs; epoch++)
        {
            for (int step = 0; step < steps; step++)
            {
                int batch_size = 10;
                (NDArray train_X, NDArray train_Y) = LoadBatchData(batch_size);

                using (var g = tf.GradientTape())
                {
                    // Рассчитываем прогнозируемое значение через текущие параметры 
                    var pred_y = W * train_X + b;

                    // Рассчитываем ошибку между прогнозируемым значением и фактическим значением 
                    loss = tf.reduce_sum(tf.pow(pred_y - train_Y, 2)) / batch_size;

                    // Вычислить градиент 
                    var gradients = g.gradient(loss, (W, b));

                    // Обновить параметры 
                    W.assign_sub(learning_rate * gradients.Item1);
                    b.assign_sub(learning_rate * gradients.Item2);
                }
            }

            str += ($"Epoch{epoch + 1}: loss = {loss.numpy()}; W={W.numpy()},b={b.numpy()}") + "\n";
        }
        MessageBox.Show(str);
    }

Прошу подсказать, как можно модернизировать код, чтобы работало с большим числом переменных:

y=w_1x1 + w_2x2 + b


Ответы (0 шт):