code: def get_actns(learn, hook:Hook, dl:DataLoader, pool=AdaptiveConcatPool2d, pool_dim:int=4, **kwargs):
          "Gets activations at the layer specified by `hook`, applies `pool` of dim `pool_dim` and concatenates"
          print('Getting activations...')
  
          actns = []
          learn.model.eval()
          with torch.no_grad():
              for (xb,yb) in progress_bar(dl):
                  learn.model(xb)
                  actns.append((hook.stored).cpu())
  
          if pool:
              pool = pool(pool_dim)
              return pool(torch.cat(actns)).view(len(dl.x),-1)
          else: return torch.cat(actns).view(len(dl.x),-1f get_actns(learn, hook:Hook, dl:DataLoader, pool=AdaptiveConcatPool2d, pool_dim:int=4, **kwargs):
          "Gets activations at the layer specified by `hook`, applies `pool` of dim `pool_dim` and concatenates"
          print('Getting activations...')
  
          actns = []
          learn.model.eval()
          with torch.no_grad():
              for (xb,yb) in progress_bar(dl):
                  learn.model(xb)
                  actns.append((hook.stored).cpu())
  
          if pool:
              pool = pool(pool_dim)
              return pool(torch.cat(actns)).view(len(dl.x),-1)
          else: return torch.cat(actns).view(len(dl.x),-1)
docs: Gets activations at the layer specified by `hook`, applies `pool` of dim `pool_dim` and concatenates