|
import torch.nn as nn
|
|
import torch.nn.functional as F
|
|
|
|
|
|
class SdfMlp(nn.Module):
|
|
def __init__(self, input_dim, hidden_dim=512, bias=True):
|
|
super().__init__()
|
|
self.input_dim = input_dim
|
|
self.hidden_dim = hidden_dim
|
|
|
|
self.fc1 = nn.Linear(input_dim, hidden_dim, bias=bias)
|
|
self.fc2 = nn.Linear(hidden_dim, hidden_dim, bias=bias)
|
|
self.fc3 = nn.Linear(hidden_dim, 4, bias=bias)
|
|
|
|
|
|
def forward(self, input):
|
|
x = F.relu(self.fc1(input))
|
|
x = F.relu(self.fc2(x))
|
|
out = self.fc3(x)
|
|
return out
|
|
|
|
|
|
class RgbMlp(nn.Module):
|
|
def __init__(self, input_dim, hidden_dim=512, bias=True):
|
|
super().__init__()
|
|
self.input_dim = input_dim
|
|
self.hidden_dim = hidden_dim
|
|
|
|
self.fc1 = nn.Linear(input_dim, hidden_dim, bias=bias)
|
|
self.fc2 = nn.Linear(hidden_dim, hidden_dim, bias=bias)
|
|
self.fc3 = nn.Linear(hidden_dim, 3, bias=bias)
|
|
|
|
def forward(self, input):
|
|
x = F.relu(self.fc1(input))
|
|
x = F.relu(self.fc2(x))
|
|
out = self.fc3(x)
|
|
|
|
return out
|
|
|
|
|