You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
In my execution:
compiler.import_onnx(model_content, import_options)
Encountered an error:
Process terminated. Assertion Failed
So I checked the model structure and annotated it line by line from back to front
Once x=self.fc6 (x) is commented out, it can be run. self.fc6=nn Linear (3072, 192), in ONNX format, is a Gemm operator.
I checked the list of onnx operators supported by nncase and found that there is Gemm.
To Reproduce
Command line or scripts to reproduce the behavior:
Expected behavior
I want to convert the pytorch model into a kmodel model, with the following model structure:
Origin model and code
model:
class Mymodel(nn.Module):
def __init__(self, C=1024, m=0.2, s=30, n_class=2):
super(Mymodel, self).__init__()
self.conv1 = nn.Conv1d(80, C, kernel_size=5, stride=1, padding=2)
self.relu = nn.ReLU()
self.bn1 = nn.BatchNorm1d(C)
self.layer1 = Bottle2neck(C, C, kernel_size=3, dilation=2, scale=8)
self.layer2 = Bottle2neck(C, C, kernel_size=3, dilation=3, scale=8)
self.layer3 = Bottle2neck(C, C, kernel_size=3, dilation=4, scale=8)
# I fixed the shape of the output from MFA layer, that is close to the setting from ECAPA paper.
self.layer4 = nn.Conv1d(3 * C, 1536, kernel_size=1)
self.attention = nn.Sequential(
nn.Conv1d(4608, 256, kernel_size=1),
nn.ReLU(),
nn.BatchNorm1d(256),
nn.Tanh(), # I add this layer
nn.Conv1d(256, 1536, kernel_size=1),
nn.Softmax(dim=2),
)
self.bn5 = nn.BatchNorm1d(3072)
self.fc6 = nn.Linear(3072, 192)
self.bn6 = nn.BatchNorm1d(192)
def forward(self, x):
x = self.conv1(x)
x = self.relu(x)
x = self.bn1(x)
x1 = self.layer1(x)
x2 = self.layer2(x + x1)
x3 = self.layer3(x + x1 + x2)
x = self.layer4(torch.cat((x1, x2, x3), dim=1))
x = self.relu(x)
t = x.size()[-1]
global_x = torch.cat((x, torch.mean(x, dim=2, keepdim=True).repeat(1, 1, t),
torch.sqrt(torch.var(x, dim=2, keepdim=True).clamp(min=1e-4)).repeat(1, 1, t)), dim=1)
w = self.attention(global_x)
mu = torch.sum(x * w, dim=2)
sg = torch.sqrt((torch.sum((x ** 2) * w, dim=2) - mu ** 2).clamp(min=1e-4))
x = torch.cat((mu, sg), 1)
x = self.bn5(x)
x = self.fc6(x) # This is where the error occurred,after I annotate the code here and after, it will work fine
x = self.bn6(x)
return x
Describe the bug
In my execution:
compiler.import_onnx(model_content, import_options)
Encountered an error:
Process terminated. Assertion Failed
So I checked the model structure and annotated it line by line from back to front
Once x=self.fc6 (x) is commented out, it can be run. self.fc6=nn Linear (3072, 192), in ONNX format, is a Gemm operator.
I checked the list of onnx operators supported by nncase and found that there is Gemm.
To Reproduce
Command line or scripts to reproduce the behavior:
Expected behavior
I want to convert the pytorch model into a kmodel model, with the following model structure:
Origin model and code
model:
code:
Environment (please complete the following information):
The text was updated successfully, but these errors were encountered: