Thank you @ LevinViana.
Here is my print statements:
 x = torch.cat(embeddings, 1)
        print("cat", x.size())
        x = self.embedding_dropout(x)
        x1 = self.cnn(image)
        print("image", x1.size())
        x2 = x_numerical
        print("numerical", x2.size())
        
        x3 = torch.cat((x1, x2), dim = 1)
        print("image+numerical", x3.size())
        x4 = torch.cat((x, x3), dim = 1)
        print("cat+image_numerical", x4.size())
        

Here is the output:
cat torch.Size([10, 69])
image torch.Size([10, 1000])
numerical torch.Size([10, 8])
image+numerical torch.Size([10, 1008])
cat+image_numerical torch.Size([10, 1077])

I don’t understand why the shapes are as they are.  If the cnn’s final layer is 1000 and I concat 77 features from the categorical and numerical features, why it errors out.
As an aside, the (1077, 1077) works.  Can you explain why it works for my knowledge?