Файл Sh не запускает команду, запускающую файл .py с некоторыми аргументами внутри цикла for.Linux

Ответить
Anonymous
 Файл Sh не запускает команду, запускающую файл .py с некоторыми аргументами внутри цикла for.

Сообщение Anonymous »


Я пытаюсь запустить аналогичные команды Linux, которые запускают inference.py с различными аргументами несколько раз, используя цикл for в файле .sh.

Дерево каталогов выглядит следующим образом:


Изображение


Мой код для inference.sh выглядит следующим образом:

#!/bin/sh face_dir="примеры/лицо" audio_dir="примеры/аудио" results_dir="результаты" mkdir -p "$results_dir" face_files="$face_dir"/*.mp4 audio_files="$audio_dir"/*.wav для face_file в $face_files; делать для audio_file в $audio_files; делать face_name=$(базовое имя "$face_file".mp4) audio_name=$(базовое имя "$audio_file".wav) result_filename="$face_name"_"$audio_name".mp4 echo "face_file: $face_file" echo "аудио_файл: $audio_file" echo "Путь_результата: $results_dir/$result_filename" python3 inference.py --face "$face_file" \ --audio "$audio_file" \ --outfile "$results_dir/$result_filename" сделанный сделанный Часть inference.py выглядит следующим образом:

#!/usr/bin/python3 импортировать numpy как np импортировать cv2, os, sys, подпроцесс, платформу, факел из tqdm импортировать tqdm из изображения импорта PIL из scipy.io импортировать загрузочный материал sys.path.insert(0, 'третья_часть') sys.path.insert(0, 'третья_часть/GPEN') sys.path.insert(0, 'третья_часть/GFPGAN') # извлечение 3dmm из Third_part.face3d.util.preprocess импорт align_img из Third_part.face3d.util.load_mats импортируйте load_lm3d из Third_part.face3d.extract_kp_videos импортировать KeypointExtractor # улучшение лица из Third_part.GPEN.gpen_face_enhancer импортировать FaceEnhancement из Third_part.GFPGAN.gfpgan импорт GFPGAner # контроль выражения из Third_part.ganimation_redicate.model.ganimation импортировать GANimationModel из утилит импортировать аудио из utils.ffhq_preprocess импортировать Croper из utils.alignment_stit импортируйте Crop_faces, Calc_alignment_coefficients, Paste_image из utils.inference_utils import Laplacian_Pyramid_Blending_with_mask, face_detect, load_model, options, Split_coeff, \ trans_image, Transform_semantic, find_crop_norm_ratio, load_face3d_net, exp_aus_dict импортировать предупреждения alerts.filterwarnings("игнорировать") распечатать(1) аргументы = параметры() защита основной(): print("Работа выполнена успешно") устройство = 'cuda', если torch.cuda.is_available(), иначе 'процессор' print('[Информация] Использование {} для вывода.'.format(device)) os.madeirs(os.path.join('temp', args.tmp_dir), Exist_ok=True) ... если __name__ == '__main__': основной() Когда я запускаю inference.py с помощью

python3 inference.py --face example/face/joshua_15.mp4 --audio example/audio/joshua_17.wav --outfile results/1_12.mp4 работает хорошо.

Но когда я пытаюсь использовать цикл for в файле .sh, он терпит неудачу и зависает, как показано ниже.


Изображение


Я думаю, что по крайней мере файл .sh должен печатать «Успешно выполнено», поскольку это первая строка функции main(), но это не так.

Я ожидал, что файл .sh запустит команду с разными аргументами в соответствии с циклом for (= запустит все комбинации лица и звука в файле inference.py) с этим sh-кодом, но это просто застревает на первом испытании, как я уже упоминал выше. Я пытался изменить некоторые строки кода, но все они оказались неудачными.

Если моего описания недостаточно, дайте мне знать.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»