{ "

Training U-Net

\n

This trains a U-Net model on Carvana dataset. You can find the download instructions on Kaggle.

\n

Save the training images inside _^_0_^_ folder and the masks in _^_1_^_ folder.

\n

For simplicity, we do not do a training and validation split.

\n": "

U-\u0dc1\u0dd4\u0daf\u0dca\u0db0\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4

\n

\u0db8\u0dd9\u0dba \u0d9a\u0dcf\u0dbb\u0dca\u0dc0\u0dcf\u0db1\u0dcf \u0daf\u0dad\u0dca\u0dad \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0dda \u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca \u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba\u0d9a\u0dca \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dbb\u0dba\u0dd2. \u0d94\u0db6\u0da7 \u0db6\u0dcf\u0d9c\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0d8b\u0db4\u0daf\u0dd9\u0dc3\u0dca \u0dc3\u0ddc\u0dba\u0dcf\u0d9c\u0dad \u0dc4\u0dd0\u0d9a\u0dd2\u0dba Kaggle.

\n

_^_0_^_ \u0dc6\u0ddd\u0dbd\u0dca\u0da9\u0dbb\u0dba \u0dad\u0dd4\u0dc5 \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd6\u0dbb \u0dc3\u0dc4 _^_1_^_ \u0dc6\u0ddd\u0dbd\u0dca\u0da9\u0dbb\u0dba\u0dda \u0dc0\u0dd9\u0dc3\u0dca \u0db8\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dca\u0db1.

\n

\u0dc3\u0dbb\u0dbd\u0db6\u0dc0 \u0dc3\u0db3\u0dc4\u0dcf, \u0d85\u0db4\u0dd2 \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dc0\u0d9a\u0dca \u0dc3\u0dc4 \u0dc0\u0dbd\u0d82\u0d9c\u0dd4 \u0db7\u0dda\u0daf\u0dba\u0d9a\u0dca \u0db1\u0ddc\u0d9a\u0dbb\u0db8\u0dd4.

\n", "

Configurations

\n": "

\u0dc0\u0dd2\u0db1\u0dca\u0dba\u0dcf\u0dc3\u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dca

\n", "

Sample images

\n": "

\u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd2\u0dbb\u0dd6\u0db4

\n", "

Train for an epoch

\n": "

\u0d9aepoch \u0dc3\u0db3\u0dc4\u0dcf \u0daf\u0dd4\u0db8\u0dca\u0dbb\u0dd2\u0dba

\n", "

Training loop

\n": "

\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dbd\u0dd6\u0db4\u0dba

\n", "

\n": "

\n", "

U-Net model

\n": "

\u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca \u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba

\n", "

Adam optimizer

\n": "

\u0d86\u0daf\u0db8\u0dca\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba

\n", "

Batch size

\n": "

\u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0dca\u0db4\u0dca\u0dbb\u0db8\u0dcf\u0dab\u0dba

\n", "

Calculate loss

\n": "

\u0d85\u0dbd\u0dcf\u0db7\u0dba\u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Compute gradients

\n": "

\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a\u0d9c\u0dab\u0db1\u0dba

\n", "

Create configurations

\n": "

\u0dc0\u0dd2\u0db1\u0dca\u0dba\u0dcf\u0dc3\u0dba\u0db1\u0dca\u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create dataloader

\n": "

\u0daf\u0dad\u0dca\u0dad\u0d9a\u0dcf\u0dbb\u0d9a\u0dba \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create experiment

\n": "

\u0d85\u0dad\u0dca\u0dc4\u0daf\u0dcf\u0db6\u0dd0\u0dbd\u0dd3\u0db8 \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create optimizer

\n": "

\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba\u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Crop the image to the size of the mask

\n": "

\u0dc0\u0dd9\u0dc3\u0dca\u0db8\u0dd4\u0dc4\u0dd4\u0dab\u0dd9\u0dc4\u0dd2 \u0db4\u0dca\u0dbb\u0db8\u0dcf\u0dab\u0dba\u0da7 \u0dbb\u0dd6\u0db4\u0dba \u0dc0\u0d9c\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Crop the target mask to the size of the logits. Size of the logits will be smaller if we don't use padding in convolutional layers in the U-Net.

\n": "

\u0d89\u0dbd\u0d9a\u0dca\u0d9a\u0d9c\u0dad\u0dc0\u0dd9\u0dc3\u0dca\u0db8\u0dd4\u0dc4\u0dd4\u0dab \u0db4\u0dd2\u0dc0\u0dd2\u0dc3\u0dd4\u0db8\u0dca \u0db4\u0dca\u0dbb\u0db8\u0dcf\u0dab\u0dba\u0da7 \u0dc0\u0d9c\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1. \u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca \u0dc4\u0dd2 \u0dc3\u0d82\u0dc0\u0dbd\u0dd2\u0dad \u0dc3\u0dca\u0dae\u0dbb \u0dc0\u0dbd \u0d85\u0db4\u0dd2 \u0db4\u0dd1\u0da9\u0dd2\u0db1\u0dca \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0db1\u0ddc\u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda \u0db1\u0db8\u0dca \u0db4\u0dd2\u0dc0\u0dd2\u0dc3\u0dd4\u0db8\u0dca \u0db4\u0dca\u0dbb\u0db8\u0dcf\u0dab\u0dba \u0d9a\u0dd4\u0da9\u0dcf \u0dc0\u0dda.

\n", "

Dataloader

\n": "

\u0daf\u0dad\u0dca\u0dad\u0d9a\u0dcf\u0dbb\u0d9a\u0dba

\n", "

Dataset

\n": "

\u0daf\u0dad\u0dca\u0dad\u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba

\n", "

Device to train the model on. _^_0_^_ picks up an available CUDA device or defaults to CPU.

\n": "

\u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0d8b\u0db4\u0d9a\u0dbb\u0dab\u0dba. _^_0_^_ \u0dbd\u0db6\u0dcf \u0d9c\u0dad \u0dc4\u0dd0\u0d9a\u0dd2 CUDA \u0d8b\u0db4\u0dcf\u0d82\u0d9c\u0dba\u0d9a\u0dca \u0d85\u0dc4\u0dd4\u0dbd\u0db1\u0dc0\u0dcf \u0dc4\u0ddd CPU \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0db4\u0dd9\u0dbb\u0db1\u0dd2\u0db8\u0dd2.

\n", "

Get a random sample

\n": "

\u0d85\u0dc4\u0db9\u0dd4\u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd2\u0dba\u0d9a\u0dca \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Get predicted mask

\n": "

\u0db4\u0dd4\u0dbb\u0ddd\u0d9a\u0dae\u0db1\u0dba\u0d9a\u0dc5 \u0dc0\u0dd9\u0dc3\u0dca \u0db8\u0dd4\u0dc4\u0dd4\u0dab \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Get predicted mask logits

\n": "

\u0db4\u0dd4\u0dbb\u0ddd\u0d9a\u0dae\u0db1\u0dba\u0d9a\u0dbb\u0db1 \u0dbd\u0daf \u0dc0\u0dd9\u0dc3\u0dca\u0db8\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0db4\u0dd2\u0dc0\u0dd2\u0dc3\u0dd4\u0db8\u0dca \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Image logging

\n": "

\u0dbb\u0dd6\u0db4\u0dbd\u0ddc\u0d9c\u0dca \u0dc0\u0dd3\u0db8

\n", "

Increment global step

\n": "

\u0d9c\u0ddd\u0dbd\u0dd3\u0dba\u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0dc0\u0dd0\u0da9\u0dd2 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8

\n", "

Initialize

\n": "

\u0d86\u0dbb\u0db8\u0dca\u0db7\u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Initialize the Carvana dataset

\n": "

\u0d9a\u0dcf\u0dbb\u0dca\u0dc0\u0dcf\u0db1\u0dcf \u0daf\u0dad\u0dca\u0dad \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0d86\u0dbb\u0db8\u0dca\u0db7 \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Initialize the model

\n": "

\u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba\u0d86\u0dbb\u0db8\u0dca\u0db7 \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Iterate through the dataset. Use _^_0_^_ to sample _^_1_^_ times per epoch.

\n": "

\u0daf\u0dad\u0dca\u0dad\u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0dc4\u0dbb\u0dc4\u0dcf \u0db1\u0dd0\u0dc0\u0dad \u0d9a\u0dbb\u0db1\u0dca\u0db1. \u0d91\u0d9a\u0dca _^_0_^_ _^_1_^_ \u0dba\u0dd4\u0d9c\u0dba\u0d9a\u0da7 \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd2 \u0dc0\u0dda\u0dbd\u0dcf\u0dc0\u0db1\u0dca \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1.

\n", "

Learning rate

\n": "

\u0d89\u0d9c\u0dd9\u0db1\u0dd4\u0db8\u0dca\u0d85\u0db1\u0dd4\u0db4\u0dcf\u0dad\u0dba

\n", "

Log samples

\n": "

\u0dbd\u0ddc\u0d9c\u0dca\u0dc3\u0dcf\u0db8\u0dca\u0db4\u0dbd

\n", "

Loss function

\n": "

\u0db4\u0dcf\u0da9\u0dd4\u0dc1\u0dca\u0dbb\u0dd2\u0dad\u0dba

\n", "

Make the gradients zero

\n": "

\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a\u0dc1\u0dd4\u0db1\u0dca\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Move data to device

\n": "

\u0d8b\u0db4\u0dcf\u0d82\u0d9c\u0dba\u0dc0\u0dd9\u0dad \u0daf\u0dad\u0dca\u0dad \u0d9c\u0dd9\u0db1\u0dba\u0db1\u0dca\u0db1

\n", "

New line in the console

\n": "

\u0d9a\u0ddc\u0db1\u0dca\u0dc3\u0ddd\u0dbd\u0dba\u0dda\u0db1\u0dc0 \u0dbb\u0dda\u0d9b\u0dcf\u0dc0\u0d9a\u0dca

\n", "

Number of channels in the image. _^_0_^_ for RGB.

\n": "

\u0dbb\u0dd6\u0db4\u0dba\u0dda\u0db1\u0dcf\u0dbd\u0dd2\u0d9a\u0dcf \u0d9c\u0dab\u0db1. _^_0_^_ RGB \u0dc3\u0db3\u0dc4\u0dcf.

\n", "

Number of channels in the output mask. _^_0_^_ for binary mask.

\n": "

\u0db1\u0dd2\u0db8\u0dd0\u0dc0\u0dd4\u0db8\u0dca\u0d86\u0dc0\u0dbb\u0dab\u0dba\u0dda \u0db1\u0dcf\u0dbd\u0dd2\u0d9a\u0dcf \u0d9c\u0dab\u0db1. _^_0_^_ \u0daf\u0dca\u0dc0\u0dd2\u0db8\u0dba \u0d86\u0dc0\u0dbb\u0dab \u0dc3\u0db3\u0dc4\u0dcf.

\n", "

Number of training epochs

\n": "

\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0d91\u0db4\u0ddc\u0da0\u0dca \u0d9c\u0dab\u0db1

\n", "

Save the model

\n": "

\u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba\u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dca\u0db1

\n", "

Set configurations. You can override the defaults by passing the values in the dictionary.

\n": "

\u0dc0\u0dd2\u0db1\u0dca\u0dba\u0dcf\u0dc3\u0dba\u0db1\u0dca\u0dc3\u0d9a\u0dc3\u0db1\u0dca\u0db1. \u0dc1\u0db6\u0dca\u0daf\u0d9a\u0ddd\u0dc2\u0dba\u0dda \u0d85\u0d9c\u0dba\u0db1\u0dca \u0dc3\u0db8\u0dca\u0db8\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dd9\u0db1\u0dca \u0d94\u0db6\u0da7 \u0db4\u0dd9\u0dbb\u0db1\u0dd2\u0db8\u0dd2 \u0d85\u0db7\u0dd2\u0db6\u0dc0\u0dcf \u0dba\u0dcf \u0dc4\u0dd0\u0d9a\u0dd2\u0dba.

\n", "

Set models for saving and loading

\n": "

\u0d89\u0dad\u0dd2\u0dbb\u0dd2\u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0dc4 \u0db4\u0dd0\u0da7\u0dc0\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0d86\u0d9a\u0dd8\u0dad\u0dd2 \u0dc3\u0d9a\u0dc3\u0db1\u0dca\u0db1

\n", "

Sigmoid function for binary classification

\n": "

\u0daf\u0dca\u0dc0\u0dd2\u0db8\u0dba\u0dc0\u0dbb\u0dca\u0d9c\u0dd3\u0d9a\u0dbb\u0dab\u0dba \u0dc3\u0db3\u0dc4\u0dcf \u0dc3\u0dd2\u0d9c\u0dca\u0db8\u0ddd\u0dba\u0dd2\u0da9\u0dca \u0dc1\u0dca\u0dbb\u0dd2\u0dad\u0dba

\n", "

Start and run the training loop

\n": "

\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dbd\u0dd6\u0db4\u0dba \u0d86\u0dbb\u0db8\u0dca\u0db7 \u0d9a\u0dbb \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Take an optimization step

\n": "

\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0dd2\u0d9a\u0dbb\u0dab\u0db4\u0dd2\u0dba\u0dc0\u0dbb\u0d9a\u0dca \u0d9c\u0db1\u0dca\u0db1

\n", "

Track the loss

\n": "

\u0d85\u0dbd\u0dcf\u0db7\u0dba\u0dbd\u0dd4\u0dc4\u0dd4\u0db6\u0db3\u0dd2\u0db1\u0dca\u0db1

\n", "

Train the model

\n": "

\u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "Code for training a U-Net model on Carvana dataset.": "\u0d9a\u0dcf\u0dbb\u0dca\u0dc0\u0dcf\u0db1\u0dcf \u0daf\u0dad\u0dca\u0dad \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0db4\u0dd2\u0dc5\u0dd2\u0db6\u0db3 U-Net \u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba\u0d9a\u0dca \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0d9a\u0dda\u0dad\u0dba.", "Training a U-Net on Carvana dataset": "\u0d9a\u0dcf\u0dbb\u0dca\u0dc0\u0dcf\u0db1\u0dcf \u0daf\u0dad\u0dca\u0dad \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0db4\u0dd2\u0dc5\u0dd2\u0db6\u0db3 \u0dba\u0dd6-\u0db1\u0dd9\u0da7\u0dca \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8" }