результаты лабораторных работ #9
Conversation
new file: KurpiakovAG/lab1/backprop.ipynb new file: KurpiakovAG/lab1/backprop.py new file: KurpiakovAG/lab2/convnet.ipynb
new file: KurpiakovAG/lab3/transfer_lerning.ipynb
| "\n", | ||
| " pred = output.argmax(dim=1)\n", | ||
| " accuracy = (pred == label).float().mean()\n", | ||
| " avg_accuracy.append(accuracy.item())\n", |
There was a problem hiding this comment.
Этот кусок кода дублируется с блоком в строках 274-285. По смыслу это отдельная функция. Но сейчас есть пакет torch.metrics, с помощью которого можно вычислять все метрики качества.
| " test_loss += loss.item()\n", | ||
| " _, predicted = torch.max(outputs.data, 1)\n", | ||
| " total += labels.size(0)\n", | ||
| " correct += (predicted == labels).sum().item()\n", |
There was a problem hiding this comment.
Аналогичный комментарий касательно вычисления метрики.
| " optimizer.step()\n", | ||
| "\n", | ||
| " loss_list.append(loss.item())\n", | ||
| " accuracy_list.append(torch.mean((torch.argmax(main_output, dim=1) == label).float()).item())\n", |
There was a problem hiding this comment.
Для вычисления метрики качества надо использовать пакет torch.metrics
| "\n", | ||
| " outputs = model.forward(images)\n", | ||
| "\n", | ||
| " score_list.append(torch.tensor(f1_score(torch.argmax(outputs, dim = 1).cpu(), labels.cpu(), average = 'macro')))\n", |
There was a problem hiding this comment.
Для вычисления метрики качества надо использовать пакет torch.metrics
| { | ||
| "cell_type": "code", | ||
| "source": [ | ||
| "def GoogLeNet(num_classes=10, transfer=True):\n", |
There was a problem hiding this comment.
На самом деле здесь только 2 типа экспериментов, но может быть еще тритий, когда модель обучается от начальных значений весов, полученных при обучении на наборе данных ImageNet
| "name": "stdout", | ||
| "text": [ | ||
| "Epoch: 1/20 \n", | ||
| "smth\n", |
There was a problem hiding this comment.
Вот это похоже на отладочную строку, которая была удалена, но повторный запуск кода не производился, т.е. код не соответствует выводу. Надо сделать перезапуск, чтобы не было расхождений.
| "plt.figure(figsize=(12, 6))\n", | ||
| "bars = plt.bar(name_models, test, color = 'darkblue', edgecolor = 'black')\n", | ||
| "plt.xlabel(\"Конфигурации моделей\", fontsize = 14)\n", | ||
| "plt.ylabel(\"Значения\", fontsize = 14)\n", |
There was a problem hiding this comment.
Точность классификации, а не просто значения. Когда вы подписываете ось, то текст должен буквально отражать то, что показано.
| " return model\n", | ||
| "\n", | ||
| "def ResNet(num_classes = 10, transfer = True):\n", | ||
| " if transfer:\n", |
There was a problem hiding this comment.
Аналогичный комментарий касательно третьего эксперимента.
| "\n", | ||
| "plt.figure(figsize=(12, 6))\n", | ||
| "bars = plt.bar(name_models, test, color = 'darkblue', edgecolor = 'black')\n", | ||
| "plt.xlabel(\"Конфигурации моделей\", fontsize = 14)\n", |
| " 'ResNet-50 random',\n", | ||
| " 'ResNet-50 transfer',\n", | ||
| " 'VGG-16 random',\n", | ||
| " 'VGG-16 transfer',\n", |
There was a problem hiding this comment.
Подписи должны быть понятны читателю, сейчас это что-то понятное только тому, кто писал код :) Надо переименовать.
No description provided.