import torch
from torch import nn
from torch.utils.data import DataLoader

from rcome.optim_tools.rsgd import RSGD

# loading dataset
X, Y = data_loader.load_corpus(dataset_name, directed)
# define organisation of data
...

# otpimisation instanciation
manifold = PoincareBallExact
optimizer = RSGD(model_parameters, learning_rate, manifold)

# learning loop
for i in range(total_iteration):
    for x, y in dataloader:

        optimizer.zero_grad()
        # define the loss
        ...
        loss.backward()
        optimizer.step()
ec0debfe29e830b86b9fc6044c9a66cbd656c798
<mask token>

<mask token>
...
<mask token>
for i in range(total_iteration):
    for x, y in dataloader:
        optimizer.zero_grad()
        ...
        loss.backward()
        optimizer.step()

<mask token>
X, Y = data_loader.load_corpus(dataset_name, directed)
...
manifold = PoincareBallExact
optimizer = RSGD(model_parameters, learning_rate, manifold)
for i in range(total_iteration):
    for x, y in dataloader:
        optimizer.zero_grad()
        ...
        loss.backward()
        optimizer.step()

import torch
from torch import nn
from torch.utils.data import DataLoader
from rcome.optim_tools.rsgd import RSGD
X, Y = data_loader.load_corpus(dataset_name, directed)
...
manifold = PoincareBallExact
optimizer = RSGD(model_parameters, learning_rate, manifold)
for i in range(total_iteration):
    for x, y in dataloader:
        optimizer.zero_grad()
        ...
        loss.backward()
        optimizer.step()

import torch
from torch import nn
from torch.utils.data import DataLoader

from rcome.optim_tools.rsgd import RSGD

# loading dataset
X, Y = data_loader.load_corpus(dataset_name, directed)
# define organisation of data
...

# otpimisation instanciation
manifold = PoincareBallExact
optimizer = RSGD(model_parameters, learning_rate, manifold)

# learning loop
for i in range(total_iteration):
    for x, y in dataloader:

        optimizer.zero_grad()
        # define the loss
        ...
        loss.backward()
        optimizer.step()