1. Ustal stan przed kliknięciem ponownego uruchomienia
Przestań dodawać pracę i sprawdź, czy żadne uruchomienie tego samego wsadu nie jest jeszcze aktywne. Utracone połączenie nie zawsze oznacza, że program się zatrzymał. Sprawdź jego stan, gdy to możliwe: uruchomienie drugiej kopii może tworzyć duplikaty lub zapisywać w tych samych miejscach docelowych.
Zachowaj dziennik, listę plików wejściowych, ustawienia i komunikat błędu. Zrób kopię tabeli śledzenia, zanim ją poprawisz. Trzymaj wątpliwe wyniki w osobnym miejscu, nie nadpisując oryginałów ani wyników już zaakceptowanych. Jeśli miejsce docelowe jest pełne, przygotuj wolne miejsce lub inne miejsce docelowe po ustaleniu, co należy zachować.
2. Nadaj każdemu elementowi stałą tożsamość
Jeden wiersz powinien odpowiadać jednemu oczekiwanemu zadaniu, na przykład IMG-017 powiązany z catalogue/chaise-face.png. Sama ścieżka może stać się niejednoznaczna po przeniesieniu; krótka nazwa, taka jak photo.png, może istnieć w kilku folderach. Zachowaj unikalny identyfikator i powiązanie z pierwotnym wejściem.
Dodaj identyfikator konfiguracji, ścieżkę wyjściową, stan, numer próby i krótki powód. Ten dziennik może być zwykłą tabelą lub plikiem CSV w Twoim projekcie. Nie musi zawierać obrazów, haseł ani całego technicznego dziennika maszyny. Człowiek powinien móc odnaleźć właściwy wpis i wyjaśnić, dlaczego znajduje się we wznowieniu.
Nie modyfikuj oryginału kryjącego się za już zaakceptowanym identyfikatorem. Nowy wpis lub inna transformacja wymaga nowej, wyraźnie oznaczonej wersji. W przeciwnym razie ten sam identyfikator zacząłby oznaczać dwa niekompatybilne zadania, a dziennik nie pozwalałby już zdecydować, co jest ukończone.
| ID | Konfiguracja | Stan | Wynik lub powód |
|---|---|---|---|
| IMG-017 | essai-02 | Zaakceptowane | IMG-017.png otwarty i sprawdzony |
| IMG-018 | essai-02 | Do sprawdzenia | Plik obecny, kontrola nieukończona |
| IMG-019 | essai-02 | Niepowodzenie | Brak pamięci podczas przetwarzania |
| IMG-020 | essai-02 | Do zrobienia | Nie znaleziono żadnego oczekiwanego wyniku |
3. Porównaj dziennik z rzeczywistymi plikami
Dla każdego zaplanowanego identyfikatora poszukaj oczekiwanego wyniku. Sprawdź format, wymiary lub zawartość niezbędną do Twojego użycia, a następnie otwórz plik w docelowym narzędziu. Wyniki już zaakceptowane i wciąż obecne pozostają poza listą wznowienia. Jeśli wynik brakuje, a dziennik mówi „zaakceptowany”, najpierw poszukaj zachowanej kopii, zanim zdecydujesz o ponownym obliczeniu.
Zaklasyfikuj elementy „w toku” w momencie zatrzymania wśród tych do sprawdzenia. Niektóre mogą być kompletne, inne tylko częściowe. Data lub rozmiar pliku to wskazówka, a nie potwierdzenie. Dodatkowy plik bez znanego identyfikatora pozostaje na osobności, dopóki nie odnajdziesz jego pochodzenia.
W przypadku obrazów Pillow rozróżnia identyfikację pliku, odczyt jego pikseli i weryfikację jego struktury. Program, który poprzestaje na otwarciu nagłówka, nie sprawdza więc wszystkiego. Automatyczna kontrola może wykryć niektóre uszkodzenia; nie ocenia jednak, czy tekst jest czytelny ani czy kolory odpowiadają dostarczanemu materiałowi.
4. Oddziel niekompletny element od odrzuconego wyniku
Częściowy wynik należy powtórzyć lub przywrócić z kompletnej kopii. Kompletny, ale nieakceptowalny wynik wymaga najpierw zrozumienia wady. Ponowne uruchomienie tych samych parametrów na nieczytelnym wejściu lub na przypadku, któremu systematycznie brakuje pamięci, prawdopodobnie powtórzy problem. Zapisz poprawkę, zanim ponownie umieścisz ten identyfikator w kolejce.
Trzymaj nieliczne stany: do zrobienia, w toku, do sprawdzenia, zaakceptowany i niepowodzenie. Przejście do „zaakceptowany” następuje po kontroli, a nie w momencie uruchomienia obliczeń. Jeśli zdecydujesz się wykluczyć wpis, dodaj stan „odrzucony” z powodem i uzgodnieniem istotnym dla projektu. Nie powinien on zniknąć po cichu z oczekiwanej sumy.
Nie licz nowej próby jako nowego zadania. IMG-019 może mieć trzy próby i tylko jeden zachowany wynik. To rozróżnienie pozwala uniknąć mylenia sześćdziesięciu uruchomień z sześćdziesięcioma różnymi dostarczonymi materiałami.
Przykład: odnalezienie dziewiętnastu wciąż potrzebnych elementów
Ten ilustracyjny scenariusz dotyczy sześćdziesięciu niezależnych obrazów. Po przerwaniu i kontroli czterdzieści jeden wyników jest zaakceptowanych, cztery są częściowe, sześć zakończyło się niepowodzeniem, a dziewięciu brakuje. Dziennik obejmuje 41 + 4 + 6 + 9 = 60 identyfikatorów. Wznowienie dotyczy dziewiętnastu elementów, pod warunkiem że zajmiesz się przyczynami sześciu niepowodzeń.
Osoba odpowiedzialna odtwarza listę dziewiętnastu identyfikatorów, a następnie rozróżnia cztery pliki częściowe, sześć błędów i dziewięć zadań bez wyniku. Najpierw podejmuje ponownie jeden poprawiony wpis i jeden brakujący wpis. Potwierdza też, że obraz już zaakceptowany nie znajduje się w wyborze. Ta niewielka kontrola zatwierdza listę przed dalszym przetwarzaniem.
Jeśli później zostanie zaakceptowanych osiemnaście dodatkowych elementów, a jeden plik źródłowy pozostanie nieczytelny, bilans wynosi pięćdziesiąt dziewięć zaakceptowanych i jedną wyjaśnioną porażkę. Partia nie zostaje uznana za kompletną przy sześćdziesięciu. Następny wybór polega na odnalezieniu poprawnego wpisu lub zatwierdzeniu jego wykluczenia, a nie na ukryciu wiersza.
| Stan po kontroli | Liczba identyfikatorów | Proponowane przetwarzanie |
|---|---|---|
| Zaakceptowane i wynik odnaleziony | 41 | Zachować; bez ponawiania |
| Wynik częściowy | 4 | Odłożyć na bok, potem powtórzyć |
| Zidentyfikowany błąd | 6 | Napraw przyczynę przed ponowną próbą |
| Brak wyniku | 9 | Wznowić od wpisu |
| Razem do powtórzenia | 19 | 4 + 6 + 9, bez duplikatów |
5. Utwórz wznowienie w osobnym miejscu
Przygotuj folder wznowienia zawierający wyłącznie wybrane identyfikatory lub użyj jawnego wyboru w swoim programie. Przejrzyj listę przed uruchomieniem. Jeśli narzędzie proponuje „ignoruj istniejące pliki”, sprawdź, co to oznacza: istnienie pliku częściowego może spowodować jego błędne pominięcie. Zweryfikowany dziennik pozostaje twoim punktem odniesienia.
Nowe wyniki generuj w osobnym folderze, wraz z ich konfiguracją i numerem próby. Zatwierdź je, zanim zastąpisz poprzednią wersję. Niektóre skrypty mogą nadpisać istniejący plik bez pytania o potwierdzenie; Python dokumentuje to między innymi dla os.replace. Konwencja nazewnictwa sama w sobie nie chroni przed nadpisaniem.
Jeśli ustawienia zmieniają się w celu naprawienia wady, pozostaw tę zmianę widoczną. Możesz zachować wyniki pochodzące z dwóch konfiguracji, jeśli spełniają te same kryteria i jeśli ich połączenie jest akceptowalne dla projektu. W przypadku wizualnie jednorodnej serii porównaj także nowe wyniki ze starymi, zanim połączysz foldery.
6. Sprawdź bilans według identyfikatora, nie tylko według ilości
Na końcu każdy oczekiwany identyfikator musi mieć wyjaśniony stan. Dwie kopie IMG-017 nie rekompensują braku IMG-020. Sprawdź unikalność nazw, zgodność z wpisami i konfigurację zatwierdzonych wyników. Otwórz poprawione pliki i skontroluj punkty, które były powodem ich ponownego wykonania.
Ukończony folder zawiera zaakceptowane wyniki, zaktualizowany dziennik, ustawienia oraz listę ewentualnych elementów odrzuconych lub wciąż zablokowanych. Zapisz ten zestaw wraz ze zweryfikowaną kopią. Wiersz „zaakceptowane” nie zastępuje ani pliku, ani jego kopii zapasowej.
Ta metoda wznawia niezależne zadania od ich wpisu. Nie pozwala automatycznie kontynuować symulacji, renderowania ani treningu od dokładnej instrukcji zatrzymania. Takie prace wymagają stanu wznowienia właściwego dla danego programu. Nie zakładaj też, że folder pozostawiony w wynajętym środowisku zostanie zachowany po zakończeniu okresu: przygotuj własną kopię.