Could you change the following line and try it again?
epoch_acc = running_corrects.float() / data_sizes[phase]

On my machine running_corrects was a LongTensor and therefore returned a 0 after the division.