It works on my install. Are you on version 0.1.12? That might explain why since broadcasting is introduced in 0.2.0.
I’d recommend to update since 0.1.12 is quite old. However, this should work on your version: Variable(torch.randn(4)).unsqueeze(1).expand(4,3)*Variable(torch.randn(4, 3))