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