Машинное обучение
II — Модель
Table Of Content
Вот изображение, описывающее модель для лучшего понимания.
Одна вещь, которую следует учесть здесь, заключается в том, что мы используем вероятностное распределение слов в виде индексов. Это означает, что даже если наш набор даст хорошие результаты, набор данных все равно может потребовать расширения для разных слов.
module PredictValue::Model
class GLocalNet < Torch::NN::Module
def initialize(vocab_size, embed_dim, num_class)
super()
@embedding = Torch::NN::EmbeddingBag.new(vocab_size, embed_dim, sparse: true)
@fc = Torch::NN::Linear.new(embed_dim, num_class)
init_weights
end
def init_weights
initrange = 0.5
@embedding.weight.data.uniform!(-initrange, initrange)
@fc.weight.data.uniform!(-initrange, initrange)
@fc.bias.data.zero!
end
def forward(text, offsets)
embedded = @embedding.call(text, offsets: offsets)
@fc.call(embedded)
end
end
end
Как видно из приведенного выше кода, мы будем передавать вложения в линейный слой. Веса будут перераспределены на каждой эпохе, чтобы дать нам лучшие результаты. Фактически, это линейная регрессия с тензорами в своей сущности.