Konfigurowanie zestawu CNTK w systemie Windows
Jeśli chcesz utworzyć ręcznie kod CNTK na podstawie kodu źródłowego w systemie Windows przy użyciu programu Visual Studio 2017, ta strona jest dla Ciebie.
Jeśli szukasz innego rodzaju obsługi konfigurowania środowiska kompilacji CNTK lub instalowania zestawu CNTK w systemie, zamiast tego należy przejść tutaj .
Uwaga
Na tej stronie założono, że próbujesz skompilować gałąź główną CNTK.
64-bitowy system operacyjny
CnTK wymaga 64-bitowej instalacji systemu Windows. Przetestowaliśmy proces kompilacji na Windows 8.1, Windows 10 i Windows Server 2012 R2 i nowszych. Inne środowiska nie są oficjalnie obsługiwane. Aby uzyskać informacje o problemach ze zgodnością, sprawdź konfigurację kompilacji i testowania CNTK Production.
Zmienne środowiskowe i składniki
Tworzenie zestawu CNTK w systemie wymaga definicji i konfiguracji różnych zmiennych środowiskowych. Na tej stronie można znaleźć omówienie zmiennych środowiskowych używanych przez kompilację CNTK systemu Windows. Ponadto ta strona zawiera omówienie wymaganych i opcjonalnych składników do kompilowania zestawu CNTK, a także ich domyślnej lokalizacji instalacji.
Visual Studio 2017
Zainstaluj program Microsoft Visual Studio 2017 dla systemu Windows. Link do pobierania można znaleźć tutaj.
Wersja Community programu Visual Studio 2017 jest wystarczająca do utworzenia zestawu CNTK.
Podczas procesu instalacji wybierz pozycję "platforma uniwersalna systemu Windows programowanie", "Programowanie aplikacji klasycznych na platformie .NET", "Programowanie aplikacji klasycznych w języku C++" i "Programowanie w języku Python":
Poza tym na ekranie poszczególnych składników upewnij się, że do instalacji dodano zestaw narzędzi "VC++ 2017 w wersji 15.4 w wersji 14.11" i "Środowisko uruchomieniowe Visual C++ dla platformy UWP":
Na koniec dodaj element "Windows 10 SDK (10.0.16299.0) dla programu Desktop C++ [x86 i x64]":
Przedistnieje instalacja programu Visual Studio 2017
Wymagany jest zestaw narzędzi "VC++ 2017 w wersji 15.4 w wersji 14.11", "Środowisko uruchomieniowe Visual C++ dla platformy UWP" i "Windows 10 SDK (10.0.16299.0) dla komputerów stacjonarnych C++ [x86 i x64]" zainstalowane w systemie. Aby otworzyć system Windows "Panel sterowania -> Programy i> funkcje" i wybierz pozycję "Visual Studio Community 2017" z listy zainstalowanych programów. Spowoduje to ponowne uruchomienie konfiguracji programu Visual Studio i umożliwi upewnienie się, że wymienione składniki są zainstalowane w systemie (zobacz ilustrację powyżej).
Uwaga
Jeśli VS2017INSTALLDIR
zmienna środowiskowa nie została ustawiona przez instalatora programu Visual Studio, ustaw ją ręcznie. Dokładny katalog instalacyjny zależy od wersji (2017 w tym przypadku) i oferty (Community, Enterprise itp.) programu Visual Studio zgodnie z następującym wzorcem: C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>
.
W przypadku programu Visual Studio 2017 Enterprise edition uruchom polecenie:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
W programie Visual Studio 2017 Community Edition uruchom polecenie:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
Git
Usługa Git jest wymagana do pracy z bazą kodu CNTK. Możesz użyć następujących narzędzi:
Git dla systemu Windows. Jest to standardowy klient wiersza polecenia dla usługi Git, którego użyjemy na tej stronie do opisania rejestracji w repozytorium CNTK.
Klient Usługi Git jest dostępny w ramach instalacji programu Visual Studio 2017. Przeczytaj wpis w blogu Zarządzanie cyklem życia aplikacji firmy Microsoft dotyczący korzystania z wbudowanego klienta Git.
Rejestrowanie w repozytorium GITHub CNTK
W tym miejscu założono, że zainstalowano usługę Git dla systemu Windows. Przyjęto założenie, że narzędzie Git zainstalowano przy użyciu opcji domyślnych w instalatorze Git (szczególnie "Użyj narzędzia Git z wiersza polecenia systemu Windows" i z włączoną opcją "Wyewidencjonuj zakończenia wiersza w stylu systemu Windows, zatwierdź zakończenia wiersza w stylu systemu UNIX" w wierszu polecenia "Konfigurowanie końców wierszy".
Utwórz klon kodu źródłowego CNTK w c:\repos\cntk
katalogu. Jeśli wolisz inną lokalizację, musisz odpowiednio dostosować polecenia.
Otwórz standardową powłokę poleceń systemu Windows i wykonaj następujące polecenie
c: && md \repos && cd \repos
git clone --recursive https://github.com/Microsoft/cntk
cd cntk
Umieszcza to cały wymagany kod źródłowy dla standardowej kompilacji w systemie. Jeśli planujesz wprowadzanie modyfikacji kodu CNTK, przeczytaj informacje na temat programowania i testowania.
Moduł podrzędny Multiverso służy do włączania funkcji DataParallelASGD na potrzeby trenowania. Jeśli nie potrzebujesz obsługi elementu DataParallelASGD, dodaj zmienną środowiskową CNTK_ENABLE_ASGD i ustaw jej wartość na false. Na przykład uruchom polecenie w wierszu polecenia, a następnie otwórz ponownie powłoki CMD i program Visual Studio, aby pobrać zmianę:
setx CNTK_ENABLE_ASGD false
Mkl
Domyślną biblioteką matematyczną CNTK jest biblioteka intel math kernel library (Intel MKL). Postępuj zgodnie z tą stroną , aby ją zainstalować
MKL-DNN
Pobierz źródło MKL-DNN i skompiluj za pomocą MKL_PATH jako ścieżki docelowej. Sprawdź instrukcje kompilacji w temacie Setup MKL-DNN on Windows (Konfigurowanie nazwy MKL-DNN w systemie Windows)
Ustaw zmienną środowiskową
MKL_PATH
na katalog, na przykład:
setx MKL_PATH c:\local\mklml-mkldnn-0.14
MS-MPI
Zainstaluj wersję 7 (7.0.12437.6) programu Microsoft MPI (MS-MPI) ze strony pobierania, oznaczoną po prostu jako "Wersja 7" w tytule strony. Kliknij przycisk Pobierz, a następnie wybierz pozycję i msmpisdk.msi
MSMpiSetup.exe
.
Zwiększyć
Wykonaj następujące kroki, aby zainstalować bibliotekę Boost w systemie:
- Pobierz i zainstaluj pakiet Boost w wersji 1.60 (potrzebujesz
msvc-14.0
plików binarnych) z tej lokalizacji pobierania w lokalizacji Sourceforge. - Ustaw zmienną środowiskową
BOOST_INCLUDE_PATH
na instalację Boost, np.:
setx BOOST_INCLUDE_PATH c:\local\boost_1_60_0-msvc-14.0
- Ustaw zmienną środowiskową
BOOST_LIB_PATH
na biblioteki Boost, np.:
setx BOOST_LIB_PATH c:\local\boost_1_60_0-msvc-14.0\lib64-msvc-14.0
- Aby zintegrować platformę testową Boost z programem Visual Studio, możesz zainstalować moduł uruchamiający testy boost w programie Visual Studio z galerii programu Visual Studio.
Protobuf
Potrzebna jest wersja narzędzia Protobuf 3.1.0 skompilowana dla zestawu CNTK. Możesz skompilować tę wersję samodzielnie lub użyć już przygotowanej (wstępnie skompilowanej) wersji protobuf 3.1.0 (opisanej na tej stronie). Jeśli chcesz utworzyć bibliotekę Protobuf dla CNTK w systemie, szczegółowe informacje można znaleźć tutaj
Pobierz plik ZIP zawierający wstępnie skompilowaną wersję narzędzia Protobuf dla CNTK z tej lokalizacji
Wyodrębnij archiwum do folderu na dysku lokalnym, np. na C:\local\protobuf-3.1.0-vs15
i ustaw zmienną środowiskową PROTOBUF_PATH
wskazującą na lokalizację, np.:
setx PROTOBUF_PATH c:\local\protobuf-3.1.0-vs15
Pakiety specyficzne dla procesora GPU
W tej sekcji opisano pakiety, które należy skonfigurować, aby cnTK korzystać z procesorów GPU FIRMY NVIDIA.
Jeśli nie zamierzasz używać żadnych procesorów GPU z CNTK i będzie polegać tylko na procesorze CPU, możesz przejść bezpośrednio do następnej sekcji ogólnej. W przeciwnym razie przejdź do tej strony.
Ustaw zmienną środowiskową CUDNN_PATH
wskazującą na lokalizację, np.:
setx CUDNN_PATH C:\local\cudnn-9.0-v7.0\cuda
Ustaw zmienną środowiskową CUB_PATH
wskazującą na lokalizację, np.:
setx CUB_PATH c:\local\cub-1.7.4\
OPCJONALNE. SWIG.
Jeśli chcesz korzystać z zestawu CNTK z poziomu języka Python, musisz zainstalować bibliotekę SWIG. SWIG jest również wymagane do tworzenia bibliotek oceny CNTK (dla języka C#/.NET lub Java).
Pobierz wersję SWIG 3.0.10
z tej witryny.
Wyodrębnij archiwum do folderu na dysku lokalnym, np. na C:\local\swigwin-3.0.10
i ustaw zmienną środowiskową SWIG_PATH
wskazującą na lokalizację, np.:
setx SWIG_PATH C:\local\swigwin-3.0.10
Szybki test instalacji: jeśli wykonano powyższe instrukcje i użyto tych samych ścieżek, polecenie dir C:\local\swigwin-3.0.10\swig.exe
zakończy się pomyślnie i wyświetli jeden plik.
OPCJONALNE. Opencv
CnTK 2.2 wymaga zainstalowania przetwarzanie obrazów open source (OpenCV), ale jest opcjonalny dla CNTK 2.3. Wykonaj tę stronę , aby uzyskać dalsze kroki.
Ustaw zmienną środowiskową OPENCV_PATH_V31
wskazującą folder kompilacji OpenCV, np.
setx OPENCV_PATH_V31 c:\local\Opencv3.1.0\build
Szybki test instalacji: jeśli powyższe instrukcje zostały wykonane i użyto tych samych ścieżek, polecenie dir C:\local\Opencv3.1.0\build
zakończy się pomyślnie.
OPCJONALNE. zlib i libzip
Jeśli planujesz skompilować czytnik obrazów CNTK , potrzebujesz bibliotek zlib i libzip .
zlib i libzip
Biblioteki ZLib i LibZip są dystrybuowane w kodzie źródłowym. Należy ponownie skompilować te pakiety. Możesz również użyć wstępnie skompilowanej wersji utworzonej dla Twojej wygody (opisanej w tej sekcji). Aby utworzyć biblioteki samodzielnie, szczegółowe instrukcje znajdziesz tutaj
Pobierz plik ZIP zawierający wstępnie skompilowaną wersję biblioteki kompresji libzip/zlib dla pliku CNTK z tej lokalizacji
Wyodrębnij archiwum do folderu na dysku lokalnym, np. na C:\local\zlib-vs15
i ustaw zmienną środowiskową ZLIB_PATH
wskazującą na lokalizację, np.:
setx ZLIB_PATH c:\local\zlib-vs15
Szybki test instalacji: jeśli wykonano powyższe instrukcje i użyto tych samych ścieżek, polecenie dir C:\local\zlib-vs15\bin
zakończy się pomyślnie i wyświetli kilka bibliotek DLL.
OPCJONALNE. Instalacja środowiska Anaconda w języku Python
Jeśli planujesz skompilowanie zestawu CNTK z obsługą języka Python, zainstaluj bibliotekę SWIG , jeśli jeszcze tego nie zrobiono. Ponadto potrzebne będzie środowisko języka Python. Do domyślnej instalacji języka Python używamy środowiska Anaconda.
Jeśli nie masz instalacji środowiska Anaconda: zainstaluj środowisko Anaconda Python dla systemu Windows.
Możesz postępować zgodnie ze standardową konfiguracją podaną w programie instalacyjnym (InstallationType=JustMe; AddToPath=Nie; RegisterPython=Nie). W poniższym założeniu założono, że język Python Anaconda3 4.1.1
został zainstalowany w programie C:\local\Anaconda3-4.1.1-Windows-x86_64
.
OPCJONALNE. Kompilacja platformy UWP CNTK
Uwaga
Nowość w CNTK w wersji 2.1.
Jeśli chcesz utworzyć bibliotekę oceny CNTK dla platformy UWP, musisz wykonać dodatkowe kroki instalacji opisane tutaj.
Środowiska języka Python CNTK
Platforma CNTK obsługuje języki Python 2.7, Python 3.5 i Python 3.6. Zalecamy utworzenie dedykowanego środowiska w instalacji języka Python do pracy z cnTK. Dzięki temu pakiety CNTK i zainstalowane pakiety pomocnicze nie będą mieć wpływu na żaden inny projekt języka Python. Udostępniamy kilka plików (yml
-files) zawierających opis wymaganych pakietów języka Python. Pakiety znajdują się w katalogu wewnątrz scripts\install\windows
klonu CNTK. Wybierz plik pasujący do docelowej wersji języka Python.
Wersja języka Python | Pod nazwą |
---|---|
Python 2.7 | conda-windows-cntk-py27-environment.yml |
Python 3.5 | conda-windows-cntk-py35-environment.yml |
Python 3.6 | conda-windows-cntk-py36-environment.yml |
Jako przykład utworzymy środowisko języka Python 3.5 w środowisku o nazwie cntk-py35
. Jeśli chcesz użyć innej nazwy środowiska, odpowiednio dostosuj poniższe kroki. Jeśli chcesz utworzyć środowisko języka Python w wersji 2.7 lub Python 3.6, dostosuj nazwę YML tak, aby odpowiadała wersji języka Python, której zamierzasz użyć.
W poniższych założeniach kod źródłowy CNTK został sklonowany z usługi GitHub do katalogu c:\repos\cntk
.
- Aby utworzyć nowe środowisko conda (np.
cntk-py35
) i aktywować je, uruchom następujące polecenia w powłoce poleceń systemu Windows:
cd C:\local\Anaconda3-4.1.1-Windows-x86_64\scripts
conda env create --file c:\repos\cntk\scripts\install\windows\conda-windows-cntk-py35-environment.yml --name cntk-py35
activate C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py35
Jeśli masz środowisko (np. cntk-py35
) możesz zaktualizować je przy użyciu najnowszych wymaganych pakietów przy użyciu następujących poleceń:
cd C:\local\Anaconda3-4.1.1-Windows-x86_64\scripts
conda env update --file c:\repos\cntk\scripts\install\windows\conda-windows-cntk-py35-environment.yml --name cntk-py35
activate C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py35
Zmienne środowiskowe CNTK dla języka Python
Przed rozpoczęciem kompilacji cnTK i skompilowania bibliotek języka Python dla CNTK należy ustawić/zdefiniować zmienne CNTK_PY.._PATH
środowiskowe i PYTHONPATH
CNTK_PY.. _PATH
Skonfiguruj zmienne środowiskowe kompilacji dla środowiska języka Python (wybierz co najmniej jedno, które ma zastosowanie):
setx CNTK_PY36_PATH [paths for your Python 3.6 environment]
setx CNTK_PY35_PATH [paths for your Python 3.5 environment]
setx CNTK_PY27_PATH [paths for your Python 2.7 environment]
Jeśli do tej pory nastąpiła instalacja, oznaczałoby to
setx CNTK_PY35_PATH C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py35
Wartość CNTK_PY36_PATH
zmiennych środowiskowych , CNTK_PY35_PATH
lub CNTK_PY27_PATH
można określić, uruchamiając polecenie w conda ..activate cmd.exe [name-or-path-of-your-environment]
PYTHONPATH
PYTHONPATH
Ustawia ścieżki do miejsc, w których język Python będzie szukał modułów do zaimportowania. Jeśli tworzysz cnTK, musisz dodać ścieżkę wyjściową procesu kompilacji do tej zmiennej środowiskowej. W przypadku sklonowania cnTK do c:\repos\cntk
tego będzie
setx PYTHONPATH c:\repos\cntk\bindings\python;%PYTHONPATH%
OPCJONALNE. Java
Aby utworzyć powiązania Języka Java dla biblioteki oceny CNTK, zainstaluj narzędzie SWIG , jeśli jeszcze tego nie zrobiono. Ponadto wymagany jest zestaw Java Development Kit (JDK). Obecnie używamy 64-bitowego zestawu JDK 8 (JDK w wersji 1.8.0_131).
Ustaw zmienną środowiskową JAVA_HOME, aby wskazywała katalog instalacji języka Java. W poniższym ustawieniu przyjęto założenie, że zainstalowano zestaw JDK 1.8.0_131 do folderu C:\local\jdk1.8.0_131:
setx JAVA_HOME "c:\local\jdk1.8.0_131"
Odinstalowywanie poprzednich wersji zestawu CNTK
Jeśli wcześniej zainstalowano dowolną wersję pakietu CNTK języka Python na maszynie, odinstaluj go, usuwając najpierw wszystkie ścieżki pokrewne CNTK w zmiennej środowiskowej PYTHONPATH. Wykonaj: echo %PYTHONPATH%
aby wyświetlić jego bieżącą wartość, a następnie użyj setx
polecenia , aby ustawić pythonPATH tak, aby ścieżki pokrewne CNTK zostały zniknęły. Jeśli to sprawia, że język PYTHONPATH jest pusty, tak czy tak.
Wykonaj dezinstalację: pip uninstall cntk
To kończy część instalacji. Kontynuujmy tworzenie CNTK
Budynek CNTK
Obecnie występuje problem ze zgodnością między narzędziami CUDA 9 i domyślnymi narzędziami VCTools w programie Visual Studio 2017. CNTK wymaga narzędzia VCTools 14.11 do kompilacji przy użyciu cudA 9. W tym celu:
- Otwórz wiersz polecenia
- wywołaj metodę "%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 -vcvars_ver=14.11
Spowoduje to ustawienie narzędzia VCTools na zgodną wersję CUDA 9. W wierszu polecenia uruchom plik CNTK.sln w katalogu głównym sklonowanego projektu CNTK z usługi GitHub. Jeśli cnTK.sln działa z domyślną niezgodną wersją NARZĘDZIA VCTools CUDA9, będą występować błędy kompilacji, takie jak "1>c:\program files\nvidia gpu computing toolkit\cuda\v9.0\include\crt/host_config.h(133): błąd krytyczny C1189: #error: -- nieobsługiwana wersja programu Microsoft Visual Studio! Obsługiwane są tylko wersje 2012, 2013, 2015 i 2017!"
W przypadku zmiany i zmiennej środowiskowej należy zamknąć wszystkie już otwarte wystąpienie programu Visual Studio. W przeciwnym razie zawartość zmienionych zmiennych środowiskowych nie zostanie odzwierciedlona w programie Visual Studio.
- Kliknij prawym przyciskiem myszy rozwiązanie CNTK w Eksplorator rozwiązań i wybierz pozycję
Properties
- W otwartym oknie wybierz
Configuration Properties
i naciśnijConfiguration Manager...
przycisk - W Configuration Manager wybierz żądaną konfigurację:
- Debugowanie lub wydawanie
- Procesor GPU lub tylko procesor CPU. Konfiguracje tylko do procesora CPU są jawnie nazwane. Wszystkie inne konfiguracje oznaczają użycie procesora GPU (tj.
Release
wydanie. Tryb włączony przez procesor GPU) - Zawsze należy wybrać konfiguracje tylko procesora CPU, jeśli nie zainstalowano składników wymaganych do konfiguracji procesora GPU
Skompiluj rozwiązanie CNTK. Składniki utworzone przez proces kompilacji są zależne od zainstalowanych wymagań wstępnych, aby uzyskać szczegółowe informacje na stronie ze szczegółami zmiennych środowiskowych systemu Windows .
Jeśli tworzysz moduły języka Python, zwróć uwagę na następujące kwestie:
- Moduły języka Python są tworzone tylko w
Release
konfiguracji - Spowoduje to skompilowanie modułu JĘZYKA Python CNTK wewnątrz
bindings\python\cntk
i utworzenie pakietu (.whl
) w podfolderzePython
folderu wyjściowego kompilacji (np.x64\Release\Python
) - Upewnij się, że ścieżka zawiera folder wyjściowy kompilacji (np.
x64\Release
), któryPYTHONPATH
zawierabindings\python
katalog. Jest to sprzeczne z konfiguracją pokazaną w przypadku instalacji pakietu Pip. W tym miejscu załadujemy moduł CNTK z klonu repozytorium CNTK, a nie jako zainstalowany pakiet w środowisku języka Python, dlatego też różnica w konfigurowaniuPYTHONPATH
programu .
Testowanie funkcji kompilacji CNTK
Aby upewnić się, że cnTK działa prawidłowo w systemie, możesz szybko uruchomić przykład z samouczka Hello world — Regresja logistyczna. Ten przykład trenuje prostą sieć i może być kierowany do użycia procesora CPU lub procesora GPU, co pomaga szybko zapewnić prawidłowe działanie CNTK.
Poniżej założono, że repozytorium CNTK zostało sklonowane do c:\repos\cntk
i build\x64\release
zostało użyte jako podkatalog kompilacji (Release).
- Otwórz wiersz polecenia
- Podaj ścieżkę do plików binarnych CNTK (za pośrednictwem zmiennej środowiskowej lub sesji wiersza polecenia przy użyciu pierwszego poniższego polecenia) i przejdź do
Tutorials\HelloWorld-LogisticRegression
katalogu:
set PATH=C:\repos\cntk\x64\release;%PATH%
cd C:\repos\cntk\Tutorials\HelloWorld-LogisticRegression
Najpierw wypróbuj przykład:
cntk configFile=lr_bs.cntk makeMode=false
Jeśli przykład zostanie uruchomiony, tj. jeśli nie ma żadnych komunikatów o błędach, najpierw otrzymasz dane wyjściowe związane z odczytaniem konfiguracji, a następnie dane wyjściowe rzeczywistego trenowania sieci.
Próba użycia zestawu CNTK z procesorem GPU
Jeśli utworzono zestaw CNTK na potrzeby użycia procesora GPU, spróbuj użyć procesora GPU, wykonując następujące polecenie:
cntk configFile=lr_bs.cntk makeMode=false deviceId=auto
Na początku danych wyjściowych powinien zostać wyświetlony wiersz potwierdzający, że użyto procesora GPU:
Model has 9 nodes. Using GPU 0.
Należy pamiętać, że identyfikator procesora GPU może być inny. Parametr deviceId
definiuje procesor używany do obliczeń.
-
deviceId=-1
oznacza użycie procesora CPU. Wartość domyślna -
deviceId=X
gdzie X jest liczbą całkowitą >=0 oznacza użycie procesora GPU X, tj.deviceId=0
oznacza procesor GPU 0 itp. -
deviceId=auto
oznacza użycie procesora GPU, wybranie procesora GPU automatycznie
Wypróbowanie interfejsu API języka Python WTK
Przyjęto założenie, że utworzono środowisko języka Python CNTK (za pomocą skryptu instalacji lub ręcznie. Otwórz wiersz polecenia i aktywuj środowisko języka Python CNTK, np. wykonując polecenie
activate cntk-py35
W ramach szybkiego testu przejdź do Tutorials\NumpyInterop
folderu i uruchom polecenie python FeedForwardNet.py
. Po trenowaniu powinny zostać wyświetlone dane wyjściowe podobne do następujących:
Finished Epoch [1]: loss = 0.297748 * 25600 2.383s (10742.8 samples per second)
error rate on an unseen minibatch 0.040000
Debugowanie kodu źródłowego CNTK w programie Visual Studio
- Jeśli chcesz używać narzędzi Python Tools, CNTK i Visual Studio, zobacz tutaj
- Aby debugować kod BrainScript w pliku CNTK za pomocą programu Visual Studio, wykonaj kroki opisane tutaj.
Współtworzenia kodu CNTK
Jeśli planujesz modyfikacje kodu, przeczytaj informacje dotyczące tworzenia i testowania.