Adding to what @ptrblck said, one way to add new layers to a pretrained resnet34 model would be the following:

Write a custom nn.Module, say MyNet

Include a pretrained resnet34 instance, say myResnet34, as a layer of MyNet

Add your fc_* layers as other layers of MyNet

In the forward function of MyNet, pass the input successively through myResnet34 and the various fc_* layers, in order.

And one way to get the output of fc_4 is to just return it from the forward function, along with the output of the last layer, as, say, a tuple.
The key to solving this problem is to think of the entire pretrained myResnet34 as a single layer, because that is what it effectively is, in this case.
If you don’t know how to do the steps I described above, it will be well worth your while learning how to do so. The official PyTorch tutorial 1 is a good place to start.