# Cosine embedding loss

**URL:** <https://discuss.pytorch.org/t/cosine-embedding-loss/184074>\
**Category:** nlp\
**Created:** [July 12, 2023, 11:49pm UTC](https://discuss.pytorch.org/t/cosine-embedding-loss/184074 "2023-07-12T23:49:00Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anesh\_Muthiah\_A](https://discuss.pytorch.org/user_avatar/discuss.pytorch.org/anesh_muthiah_a/32/61652_2.png) [@Anesh\_Muthiah\_A](https://discuss.pytorch.org/u/Anesh_Muthiah_A)\
**Post date:** [July 12, 2023, 11:49pm UTC](https://discuss.pytorch.org/t/cosine-embedding-loss/184074/1 "2023-07-12T23:49:00Z")

</div>

I am using cosine embedding loss. This is the model

```auto
class CNN(nn.Module):
    def __init__ (self, input_size, hidden_size, num_layers, num_classes):
        super(CNN, self). __init__ ()
        
        self.num_layers = num_layers
        self.hidden_size = hidden_size
        #self.hidden_size2-hidden_size2
        
        # 1D Convolutional layers
        self.cnn1 = nn.Conv1d(input_size, hidden_size, kernel_size=5, stride=1, padding=1)

        self.dropout=nn.Dropout(0.3)
        # Max pooling layer
        self.maxpool = nn.MaxPool1d(kernel_size=2, stride=1)
        # LSTM layer
       
        # Fully connected layer
        self.fc1 = nn.Linear(864, 128)
 
        self.act1=nn.ReLU()
        self.cnn=torch.nn.Sequential(self.cnn1,self.act1,self.maxpool)

        #self.act2=nn.Tanh()
# self.act3=nn.ReLU()
# self.act4=nn.Tanh()
# self.act5=nn.Tanh()
        
    def forward(self, inp1,inp2):

        out1=self.cnn(inp1.transpose(1, 2))
        out2=self.cnn(inp2.transpose(1, 2))
        
        
        out1 = out1.transpose(1, 2) # Transpose back to (batch_size, sequence_length, channels)
        out2 = out2.transpose(1, 2)
        out1=torch.reshape(out1,(out1.size(0),-1))
        out2=torch.reshape(out2,(out2.size(0),-1))
        #print(out1)

        # Fully connected layer
        emb1 = self.fc1(out1) # Use the last timestep's output
        emb2 = self.fc1(out2)

        return emb1,emb2

```

I am getting nan from the output of the cnn. It was working first but then it is giving nan. Please help me solve this
