Построение глубокого обучения и процесс обучения

машинное обучение

набор данных

В глубоком обучении качество алгоритма отражается в результатах обучения набора тестов, а также способствует обновлению и повторению алгоритма.

Часто используемые наборы данных

Ссылка на ссылку:zhuanlan.zhihu.com/p/55775309

  1. Datafoundatin
  2. Kesai.com
  3. Kaggle
  4. Google
  5. Набор данных Майкрософт

Построить модель

Если модель более сложная, вы можете записать ее в новый файл .py и импортировать model.py в основной файл.

# design model using class
class LogisticRegressionModel(torch.nn.Module):
    def __init__(self):
        super(LogisticRegressionModel, self).__init__()
        # 创建1 * 1维度对象
        self.linear = torch.nn.Linear(1, 1)

    def forward(self, x):
        # y_pred = F.sigmoid(self.linear(x))
        y_pred = torch.sigmoid(self.linear(x))
        return y_pred

# 创建对象model
model = LogisticRegressionModel()

функция потерь

Вы можете построить свою собственную функцию потерь на основе модуля nn.Module

# 默认情况下,loss会基于element平均,如果size_average=False的话,loss会被累加。
# BCELoss二分类的交叉熵
criterion = torch.nn.BCELoss(size_average=False)

оптимизатор

Создайте свой собственный оптимизатор на основе собственного использования и отзывов о наборе тестов.

optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

тренироваться

По средним потерям MSE до обучения и средним потерям после обучения за несколько эпох они агрегируются в график, и можно наблюдать, сходится ли модель (достигает оптимума) или переобучается.

переоснащение

Слишком много обучающих данных, слишком сложные модели и слишком мало тестовых выборок, чтобы модель после большого количества тренировок могла точно предсказывать результаты тестовых выборок, а не результаты обнаружения нормального пути

# training cycle forward, backward, update
for epoch in range(1000):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    print(epoch, loss.item())

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()