If I run your code, I get the valid error:
RuntimeError: output with shape [1, 334, 690] doesn't match the broadcast shape [3, 334, 690]

which is thrown, since Grayscale returns a single-channel image, while Normalize uses three values.
Fixing the mean and std to a single value, yields valid output tensors of shape [batch_size, 1, 334, 690].