tf.nn.softmax함수는 다음과 같이 이러한 로짓을 각 클래스에 대한확률로 변환합니다.
tf.nn.softmax(predictions).numpy()
참고:tf.nn.softmax함수를 네트워크의 마지막 레이어에 대한 활성화 함수로 베이킹할 수 있습니다. 이렇게 하면 모델 출력을 더 직접적으로 해석할 수 있지만 이 접근법은 소프트맥스 출력을 사용할 경우 모든 모델에 대해 정확하고 수치적으로 안정적인 손실 계산을 제공하는 것이 불가능하므로 권장하지 않습니다.
losses.SparseCategoricalCrossentropy를 사용하여 로짓의 벡터와True인덱스를 사용하고 각 예시에 대해 스칼라 손실을 반환하는 훈련용 손실 함수를 정의합니다.
이 손실은 실제 클래스의 음의 로그 확률과 같습니다. 모델이 올바른 클래스를 확신하는 경우 손실은 0입니다.
이 훈련되지 않은 모델은 무작위에 가까운 확률(각 클래스에 대해 1/10)을 제공하므로 초기 손실은-tf.math.log(1/10) ~= 2.3에 근접해야 합니다.
loss_fn(y_train[:1], predictions).numpy()
훈련을 시작하기 전에 KerasModel.compile을 사용하여 모델을 구성하고 컴파일합니다.optimizer클래스를adam으로 설정하고loss를 앞에서 정의한loss_fn함수로 설정합니다.metrics매개변수를accuracy로 설정하여 모델에 대해 평가할 메트릭을 지정합니다.
one@DESKTOP-G28A5LG:/mnt/c/Users/boas9$sudo apt-get install python3-pip [sudo] password for one: Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: libfwupdplugin1 libxmlb1 Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-9 dpkg-dev fakeroot g++ g++-9 gcc gcc-9 gcc-9-base libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-9-dev libgomp1 libisl22 libitm1 liblsan0 libmpc3 libpython3-dev libpython3.8-dev libquadmath0 libstdc++-9-dev libtsan0 libubsan1 linux-libc-dev make manpages-dev python-pip-whl python3-dev python3-wheel python3.8-dev zlib1g-dev Suggested packages: binutils-doc cpp-doc gcc-9-locales debian-keyring g++-multilib g++-9-multilib gcc-9-doc gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-9-multilib glibc-doc bzr libstdc++-9-doc make-doc The following NEW packages will be installed: binutils binutils-common binutils-x86-64-linux-gnu build-essential cpp cpp-9 dpkg-dev fakeroot g++ g++-9 gcc gcc-9 gcc-9-base libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-9-dev libgomp1 libisl22 libitm1 liblsan0 libmpc3 libpython3-dev libpython3.8-dev libquadmath0 libstdc++-9-dev libtsan0 libubsan1 linux-libc-dev make manpages-dev python-pip-whl python3-dev python3-pip python3-wheel python3.8-dev zlib1g-dev 0 upgraded, 50 newly installed, 0 to remove and 0 not upgraded. Need to get 52.2 MB of archives. After this operation, 228 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 binutils-common amd64 2.34-6ubuntu1.3 [207 kB] Get:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libbinutils amd64 2.34-6ubuntu1.3 [474 kB] Get:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libctf-nobfd0 amd64 2.34-6ubuntu1.3 [47.4 kB] Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libctf0 amd64 2.34-6ubuntu1.3 [46.6 kB] Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.34-6ubuntu1.3 [1613 kB] Get:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 binutils amd64 2.34-6ubuntu1.3 [3380 B] Get:7 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libc-dev-bin amd64 2.31-0ubuntu9.9 [71.8 kB] Get:8 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-libc-dev amd64 5.4.0-135.152 [1121 kB] Get:9 http://archive.ubuntu.com/ubuntu focal/main amd64 libcrypt-dev amd64 1:4.4.10-10ubuntu4 [104 kB] Get:10 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libc6-dev amd64 2.31-0ubuntu9.9 [2519 kB] Get:11 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gcc-9-base amd64 9.4.0-1ubuntu1~20.04.1 [19.4 kB] Get:12 http://archive.ubuntu.com/ubuntu focal/main amd64 libisl22 amd64 0.22.1-1 [592 kB] Get:13 http://archive.ubuntu.com/ubuntu focal/main amd64 libmpc3 amd64 1.1.0-1 [40.8 kB] Get:14 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 cpp-9 amd64 9.4.0-1ubuntu1~20.04.1 [7500 kB] Get:15 http://archive.ubuntu.com/ubuntu focal/main amd64 cpp amd64 4:9.3.0-1ubuntu2 [27.6 kB] Get:16 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libcc1-0 amd64 10.3.0-1ubuntu1~20.04 [48.8 kB] Get:17 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgomp1 amd64 10.3.0-1ubuntu1~20.04 [102 kB] Get:18 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libitm1 amd64 10.3.0-1ubuntu1~20.04 [26.2 kB] Get:19 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libatomic1 amd64 10.3.0-1ubuntu1~20.04 [9284 B] Get:20 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libasan5 amd64 9.4.0-1ubuntu1~20.04.1 [2751 kB] Get:21 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 liblsan0 amd64 10.3.0-1ubuntu1~20.04 [835 kB] Get:22 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libtsan0 amd64 10.3.0-1ubuntu1~20.04 [2009 kB] Get:23 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libubsan1 amd64 10.3.0-1ubuntu1~20.04 [784 kB] Get:24 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libquadmath0 amd64 10.3.0-1ubuntu1~20.04 [146 kB] Get:25 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libgcc-9-dev amd64 9.4.0-1ubuntu1~20.04.1 [2359 kB] Get:26 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 gcc-9 amd64 9.4.0-1ubuntu1~20.04.1 [8274 kB] Get:27 http://archive.ubuntu.com/ubuntu focal/main amd64 gcc amd64 4:9.3.0-1ubuntu2 [5208 B] Get:28 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libstdc++-9-dev amd64 9.4.0-1ubuntu1~20.04.1 [1722 kB] Get:29 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 g++-9 amd64 9.4.0-1ubuntu1~20.04.1 [8420 kB] Get:30 http://archive.ubuntu.com/ubuntu focal/main amd64 g++ amd64 4:9.3.0-1ubuntu2 [1604 B] Get:31 http://archive.ubuntu.com/ubuntu focal/main amd64 make amd64 4.2.1-1.2 [162 kB] Get:32 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libdpkg-perl all 1.19.7ubuntu3.2 [231 kB] Get:33 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 dpkg-dev all 1.19.7ubuntu3.2 [679 kB] Get:34 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 build-essential amd64 12.8ubuntu1.1 [4664 B] Get:35 http://archive.ubuntu.com/ubuntu focal/main amd64 libfakeroot amd64 1.24-1 [25.7 kB] Get:36 http://archive.ubuntu.com/ubuntu focal/main amd64 fakeroot amd64 1.24-1 [62.6 kB] Get:37 http://archive.ubuntu.com/ubuntu focal/main amd64 libalgorithm-diff-perl all 1.19.03-2 [46.6 kB] Get:38 http://archive.ubuntu.com/ubuntu focal/main amd64 libalgorithm-diff-xs-perl amd64 0.04-6 [11.3 kB] Get:39 http://archive.ubuntu.com/ubuntu focal/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB] Get:40 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libexpat1-dev amd64 2.2.9-1ubuntu0.6 [116 kB] Get:41 http://archive.ubuntu.com/ubuntu focal/main amd64 libfile-fcntllock-perl amd64 0.22-3build4 [33.1 kB] Get:42 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8-dev amd64 3.8.10-0ubuntu1~20.04.5 [3951 kB] Get:43 http://archive.ubuntu.com/ubuntu focal/main amd64 libpython3-dev amd64 3.8.2-0ubuntu2 [7236 B] Get:44 http://archive.ubuntu.com/ubuntu focal/main amd64 manpages-dev all 5.05-1 [2266 kB] Get:45 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 python-pip-whl all 20.0.2-5ubuntu1.6 [1805 kB] Get:46 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-2ubuntu1.5 [155 kB] Get:47 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 python3.8-dev amd64 3.8.10-0ubuntu1~20.04.5 [514 kB] Get:48 http://archive.ubuntu.com/ubuntu focal/main amd64 python3-dev amd64 3.8.2-0ubuntu2 [1212 B] Get:49 http://archive.ubuntu.com/ubuntu focal/universe amd64 python3-wheel all 0.34.2-1 [23.8 kB] Get:50 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 python3-pip all 20.0.2-5ubuntu1.6 [231 kB] Fetched 52.2 MB in 21s (2476 kB/s) Extracting templates from packages: 100% Selecting previously unselected package binutils-common:amd64. (Reading database ... 32636 files and directories currently installed.) Preparing to unpack .../00-binutils-common_2.34-6ubuntu1.3_amd64.deb ... Unpacking binutils-common:amd64 (2.34-6ubuntu1.3) ... Selecting previously unselected package libbinutils:amd64. Preparing to unpack .../01-libbinutils_2.34-6ubuntu1.3_amd64.deb ... Unpacking libbinutils:amd64 (2.34-6ubuntu1.3) ... Selecting previously unselected package libctf-nobfd0:amd64. Preparing to unpack .../02-libctf-nobfd0_2.34-6ubuntu1.3_amd64.deb ... Unpacking libctf-nobfd0:amd64 (2.34-6ubuntu1.3) ... Selecting previously unselected package libctf0:amd64. Preparing to unpack .../03-libctf0_2.34-6ubuntu1.3_amd64.deb ... Unpacking libctf0:amd64 (2.34-6ubuntu1.3) ... Selecting previously unselected package binutils-x86-64-linux-gnu. Preparing to unpack .../04-binutils-x86-64-linux-gnu_2.34-6ubuntu1.3_amd64.deb ... Unpacking binutils-x86-64-linux-gnu (2.34-6ubuntu1.3) ... Selecting previously unselected package binutils. Preparing to unpack .../05-binutils_2.34-6ubuntu1.3_amd64.deb ... Unpacking binutils (2.34-6ubuntu1.3) ... Selecting previously unselected package libc-dev-bin. Preparing to unpack .../06-libc-dev-bin_2.31-0ubuntu9.9_amd64.deb ... Unpacking libc-dev-bin (2.31-0ubuntu9.9) ... Selecting previously unselected package linux-libc-dev:amd64. Preparing to unpack .../07-linux-libc-dev_5.4.0-135.152_amd64.deb ... Unpacking linux-libc-dev:amd64 (5.4.0-135.152) ... Selecting previously unselected package libcrypt-dev:amd64. Preparing to unpack .../08-libcrypt-dev_1%3a4.4.10-10ubuntu4_amd64.deb ... Unpacking libcrypt-dev:amd64 (1:4.4.10-10ubuntu4) ... Selecting previously unselected package libc6-dev:amd64. Preparing to unpack .../09-libc6-dev_2.31-0ubuntu9.9_amd64.deb ... Unpacking libc6-dev:amd64 (2.31-0ubuntu9.9) ... Selecting previously unselected package gcc-9-base:amd64. Preparing to unpack .../10-gcc-9-base_9.4.0-1ubuntu1~20.04.1_amd64.deb ... Unpacking gcc-9-base:amd64 (9.4.0-1ubuntu1~20.04.1) ... Selecting previously unselected package libisl22:amd64. Preparing to unpack .../11-libisl22_0.22.1-1_amd64.deb ... Unpacking libisl22:amd64 (0.22.1-1) ... Selecting previously unselected package libmpc3:amd64. Preparing to unpack .../12-libmpc3_1.1.0-1_amd64.deb ... Unpacking libmpc3:amd64 (1.1.0-1) ... Selecting previously unselected package cpp-9. Preparing to unpack .../13-cpp-9_9.4.0-1ubuntu1~20.04.1_amd64.deb ... Unpacking cpp-9 (9.4.0-1ubuntu1~20.04.1) ... Selecting previously unselected package cpp. Preparing to unpack .../14-cpp_4%3a9.3.0-1ubuntu2_amd64.deb ... Unpacking cpp (4:9.3.0-1ubuntu2) ... Selecting previously unselected package libcc1-0:amd64. Preparing to unpack .../15-libcc1-0_10.3.0-1ubuntu1~20.04_amd64.deb ... Unpacking libcc1-0:amd64 (10.3.0-1ubuntu1~20.04) ... Selecting previously unselected package libgomp1:amd64. Preparing to unpack .../16-libgomp1_10.3.0-1ubuntu1~20.04_amd64.deb ... Unpacking libgomp1:amd64 (10.3.0-1ubuntu1~20.04) ... Selecting previously unselected package libitm1:amd64. Preparing to unpack .../17-libitm1_10.3.0-1ubuntu1~20.04_amd64.deb ... Unpacking libitm1:amd64 (10.3.0-1ubuntu1~20.04) ... Selecting previously unselected package libatomic1:amd64. Preparing to unpack .../18-libatomic1_10.3.0-1ubuntu1~20.04_amd64.deb ... Unpacking libatomic1:amd64 (10.3.0-1ubuntu1~20.04) ... Selecting previously unselected package libasan5:amd64. Preparing to unpack .../19-libasan5_9.4.0-1ubuntu1~20.04.1_amd64.deb ... Unpacking libasan5:amd64 (9.4.0-1ubuntu1~20.04.1) ... Selecting previously unselected package liblsan0:amd64. Preparing to unpack .../20-liblsan0_10.3.0-1ubuntu1~20.04_amd64.deb ... Unpacking liblsan0:amd64 (10.3.0-1ubuntu1~20.04) ... Selecting previously unselected package libtsan0:amd64. Preparing to unpack .../21-libtsan0_10.3.0-1ubuntu1~20.04_amd64.deb ... Unpacking libtsan0:amd64 (10.3.0-1ubuntu1~20.04) ... Selecting previously unselected package libubsan1:amd64. Preparing to unpack .../22-libubsan1_10.3.0-1ubuntu1~20.04_amd64.deb ... Unpacking libubsan1:amd64 (10.3.0-1ubuntu1~20.04) ... Selecting previously unselected package libquadmath0:amd64. Preparing to unpack .../23-libquadmath0_10.3.0-1ubuntu1~20.04_amd64.deb ... Unpacking libquadmath0:amd64 (10.3.0-1ubuntu1~20.04) ... Selecting previously unselected package libgcc-9-dev:amd64. Preparing to unpack .../24-libgcc-9-dev_9.4.0-1ubuntu1~20.04.1_amd64.deb ... Unpacking libgcc-9-dev:amd64 (9.4.0-1ubuntu1~20.04.1) ... Selecting previously unselected package gcc-9. Preparing to unpack .../25-gcc-9_9.4.0-1ubuntu1~20.04.1_amd64.deb ... Unpacking gcc-9 (9.4.0-1ubuntu1~20.04.1) ... Selecting previously unselected package gcc. Preparing to unpack .../26-gcc_4%3a9.3.0-1ubuntu2_amd64.deb ... Unpacking gcc (4:9.3.0-1ubuntu2) ... Selecting previously unselected package libstdc++-9-dev:amd64. Preparing to unpack .../27-libstdc++-9-dev_9.4.0-1ubuntu1~20.04.1_amd64.deb ... Unpacking libstdc++-9-dev:amd64 (9.4.0-1ubuntu1~20.04.1) ... Selecting previously unselected package g++-9. Preparing to unpack .../28-g++-9_9.4.0-1ubuntu1~20.04.1_amd64.deb ... Unpacking g++-9 (9.4.0-1ubuntu1~20.04.1) ... Selecting previously unselected package g++. Preparing to unpack .../29-g++_4%3a9.3.0-1ubuntu2_amd64.deb ... Unpacking g++ (4:9.3.0-1ubuntu2) ... Selecting previously unselected package make. Preparing to unpack .../30-make_4.2.1-1.2_amd64.deb ... Unpacking make (4.2.1-1.2) ... Selecting previously unselected package libdpkg-perl. Preparing to unpack .../31-libdpkg-perl_1.19.7ubuntu3.2_all.deb ... Unpacking libdpkg-perl (1.19.7ubuntu3.2) ... Selecting previously unselected package dpkg-dev. Preparing to unpack .../32-dpkg-dev_1.19.7ubuntu3.2_all.deb ... Unpacking dpkg-dev (1.19.7ubuntu3.2) ... Selecting previously unselected package build-essential. Preparing to unpack .../33-build-essential_12.8ubuntu1.1_amd64.deb ... Unpacking build-essential (12.8ubuntu1.1) ... Selecting previously unselected package libfakeroot:amd64. Preparing to unpack .../34-libfakeroot_1.24-1_amd64.deb ... Unpacking libfakeroot:amd64 (1.24-1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../35-fakeroot_1.24-1_amd64.deb ... Unpacking fakeroot (1.24-1) ... Selecting previously unselected package libalgorithm-diff-perl. Preparing to unpack .../36-libalgorithm-diff-perl_1.19.03-2_all.deb ... Unpacking libalgorithm-diff-perl (1.19.03-2) ... Selecting previously unselected package libalgorithm-diff-xs-perl. Preparing to unpack .../37-libalgorithm-diff-xs-perl_0.04-6_amd64.deb ... Unpacking libalgorithm-diff-xs-perl (0.04-6) ... Selecting previously unselected package libalgorithm-merge-perl. Preparing to unpack .../38-libalgorithm-merge-perl_0.08-3_all.deb ... Unpacking libalgorithm-merge-perl (0.08-3) ... Selecting previously unselected package libexpat1-dev:amd64. Preparing to unpack .../39-libexpat1-dev_2.2.9-1ubuntu0.6_amd64.deb ... Unpacking libexpat1-dev:amd64 (2.2.9-1ubuntu0.6) ... Selecting previously unselected package libfile-fcntllock-perl. Preparing to unpack .../40-libfile-fcntllock-perl_0.22-3build4_amd64.deb ... Unpacking libfile-fcntllock-perl (0.22-3build4) ... Selecting previously unselected package libpython3.8-dev:amd64. Preparing to unpack .../41-libpython3.8-dev_3.8.10-0ubuntu1~20.04.5_amd64.deb ... Unpacking libpython3.8-dev:amd64 (3.8.10-0ubuntu1~20.04.5) ... Selecting previously unselected package libpython3-dev:amd64. Preparing to unpack .../42-libpython3-dev_3.8.2-0ubuntu2_amd64.deb ... Unpacking libpython3-dev:amd64 (3.8.2-0ubuntu2) ... Selecting previously unselected package manpages-dev. Preparing to unpack .../43-manpages-dev_5.05-1_all.deb ... Unpacking manpages-dev (5.05-1) ... Selecting previously unselected package python-pip-whl. Preparing to unpack .../44-python-pip-whl_20.0.2-5ubuntu1.6_all.deb ... Unpacking python-pip-whl (20.0.2-5ubuntu1.6) ... Selecting previously unselected package zlib1g-dev:amd64. Preparing to unpack .../45-zlib1g-dev_1%3a1.2.11.dfsg-2ubuntu1.5_amd64.deb ... Unpacking zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu1.5) ... Selecting previously unselected package python3.8-dev. Preparing to unpack .../46-python3.8-dev_3.8.10-0ubuntu1~20.04.5_amd64.deb ... Unpacking python3.8-dev (3.8.10-0ubuntu1~20.04.5) ... Selecting previously unselected package python3-dev. Preparing to unpack .../47-python3-dev_3.8.2-0ubuntu2_amd64.deb ... Unpacking python3-dev (3.8.2-0ubuntu2) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../48-python3-wheel_0.34.2-1_all.deb ... Unpacking python3-wheel (0.34.2-1) ... Selecting previously unselected package python3-pip. Preparing to unpack .../49-python3-pip_20.0.2-5ubuntu1.6_all.deb ... Unpacking python3-pip (20.0.2-5ubuntu1.6) ... Setting up manpages-dev (5.05-1) ... Setting up libfile-fcntllock-perl (0.22-3build4) ... Setting up libalgorithm-diff-perl (1.19.03-2) ... Setting up binutils-common:amd64 (2.34-6ubuntu1.3) ... Setting up linux-libc-dev:amd64 (5.4.0-135.152) ... Setting up libctf-nobfd0:amd64 (2.34-6ubuntu1.3) ... Setting up libgomp1:amd64 (10.3.0-1ubuntu1~20.04) ... Setting up python3-wheel (0.34.2-1) ... Setting up libfakeroot:amd64 (1.24-1) ... Setting up fakeroot (1.24-1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Setting up make (4.2.1-1.2) ... Setting up libquadmath0:amd64 (10.3.0-1ubuntu1~20.04) ... Setting up libmpc3:amd64 (1.1.0-1) ... Setting up libatomic1:amd64 (10.3.0-1ubuntu1~20.04) ... Setting up libdpkg-perl (1.19.7ubuntu3.2) ... Setting up libubsan1:amd64 (10.3.0-1ubuntu1~20.04) ... Setting up libcrypt-dev:amd64 (1:4.4.10-10ubuntu4) ... Setting up libisl22:amd64 (0.22.1-1) ... Setting up python-pip-whl (20.0.2-5ubuntu1.6) ... Setting up libbinutils:amd64 (2.34-6ubuntu1.3) ... Setting up libc-dev-bin (2.31-0ubuntu9.9) ... Setting up libalgorithm-diff-xs-perl (0.04-6) ... Setting up libcc1-0:amd64 (10.3.0-1ubuntu1~20.04) ... Setting up liblsan0:amd64 (10.3.0-1ubuntu1~20.04) ... Setting up libitm1:amd64 (10.3.0-1ubuntu1~20.04) ... Setting up gcc-9-base:amd64 (9.4.0-1ubuntu1~20.04.1) ... Setting up libalgorithm-merge-perl (0.08-3) ... Setting up libtsan0:amd64 (10.3.0-1ubuntu1~20.04) ... Setting up libctf0:amd64 (2.34-6ubuntu1.3) ... Setting up libasan5:amd64 (9.4.0-1ubuntu1~20.04.1) ... Setting up python3-pip (20.0.2-5ubuntu1.6) ... Setting up cpp-9 (9.4.0-1ubuntu1~20.04.1) ... Setting up libc6-dev:amd64 (2.31-0ubuntu9.9) ... Setting up binutils-x86-64-linux-gnu (2.34-6ubuntu1.3) ... Setting up binutils (2.34-6ubuntu1.3) ... Setting up dpkg-dev (1.19.7ubuntu3.2) ... Setting up libgcc-9-dev:amd64 (9.4.0-1ubuntu1~20.04.1) ... Setting up libexpat1-dev:amd64 (2.2.9-1ubuntu0.6) ... Setting up libpython3.8-dev:amd64 (3.8.10-0ubuntu1~20.04.5) ... Setting up zlib1g-dev:amd64 (1:1.2.11.dfsg-2ubuntu1.5) ... Setting up cpp (4:9.3.0-1ubuntu2) ... Setting up gcc-9 (9.4.0-1ubuntu1~20.04.1) ... Setting up libpython3-dev:amd64 (3.8.2-0ubuntu2) ... Setting up libstdc++-9-dev:amd64 (9.4.0-1ubuntu1~20.04.1) ... Setting up gcc (4:9.3.0-1ubuntu2) ... Setting up g++-9 (9.4.0-1ubuntu1~20.04.1) ... Setting up python3.8-dev (3.8.10-0ubuntu1~20.04.5) ... Setting up g++ (4:9.3.0-1ubuntu2) ... update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode Setting up build-essential (12.8ubuntu1.1) ... Setting up python3-dev (3.8.2-0ubuntu2) ... Processing triggers for man-db (2.9.1-1) ... Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
WSL 환경에 텐서플로를 설치합니다.
one@DESKTOP-G28A5LG:/mnt/c/Users/boas9$ python3 -m pip install tensorflow Collecting tensorflow Downloading tensorflow-2.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (588.3 MB) |████████████████████████████████| 588.3 MB 70 kB/s Collecting protobuf<3.20,>=3.9.2 Downloading protobuf-3.19.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB) |████████████████████████████████| 1.1 MB 9.2 MB/s Collecting tensorboard<2.12,>=2.11 Downloading tensorboard-2.11.0-py3-none-any.whl (6.0 MB) |████████████████████████████████| 6.0 MB 55.8 MB/s Collecting keras<2.12,>=2.11.0 Downloading keras-2.11.0-py2.py3-none-any.whl (1.7 MB) |████████████████████████████████| 1.7 MB 10.2 MB/s Collecting tensorflow-io-gcs-filesystem>=0.23.1; platform_machine != "arm64" or platform_system != "Darwin" Downloading tensorflow_io_gcs_filesystem-0.28.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.4 MB) |████████████████████████████████| 2.4 MB 68.1 MB/s Collecting typing-extensions>=3.6.6 Downloading typing_extensions-4.4.0-py3-none-any.whl (26 kB) Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from tensorflow) (1.14.0) Collecting google-pasta>=0.1.1 Downloading google_pasta-0.2.0-py3-none-any.whl (57 kB) |████████████████████████████████| 57 kB 6.2 MB/s Collecting flatbuffers>=2.0 Downloading flatbuffers-22.11.23-py2.py3-none-any.whl (26 kB) Collecting astunparse>=1.6.0 Downloading astunparse-1.6.3-py2.py3-none-any.whl (12 kB) Collecting grpcio<2.0,>=1.24.3 Downloading grpcio-1.51.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.8 MB) |████████████████████████████████| 4.8 MB 40.8 MB/s Collecting absl-py>=1.0.0 Downloading absl_py-1.3.0-py3-none-any.whl (124 kB) |████████████████████████████████| 124 kB 37.0 MB/s Collecting opt-einsum>=2.3.2 Downloading opt_einsum-3.3.0-py3-none-any.whl (65 kB) |████████████████████████████████| 65 kB 4.5 MB/s Collecting tensorflow-estimator<2.12,>=2.11.0 Downloading tensorflow_estimator-2.11.0-py2.py3-none-any.whl (439 kB) |████████████████████████████████| 439 kB 9.8 MB/s Collecting h5py>=2.9.0 Downloading h5py-3.7.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.5 MB) |████████████████████████████████| 4.5 MB 54.4 MB/s Collecting numpy>=1.20 Downloading numpy-1.23.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.1 MB) |████████████████████████████████| 17.1 MB 14.7 MB/s Collecting packaging Downloading packaging-21.3-py3-none-any.whl (40 kB) |████████████████████████████████| 40 kB 7.5 MB/s Collecting wrapt>=1.11.0 Downloading wrapt-1.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (81 kB) |████████████████████████████████| 81 kB 11.1 MB/s Collecting termcolor>=1.1.0 Downloading termcolor-2.1.1-py3-none-any.whl (6.2 kB) Collecting gast<=0.4.0,>=0.2.1 Downloading gast-0.4.0-py3-none-any.whl (9.8 kB) Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from tensorflow) (45.2.0) Collecting libclang>=13.0.0 Downloading libclang-14.0.6-py2.py3-none-manylinux2010_x86_64.whl (14.1 MB) |████████████████████████████████| 14.1 MB 78.1 MB/s Collecting werkzeug>=1.0.1 Downloading Werkzeug-2.2.2-py3-none-any.whl (232 kB) |████████████████████████████████| 232 kB 50.8 MB/s Collecting google-auth<3,>=1.6.3 Downloading google_auth-2.15.0-py2.py3-none-any.whl (177 kB) |████████████████████████████████| 177 kB 67.5 MB/s Requirement already satisfied: wheel>=0.26 in /usr/lib/python3/dist-packages (from tensorboard<2.12,>=2.11->tensorflow) (0.34.2) Collecting tensorboard-plugin-wit>=1.6.0 Downloading tensorboard_plugin_wit-1.8.1-py3-none-any.whl (781 kB) |████████████████████████████████| 781 kB 38.1 MB/s Collecting markdown>=2.6.8 Downloading Markdown-3.4.1-py3-none-any.whl (93 kB) |████████████████████████████████| 93 kB 2.4 MB/s Collecting google-auth-oauthlib<0.5,>=0.4.1 Downloading google_auth_oauthlib-0.4.6-py2.py3-none-any.whl (18 kB) Collecting tensorboard-data-server<0.7.0,>=0.6.0 Downloading tensorboard_data_server-0.6.1-py3-none-manylinux2010_x86_64.whl (4.9 MB) |████████████████████████████████| 4.9 MB 42.1 MB/s Requirement already satisfied: requests<3,>=2.21.0 in /usr/lib/python3/dist-packages (from tensorboard<2.12,>=2.11->tensorflow) (2.22.0) Collecting pyparsing!=3.0.5,>=2.0.2 Downloading pyparsing-3.0.9-py3-none-any.whl (98 kB) |████████████████████████████████| 98 kB 9.4 MB/s Collecting MarkupSafe>=2.1.1 Downloading MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25 kB) Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/lib/python3/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.12,>=2.11->tensorflow) (0.2.1) Collecting rsa<5,>=3.1.4; python_version >= "3.6" Downloading rsa-4.9-py3-none-any.whl (34 kB) Collecting cachetools<6.0,>=2.0.0 Downloading cachetools-5.2.0-py3-none-any.whl (9.3 kB) Collecting importlib-metadata>=4.4; python_version < "3.10" Downloading importlib_metadata-5.1.0-py3-none-any.whl (21 kB) Collecting requests-oauthlib>=0.7.0 Downloading requests_oauthlib-1.3.1-py2.py3-none-any.whl (23 kB) Requirement already satisfied: pyasn1>=0.1.3 in /usr/lib/python3/dist-packages (from rsa<5,>=3.1.4; python_version >= "3.6"->google-auth<3,>=1.6.3->tensorboard<2.12,>=2.11->tensorflow) (0.4.2) Requirement already satisfied: zipp>=0.5 in /usr/lib/python3/dist-packages (from importlib-metadata>=4.4; python_version < "3.10"->markdown>=2.6.8->tensorboard<2.12,>=2.11->tensorflow) (1.0.0) Requirement already satisfied: oauthlib>=3.0.0 in /usr/lib/python3/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.12,>=2.11->tensorflow) (3.1.0) Installing collected packages: protobuf, MarkupSafe, werkzeug, grpcio, rsa, cachetools, google-auth, tensorboard-plugin-wit, absl-py, importlib-metadata, markdown, requests-oauthlib, google-auth-oauthlib, tensorboard-data-server, numpy, tensorboard, keras, tensorflow-io-gcs-filesystem, typing-extensions, google-pasta, flatbuffers, astunparse, opt-einsum, tensorflow-estimator, h5py, pyparsing, packaging, wrapt, termcolor, gast, libclang, tensorflow WARNING: The scripts pyrsa-decrypt, pyrsa-encrypt, pyrsa-keygen, pyrsa-priv2pub, pyrsa-sign and pyrsa-verify are installed in '/home/one/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The script markdown_py is installed in '/home/one/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The script google-oauthlib-tool is installed in '/home/one/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The scripts f2py, f2py3 and f2py3.8 are installed in '/home/one/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The script tensorboard is installed in '/home/one/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The scripts estimator_ckpt_converter, import_pb_to_tensorboard, saved_model_cli, tensorboard, tf_upgrade_v2, tflite_convert, toco and toco_from_protos are installed in '/home/one/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed MarkupSafe-2.1.1 absl-py-1.3.0 astunparse-1.6.3 cachetools-5.2.0 flatbuffers-22.11.23 gast-0.4.0 google-auth-2.15.0 google-auth-oauthlib-0.4.6 google-pasta-0.2.0 grpcio-1.51.1 h5py-3.7.0 importlib-metadata-5.1.0 keras-2.11.0 libclang-14.0.6 markdown-3.4.1 numpy-1.23.5 opt-einsum-3.3.0 packaging-21.3 protobuf-3.19.6 pyparsing-3.0.9 requests-oauthlib-1.3.1 rsa-4.9 tensorboard-2.11.0 tensorboard-data-server-0.6.1 tensorboard-plugin-wit-1.8.1 tensorflow-2.11.0 tensorflow-estimator-2.11.0 tensorflow-io-gcs-filesystem-0.28.0 termcolor-2.1.1 typing-extensions-4.4.0 werkzeug-2.2.2 wrapt-1.14.1
> 파이썬을 실행합니다.
one@DESKTOP-G28A5LG:/mnt/c/Users/boas9$ python3 Python 3.8.10 (default, Jun 22 2022, 20:18:18) [GCC 9.4.0] on linux Type "help", "copyright", "credits" or "license" for more information.
위 예제 문장들을 차례대로 실행하고 결과값을 확인합니다.
>>> import tensorflow as tf 2022-12-03 18:55:49.020539: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F AVX512_VNNI FMA To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2022-12-03 18:55:49.132243: I tensorflow/core/util/port.cc:104] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`. 2022-12-03 18:55:49.136025: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory 2022-12-03 18:55:49.136071: I tensorflow/compiler/xla/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. 2022-12-03 18:55:49.739860: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory 2022-12-03 18:55:49.739943: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory 2022-12-03 18:55:49.739950: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly. >>> print("TensorFlow version:", tf.__version__) TensorFlow version: 2.11.0 >>> mnist = tf.keras.datasets.mnist >>> (x_train, y_train), (x_test, y_test) = mnist.load_data() Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz 11490434/11490434 [==============================] - 0s 0us/step >>> x_train, x_test = x_train / 255.0, x_test / 255.0 >>> model = tf.keras.models.Sequential([ ... tf.keras.layers.Flatten(input_shape=(28, 28)), ... tf.keras.layers.Dense(128, activation='relu'), ... tf.keras.layers.Dropout(0.2), ... tf.keras.layers.Dense(10, activation='softmax') ... ]) 2022-12-03 19:06:19.863517: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory 2022-12-03 19:06:19.863564: W tensorflow/compiler/xla/stream_executor/cuda/cuda_driver.cc:265] failed call to cuInit: UNKNOWN ERROR (303) 2022-12-03 19:06:19.863579: I tensorflow/compiler/xla/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (DESKTOP-G28A5LG): /proc/driver/nvidia/version does not exist 2022-12-03 19:06:19.863798: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 AVX512F AVX512_VNNI FMA To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. >>> model.compile(optimizer='adam', ... loss='sparse_categorical_crossentropy', ... metrics=['accuracy']) >>> model.fit(x_train, y_train, epochs=5) Epoch 1/5 1875/1875 [==============================] - 5s 2ms/step - loss: 0.2943 - accuracy: 0.9144 Epoch 2/5 1875/1875 [==============================] - 5s 2ms/step - loss: 0.1424 - accuracy: 0.9574 Epoch 3/5 1875/1875 [==============================] - 4s 2ms/step - loss: 0.1085 - accuracy: 0.9665 Epoch 4/5 1875/1875 [==============================] - 4s 2ms/step - loss: 0.0895 - accuracy: 0.9718 Epoch 5/5 1875/1875 [==============================] - 5s 3ms/step - loss: 0.0753 - accuracy: 0.9759 <keras.callbacks.History object at 0x7fe6ac7e42e0> >>> model.fit(x_train, y_train, epochs=5) .evaluate(x_test, y_test, verbose=2)Epoch 1/5 1875/1875 [==============================] - 5s 3ms/step - loss: 0.0657 - accuracy: 0.9792 Epoch 2/5 1875/1875 [==============================] - 4s 2ms/step - loss: 0.0589 - accuracy: 0.9809 Epoch 3/5 1875/1875 [==============================] - 5s 3ms/step - loss: 0.0536 - accuracy: 0.9826 Epoch 4/5 1875/1875 [==============================] - 5s 3ms/step - loss: 0.0494 - accuracy: 0.9837 Epoch 5/5 1875/1875 [==============================] - 5s 3ms/step - loss: 0.0448 - accuracy: 0.9852 <keras.callbacks.History object at 0x7fe6584afc10> >>> >>> model.evaluate(x_test, y_test, verbose=2) 313/313 - 1s - loss: 0.0738 - accuracy: 0.9785 - 503ms/epoch - 2ms/step [0.07380447536706924, 0.9785000085830688] >>> probability_model = tf.keras.Sequential([ ... model, ... tf.keras.layers.Softmax() ... ]) >>> probability_model(x_test[:5]) <tf.Tensor: shape=(5, 10), dtype=float32, numpy= array([[0.08533678, 0.08533677, 0.08533684, 0.08533688, 0.08533677, 0.08533677, 0.08533677, 0.23196891, 0.08533677, 0.08533679], [0.08533682, 0.08533734, 0.23196809, 0.08533682, 0.08533682, 0.08533682, 0.08533682, 0.08533682, 0.08533682, 0.08533682], [0.08534653, 0.2318142 , 0.08534732, 0.08534654, 0.08534744, 0.08534654, 0.08534655, 0.08541019, 0.08534808, 0.08534655], [0.231831 , 0.08534548, 0.0854026 , 0.08534565, 0.08534549, 0.08534551, 0.08534762, 0.08534563, 0.08534551, 0.08534557], [0.08533975, 0.08533959, 0.08533959, 0.08533959, 0.2319243 , 0.08533959, 0.0853396 , 0.08534116, 0.08533959, 0.08535728]], dtype=float32)>