padmalcom / Real-Time-Voice-Cloning-German

German model for https://github.com/CorentinJ/Real-Time-Voice-Cloning
Other
34 stars 6 forks source link

Permission Denied #23

Open sponi78 opened 1 year ago

sponi78 commented 1 year ago

Hallo, Buch seite 60, Visdom gestartet und dann den Befehl ausgeführt, bekomme ich einen Permission denied Fehler: clean_data_root: D:\py\de_DE\SV2TTS\encoder models_dir: encoder\saved_models vis_every: 10 umap_every: 100 save_every: 500 backup_every: 7500 force_restart: False visdom_server: http://localhost no_visdom: False

No model "my_run" found, starting training from scratch. Updating the visualizations every 10 steps. Setting up a new session... Traceback (most recent call last): File "encoder_train.py", line 46, in train(**vars(args)) File "c:\Users\knupp\py\Real-Time-Voice-Cloning-German\encoder\train.py", line 60, in train vis.log_dataset(dataset) File "c:\Users\knupp\py\Real-Time-Voice-Cloning-German\encoder\visualizations.py", line 85, in log_dataset dataset_string += "\n" + dataset.get_logs() File "c:\Users\knupp\py\Real-Time-Voice-Cloning-German\encoder\data_objects\speaker_verification_dataset.py", line 29, in get_logs with log_fpath.open("r") as log_file: File "C:\Users\knupp\anaconda3\envs\rtvc\lib\pathlib.py", line 1222, in open return io.open(self, mode, buffering, encoding, errors, newline, File "C:\Users\knupp\anaconda3\envs\rtvc\lib\pathlib.py", line 1078, in _opener return self._accessor.open(self, flags, mode) PermissionError: [Errno 13] Permission denied: 'D:\py\de_DE\SV2TTS\encoder\de_DE_by_book_mix_info.txt'

padmalcom commented 1 year ago

Hi, da stimmt was mit den Pfadtrennzeichen nicht. Wenn du dir die letzte Zeile anschaust, siehst du folgenden Pfad: "D:\py\de_DE\SV2TTS\encoder\de_DE_by_book_mix_info.txt". Die Trennzeichen zwischen "de_DE", "by_book", "mix" und "info.txt" sind Unterstriche, müssten aber "\" sein.

sponi78 commented 1 year ago

Problem erkannt, was aber ist die Lösung? Ich hab nichts am Quellcode geändert, ich bin nur der Anleitung aus dem Buch gefolgt.

padmalcom commented 1 year ago

Okay, ich vermute, dass es sich dabei um eine Datei in den Trainingsdaten handelt, die einen unüblichen Namen trägt (siehe Anfang von 3.3.6). Kannst du mal prüfen, ob da irgendwo eine ".info.txt" liegt (die mit einem Punkt beginnt)? Falls ja lösch diese gerne mal. Ich habe außerdem eine Prüfung in speaker_verification_dataset.py eingefügt, die sicherstellt, dass die Logs nur gelesen werden, wenn die Datei existiert. Update die Datei gerne mal aus Github.

sponi78 commented 1 year ago

ich habe ein paar ._info.txt Dateien gefunden und gelöscht. Nach dem Ausführen visdom und dann python encoder_train.py my_run D:\Datasets\SV2TTS\encoder kommt: (rtvc) C:\Users\knupp\py\Real-Time-Voice-Cloning-German>python encoder_train.py my_run D:\Datasets\SV2TTS\encoder Arguments: run_id: my_run clean_data_root: D:\Datasets\SV2TTS\encoder models_dir: encoder\saved_models vis_every: 10 umap_every: 100 save_every: 500 backup_every: 7500 force_restart: False visdom_server: http://localhost no_visdom: False

Found existing model "my_run", loading it and resuming training. Traceback (most recent call last): File "encoder_train.py", line 46, in train(vars(args)) File "C:\Users\knupp\py\Real-Time-Voice-Cloning-German\encoder\train.py", line 47, in train checkpoint = torch.load(state_fpath) File "C:\Users\knupp\anaconda3\envs\rtvc\lib\site-packages\torch\serialization.py", line 809, in load return _load(opened_zipfile, map_location, pickle_module, pickle_load_args) File "C:\Users\knupp\anaconda3\envs\rtvc\lib\site-packages\torch\serialization.py", line 1172, in _load result = unpickler.load() File "C:\Users\knupp\anaconda3\envs\rtvc\lib\site-packages\torch\serialization.py", line 1142, in persistent_load typed_storage = load_tensor(dtype, nbytes, key, _maybe_decode_ascii(location)) File "C:\Users\knupp\anaconda3\envs\rtvc\lib\site-packages\torch\serialization.py", line 1116, in load_tensor wrap_storage=restore_location(storage, location), File "C:\Users\knupp\anaconda3\envs\rtvc\lib\site-packages\torch\serialization.py", line 217, in default_restore_location result = fn(storage, location) File "C:\Users\knupp\anaconda3\envs\rtvc\lib\site-packages\torch\serialization.py", line 182, in _cuda_deserialize device = validate_cuda_device(location) File "C:\Users\knupp\anaconda3\envs\rtvc\lib\site-packages\torch\serialization.py", line 166, in validate_cuda_device raise RuntimeError('Attempting to deserialize object on a CUDA ' RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.

Meine Ordnerstruktur sieht übrigens so aus:

D:\Datastets.....\de_DE_by_book_mix_info.txt aus

padmalcom commented 1 year ago

Hi, der Fehler ist ein bisschen merkwürdig. Trainierst du dein Modell auf einer GPU (mit CUDA) oder auf deiner CPU? Kannst du mal versuchen, den Ordner my_run umzubenennen bzw. zu löschen, falls du ihn nicht mehr brauchst? Der Fehler (2. Zeile von unten) ist ja relativ klar formuliert, nur verstehe ich nicht, wie es konfigurativ möglich ist, ein Objekt auf ein CUDA Device zu bekommen, ohne dass CUDA verfügbar ist.