Repository: pykeen/pykeen
Issue: IndexError: list index out of range when 
Root cause: Validation Gap

### Describe the bug

I have trained a model, saved it to a directory, and now I want to run it somewhere else.
When I get the model up and running and input a specific head / tail pair, I get the following error:

>   File "/home/tomaz/anaconda3/lib/python3.8/site-packages/pykeen/models/predict.py", line 206, in <listcomp>
>     (relation_id, relation_label, scores[relation_id])
> IndexError: list index out of range

The same error does not occur on the same machine and session where I trained the model (so no save to directory and load).
I get the following warning, which might be relevant:

> Calculations will fall back to using the score_hrt method, since this model does not have a specific score_r function. This might cause the calculations to take longer than necessary.

So the error only occurs on a separate machine where I want to load the training model and the triples factory and then run predictions in a docker service. I did the training on 

### How to reproduce

I have a custom dataset, so I will skip constructing the TriplesFactory

```
from pykeen.triples import TriplesFactory

tf = TriplesFactory.from_labeled_triples(
  data[["source", "type", "target"]].values
)

training, testing, validation = tf.split([.8, .1, .1])

from pykeen.pipeline import pipeline

result = pipeline(
    training=training,
    testing=testing,
    validation=validation,
    model='RotatE',
    stopper='early',
    epochs=1,
    dimensions=512,
    random_seed=420
)

result.save_to_directory('first_version')
```

This is basically how I train my model, then I want to use it my in service:

```
# Couldn't load it from binary due to a separate issue, so I constructed the tf again identical as before training
tf = TriplesFactory.from_labeled_triples(
  data[["source", "type", "target"]].values
)

my_pykeen_model = torch.load('first_version/trained_model.pkl')
result = get_relation_prediction_df(my_pykeen_model, head, tail, triples_factory=tf)
```

### Environment

Google Colab ENV

| Key             | Value                    |
|-----------------|--------------------------|
| OS              | posix                    |
| Platform        | Linux                    |
| Release         | 5.4.144+                 |
| Time            | Wed Jan  5 20:04:35 2022 |
| Python          | 3.7.12                   |
| PyKEEN          | 1.6.1-dev                |
| PyKEEN Hash     | UNHASHED                 |
| PyKEEN Branch   |                          |
| PyTorch         | 1.10.0+cu111             |
| CUDA Available? | false                    |
| CUDA Version    | 11.1                     |
| cuDNN Version   | 8005                     |

Service environment:

| Key             | Value                    |
|-----------------|--------------------------|
| OS              | posix                    |
| Platform        | Linux                    |
| Release         | 5.11.0-41-generic        |
| Time            | Wed Jan  5 21:09:28 2022 |
| Python          | 3.8.8                    |
| PyKEEN          | 1.6.1-dev                |
| PyKEEN Hash     | UNHASHED                 |
| PyKEEN Branch   |                          |
| PyTorch         | 1.10.1+cu102             |
| CUDA Available? | false                    |
| CUDA Version    | 10.2                     |
| cuDNN Version   | 7605                     |

### Additional information

The issue is not that I use whole tf instead of just the training tf as it works on in Google Colab where I trained the model. There is something else, my naive mind is looking at 

> Calculations will fall back to using the score_hrt method, since this model does not have a specific score_r function. This might cause the calculations to take longer than necessary.

But I have no idea. Btw... I have installed and upgraded pykeen on Colab and locally today, so they should have the same version/commit 

Hi @tomasonjo ,

do you train the model with inverse relations, i.e., pass `create_inverse_triples=True` to the triples factory (if so, #699 could be relevant)?

No, I kind of get it that the tf for predictions has more or less relationship types than the tf for training, which shouldn't really be true. I'll wait for 1.7.0 and try to load the tf from binary path, but it should be identical. I'll train it locally instead of google colab and test it out.

Was some weird bug during transfer of TF data.