Repository: pykeen/pykeen
Issue: How to set checkpoint and evaluation_kwargs ?
Root cause: Documentation Deficiency

Hi, I have a question.
My goal is to use the knowledge graph to embed the model training data and get the vector of each entity.
However, the data set I had to deal with was very large because I didn't know how to train faster.
1.  I set the checkpoint configuration, but after the training is interrupted, I need more memory to reload the model (.pt file), so I cannot load the interrupted training model at all.  So every time there was a break in training, I had to start train the model.
2. I don't need to evaluate after training. However, I don't know how to set the evaluation_kwargs to turn it off.
Now I need about a month to train a model, but the model evaluation has not finished after a week. 
Please help me to check my code, thank you.

This is my code.
```python
import logging
from pykeen.pipeline import pipeline
from pykeen.triples import TriplesFactory
logging.basicConfig(level=logging.DEBUG)
#%% Parameter Setting
dim = 100
epochs = 100
batch_size = 128  # 普遍128

#%% Dataset
corpus = "DBpedia"        # DBpedia DP_DBpedia
triple_tsv = "mappingbased_tsv"  # mappingbased_tsv skos_tsv

## KGEs
TRAIN_PATH = f"./data/DBpedia/KGEs_Corpus/mappingbased_tsv/train.tsv"
TEST_PATH = f"./data/DBpedia/KGEs_Corpus/mappingbased_tsv/test.tsv"
VALIDATE_PATH = f"./data/DBpedia/KGEs_Corpus/mappingbased_tsv/valid.tsv"

#%% TriplesFactory: training, testing, validation
training = TriplesFactory.from_path(
    path=TRAIN_PATH,
    create_inverse_triples=False)

testing = TriplesFactory.from_path(
    path=TEST_PATH,
    create_inverse_triples=False,
    entity_to_id=training.entity_to_id,     ## training
    relation_to_id=training.relation_to_id)

validation = TriplesFactory.from_path(
    path=VALIDATE_PATH,
    create_inverse_triples=False,
    entity_to_id=training.entity_to_id,     ## training
    relation_to_id=training.relation_to_id)

#%%
def KnowledgeGraphEmbeddings(model):
    save_path = f"./model/Embeddings/KGEs/trained_model/{corpus}_{triple_tsv}/{model}_{dim}d"
    print(f"save_path:{save_path}")
    pipeline_result = pipeline(
        # dataset='Nations',
        training=training,      # TRAIN_PATH
        testing=testing,        # TEST_PATH
        validation=validation,  # VALIDATE_PATH
        model=model,
        model_kwargs=dict(embedding_dim=dim),
        optimizer_kwargs=dict(lr=0.005),
        training_kwargs=dict(use_tqdm_batch=False,
                             batch_size=batch_size,
                             num_epochs=epochs,
                             # checkpoint_on_failure=True,
                             checkpoint_frequency=66,
                             checkpoint_directory=save_path,
                             checkpoint_name=f"{model}_{dim}d.pt"),
        evaluation_kwargs=dict(do_time_consuming_checks=False,
                               use_tqdm=False),
                               # batch_size=batch_size),
        random_seed=1688,
        device='gpu'  # cpu
        # automatic_memory_optimization=True
    )
    pipeline_result.save_to_directory(save_path)  ##
    
if __name__=="__main__":
    model = "TransE"
    KEGs.KnowledgeGraphEmbeddings(model)

```
@mberr @cthoyt 
Can you help me?

Hello，everyone can help me?

Hi @fiego, we're all busy at the moment and don't have time for support. Maybe this is a good time for us to think about having a community forum so anyone else using PyKEEN might be able to help you too. 

Hi @fiego ,

*regarding 2.*:

the `pipeline` method is a high-level method which covers most of the usual use cases, and adds convenience methods to instantiate components from given strings / configuration dictionaries.

If you need a more fine-grained control, please consider directly instantiating the necessary components. You can find a tutorial here:
https://pykeen.readthedocs.io/en/latest/tutorial/first_steps.html#beyond-the-pipeline


regarding 1) I do not have sufficient information to help you here. Some generic advise would be to check if some other process is running on your GPU, or whether you hold some reference to other GPU tensors / pytorch modules, which prohibit torch's garbage collector to reclaim the memory. You may want to check torch's FAQ about this: https://pytorch.org/docs/stable/notes/faq.html