{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "Tce3stUlHN0L" }, "source": [ "##### Copyright 2019 The TensorFlow Authors.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "execution": { "iopub.execute_input": "2022-12-15T01:43:05.191265Z", "iopub.status.busy": "2022-12-15T01:43:05.190716Z", "iopub.status.idle": "2022-12-15T01:43:05.194869Z", "shell.execute_reply": "2022-12-15T01:43:05.194231Z" }, "id": "tuOe1ymfHZPu" }, "outputs": [], "source": [ "#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n", "# you may not use this file except in compliance with the License.\n", "# You may obtain a copy of the License at\n", "#\n", "# https://www.apache.org/licenses/LICENSE-2.0\n", "#\n", "# Unless required by applicable law or agreed to in writing, software\n", "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", "# See the License for the specific language governing permissions and\n", "# limitations under the License." ] }, { "cell_type": "markdown", "metadata": { "id": "MfBg1C5NB3X0" }, "source": [ "# 케라스를 사용한 다중 워커(Multi-worker) 훈련\n", "\n", "
![]() | \n",
" ![]() | \n",
" ![]() | \n",
" ![]() | \n",
"
tf.distribute.MirroredStrategy
, `tf.distribute.TPUStrategy` 및 `tf.distribute.MultiWorkerMirroredStrategy`와 같이 훈련 단계가 작업자와 복제본 간에 동기화되는 동기식 훈련입니다. 모든 작업자는 동기화된 입력 데이터의 다른 조각에 대해 훈련하고 각 단계에서 그래디언트를 집계합니다.\n",
"- 두 번째는 tf.distribute.experimental.ParameterServerStrategy
와 같이 훈련 단계가 엄격하게 동기화되지 않은 비동기 훈련입니다. 모든 작업자는 입력 데이터에 대해 독립적으로 훈련하고 변수를 비동기적으로 업데이트합니다.\n",
"\n",
"TPU가 없는 다중 작업자 동기식 훈련을 찾고 있다면 `tf.distribute.MultiWorkerMirroredStrategy`를 선택해야 합니다. 이는 모든 작업자에 걸쳐 각 장치의 모델 레이어에 있는 모든 변수의 복사본을 만들고, 집합적 통신을 위한 TensorFlow 연산인 `CollectiveOps`를 사용하여 그래디언트를 집계하고 변수를 동기화 상태로 유지합니다. 관심 있는 분들은 집합적 구현 옵션에 대한 `tf.distribute.experimental.CommunicationOptions` 매개변수를 확인해 보세요.\n",
"\n",
"`tf.distribute.Strategy` API에 대한 개요는 [TensorFlow의 분산 훈련](../../guide/distributed_training.ipynb)을 참조하세요."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "MUXex9ctTuDB"
},
"source": [
"## 설정\n",
"\n",
"몇 가지 필요한 가져오기로 시작합니다."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:05.198875Z",
"iopub.status.busy": "2022-12-15T01:43:05.198315Z",
"iopub.status.idle": "2022-12-15T01:43:05.205994Z",
"shell.execute_reply": "2022-12-15T01:43:05.205389Z"
},
"id": "bnYxvfLD-LW-"
},
"outputs": [],
"source": [
"import json\n",
"import os\n",
"import sys"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Zz0EY91y3mxy"
},
"source": [
"TensorFlow를 가져오기 전에 환경을 일부 변경합니다.\n",
"\n",
"- 실제 적용 상황에서 각 작업자는 다른 시스템에 있을 것입니다. 이 튜토리얼의 목적상 모든 작업자는 **이** 시스템에서 실행됩니다. 따라서 모든 작업자가 동일한 GPU를 사용하려고 하여 오류가 발생하지 않도록 모든 GPU를 비활성화합니다."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:05.209577Z",
"iopub.status.busy": "2022-12-15T01:43:05.209072Z",
"iopub.status.idle": "2022-12-15T01:43:05.212475Z",
"shell.execute_reply": "2022-12-15T01:43:05.211866Z"
},
"id": "rpEIVI5upIzM"
},
"outputs": [],
"source": [
"os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"-1\""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "7X1MS6385BWi"
},
"source": [
"- `TF_CONFIG` 환경 변수를 재설정합니다(나중에 자세히 알아볼 것입니다)."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:05.216055Z",
"iopub.status.busy": "2022-12-15T01:43:05.215529Z",
"iopub.status.idle": "2022-12-15T01:43:05.218842Z",
"shell.execute_reply": "2022-12-15T01:43:05.218237Z"
},
"id": "WEJLYa2_7OZF"
},
"outputs": [],
"source": [
"os.environ.pop('TF_CONFIG', None)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Rd4L9Ii77SS8"
},
"source": [
"- 현재 디렉터리가 Python의 경로에 있도록 합니다. 그러면 나중에 `%%writefile`이 쓴 파일을 노트북이 가져올 수 있습니다.\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:05.222434Z",
"iopub.status.busy": "2022-12-15T01:43:05.222164Z",
"iopub.status.idle": "2022-12-15T01:43:05.225533Z",
"shell.execute_reply": "2022-12-15T01:43:05.224897Z"
},
"id": "hPBuZUNSZmrQ"
},
"outputs": [],
"source": [
"if '.' not in sys.path:\n",
" sys.path.insert(0, '.')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9hLpDZhAz2q-"
},
"source": [
"`tf.keras.callbacks.BackupAndRestore`의 `save_freq` 인수를 사용하여 특정 단계에서 체크포인트의 빈도를 저장하는 기능이 TensorFlow 2.10부터 도입되었으므로 `tf-nightly`를 설치합니다."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:05.229052Z",
"iopub.status.busy": "2022-12-15T01:43:05.228580Z",
"iopub.status.idle": "2022-12-15T01:43:38.778222Z",
"shell.execute_reply": "2022-12-15T01:43:38.777019Z"
},
"id": "-XqozLfzz30N"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting tf-nightly\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Downloading tf_nightly-2.12.0.dev20221214-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (556.4 MB)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting keras-nightly~=2.12.0.dev\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Downloading keras_nightly-2.12.0.dev2022121408-py2.py3-none-any.whl (1.7 MB)\r\n",
"Requirement already satisfied: h5py>=2.9.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (3.7.0)\r\n",
"Requirement already satisfied: packaging in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (22.0)\r\n",
"Requirement already satisfied: typing-extensions>=3.6.6 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (4.4.0)\r\n",
"Requirement already satisfied: gast<=0.4.0,>=0.2.1 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (0.4.0)\r\n",
"Requirement already satisfied: numpy>=1.20 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (1.24.0rc2)\r\n",
"Requirement already satisfied: opt-einsum>=2.3.2 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (3.3.0)\r\n",
"Requirement already satisfied: six>=1.12.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (1.16.0)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting jax>=0.3.15\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Downloading jax-0.4.1.tar.gz (1.2 MB)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Preparing metadata (setup.py) ... \u001b[?25l-"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b \bdone\r\n",
"\u001b[?25hRequirement already satisfied: flatbuffers>=2.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (22.12.6)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting tb-nightly~=2.12.0.a\r\n",
" Downloading tb_nightly-2.12.0a20221214-py3-none-any.whl (5.7 MB)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (0.28.0)\r\n",
"Requirement already satisfied: termcolor>=1.1.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (2.1.1)\r\n",
"Requirement already satisfied: grpcio<2.0,>=1.24.3 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (1.51.1)\r\n",
"Requirement already satisfied: wrapt>=1.11.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (1.14.1)\r\n",
"Requirement already satisfied: astunparse>=1.6.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (1.6.3)\r\n",
"Requirement already satisfied: setuptools in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (65.6.3)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting tf-estimator-nightly~=2.12.0.dev\r\n",
" Downloading tf_estimator_nightly-2.12.0.dev2022121409-py2.py3-none-any.whl (439 kB)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: libclang>=13.0.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (14.0.6)\r\n",
"Requirement already satisfied: absl-py>=1.0.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (1.3.0)\r\n",
"Requirement already satisfied: google-pasta>=0.1.1 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (0.2.0)\r\n",
"Requirement already satisfied: protobuf<3.20,>=3.9.2 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tf-nightly) (3.19.6)\r\n",
"Requirement already satisfied: wheel<1.0,>=0.23.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from astunparse>=1.6.0->tf-nightly) (0.38.4)\r\n",
"Requirement already satisfied: scipy>=1.5 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from jax>=0.3.15->tf-nightly) (1.9.3)\r\n",
"Requirement already satisfied: google-auth<3,>=1.6.3 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tb-nightly~=2.12.0.a->tf-nightly) (2.15.0)\r\n",
"Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tb-nightly~=2.12.0.a->tf-nightly) (0.6.1)\r\n",
"Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tb-nightly~=2.12.0.a->tf-nightly) (1.8.1)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: markdown>=2.6.8 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tb-nightly~=2.12.0.a->tf-nightly) (3.4.1)\r\n",
"Requirement already satisfied: requests<3,>=2.21.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tb-nightly~=2.12.0.a->tf-nightly) (2.28.1)\r\n",
"Requirement already satisfied: werkzeug>=1.0.1 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tb-nightly~=2.12.0.a->tf-nightly) (2.2.2)\r\n",
"Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from tb-nightly~=2.12.0.a->tf-nightly) (0.4.6)\r\n",
"Requirement already satisfied: cachetools<6.0,>=2.0.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from google-auth<3,>=1.6.3->tb-nightly~=2.12.0.a->tf-nightly) (5.2.0)\r\n",
"Requirement already satisfied: rsa<5,>=3.1.4 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from google-auth<3,>=1.6.3->tb-nightly~=2.12.0.a->tf-nightly) (4.9)\r\n",
"Requirement already satisfied: pyasn1-modules>=0.2.1 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from google-auth<3,>=1.6.3->tb-nightly~=2.12.0.a->tf-nightly) (0.3.0rc1)\r\n",
"Requirement already satisfied: requests-oauthlib>=0.7.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tb-nightly~=2.12.0.a->tf-nightly) (1.3.1)\r\n",
"Requirement already satisfied: importlib-metadata>=4.4 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from markdown>=2.6.8->tb-nightly~=2.12.0.a->tf-nightly) (5.1.0)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: idna<4,>=2.5 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from requests<3,>=2.21.0->tb-nightly~=2.12.0.a->tf-nightly) (3.4)\r\n",
"Requirement already satisfied: urllib3<1.27,>=1.21.1 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from requests<3,>=2.21.0->tb-nightly~=2.12.0.a->tf-nightly) (1.26.13)\r\n",
"Requirement already satisfied: certifi>=2017.4.17 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from requests<3,>=2.21.0->tb-nightly~=2.12.0.a->tf-nightly) (2022.12.7)\r\n",
"Requirement already satisfied: charset-normalizer<3,>=2 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from requests<3,>=2.21.0->tb-nightly~=2.12.0.a->tf-nightly) (2.1.1)\r\n",
"Requirement already satisfied: MarkupSafe>=2.1.1 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from werkzeug>=1.0.1->tb-nightly~=2.12.0.a->tf-nightly) (2.1.1)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: zipp>=0.5 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from importlib-metadata>=4.4->markdown>=2.6.8->tb-nightly~=2.12.0.a->tf-nightly) (3.11.0)\r\n",
"Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tb-nightly~=2.12.0.a->tf-nightly) (0.5.0rc2)\r\n",
"Requirement already satisfied: oauthlib>=3.0.0 in /tmpfs/src/tf_docs_env/lib/python3.9/site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tb-nightly~=2.12.0.a->tf-nightly) (3.2.2)\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Building wheels for collected packages: jax\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" Building wheel for jax (setup.py) ... \u001b[?25l-"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b \b\\"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b \b|"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b \b/"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b \bdone\r\n",
"\u001b[?25h Created wheel for jax: filename=jax-0.4.1-py3-none-any.whl size=1332462 sha256=2870c8116be4eaba616e62359bba701db69a2139e1932fd5e5c1bbafed2f3cd4\r\n",
" Stored in directory: /home/kbuilder/.cache/pip/wheels/50/a9/f3/86082312fd44e12e52b1b7744c37ed1d02e64deefdc735c77b\r\n",
"Successfully built jax\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Installing collected packages: tf-estimator-nightly, keras-nightly, jax, tb-nightly, tf-nightly\r\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Successfully installed jax-0.4.1 keras-nightly-2.12.0.dev2022121408 tb-nightly-2.12.0a20221214 tf-estimator-nightly-2.12.0.dev2022121409 tf-nightly-2.12.0.dev20221214\r\n"
]
}
],
"source": [
"!pip install tf-nightly"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "524e38dab658"
},
"source": [
"마지막으로 TensorFlow를 가져옵니다."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:38.783155Z",
"iopub.status.busy": "2022-12-15T01:43:38.782406Z",
"iopub.status.idle": "2022-12-15T01:43:41.785446Z",
"shell.execute_reply": "2022-12-15T01:43:41.784699Z"
},
"id": "vHNvttzV43sA"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-15 01:43:39.072372: E tensorflow/tsl/lib/monitoring/collection_registry.cc:81] Cannot register 2 metrics with the same name: /tensorflow/core/bfc_allocator_delay\n"
]
}
],
"source": [
"import tensorflow as tf"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0S2jpf6Sx50i"
},
"source": [
"### 데이터세트 및 모델 정의"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "fLW6D2TzvC-4"
},
"source": [
"다음으로, 간단한 모델 및 데이터세트 설정으로 `mnist_setup.py` 파일을 만듭니다. 이 Python 파일은 이 튜토리얼에서 작업자 프로세스에 사용됩니다."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:41.790641Z",
"iopub.status.busy": "2022-12-15T01:43:41.789866Z",
"iopub.status.idle": "2022-12-15T01:43:41.796174Z",
"shell.execute_reply": "2022-12-15T01:43:41.795442Z"
},
"id": "dma_wUAxZqo2"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Writing mnist_setup.py\n"
]
}
],
"source": [
"%%writefile mnist_setup.py\n",
"\n",
"import os\n",
"import tensorflow as tf\n",
"import numpy as np\n",
"\n",
"def mnist_dataset(batch_size):\n",
" (x_train, y_train), _ = tf.keras.datasets.mnist.load_data()\n",
" # The `x` arrays are in uint8 and have values in the [0, 255] range.\n",
" # You need to convert them to float32 with values in the [0, 1] range.\n",
" x_train = x_train / np.float32(255)\n",
" y_train = y_train.astype(np.int64)\n",
" train_dataset = tf.data.Dataset.from_tensor_slices(\n",
" (x_train, y_train)).shuffle(60000).repeat().batch(batch_size)\n",
" return train_dataset\n",
"\n",
"def build_and_compile_cnn_model():\n",
" model = tf.keras.Sequential([\n",
" tf.keras.layers.InputLayer(input_shape=(28, 28)),\n",
" tf.keras.layers.Reshape(target_shape=(28, 28, 1)),\n",
" tf.keras.layers.Conv2D(32, 3, activation='relu'),\n",
" tf.keras.layers.Flatten(),\n",
" tf.keras.layers.Dense(128, activation='relu'),\n",
" tf.keras.layers.Dense(10)\n",
" ])\n",
" model.compile(\n",
" loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),\n",
" optimizer=tf.keras.optimizers.SGD(learning_rate=0.001),\n",
" metrics=['accuracy'])\n",
" return model"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2UL3kisMO90X"
},
"source": [
"### 단일 작업자에 대한 모델 훈련\n",
"\n",
"먼저 몇 개의 epoch에 대해 모델을 훈련하고 *단일 작업자*의 결과를 관찰하여 이상이 없는지 확인합니다. 훈련이 진행됨에 따라 손실은 감소하고 정확도는 증가합니다."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:41.800084Z",
"iopub.status.busy": "2022-12-15T01:43:41.799490Z",
"iopub.status.idle": "2022-12-15T01:43:44.854789Z",
"shell.execute_reply": "2022-12-15T01:43:44.853931Z"
},
"id": "6Qe6iAf5O8iJ"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-15 01:43:42.188844: E tensorflow/compiler/xla/stream_executor/cuda/cuda_driver.cc:267] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/70 [..............................] - ETA: 38s - loss: 2.3049 - accuracy: 0.0938"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/70 [==>...........................] - ETA: 0s - loss: 2.3005 - accuracy: 0.0684 "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"16/70 [=====>........................] - ETA: 0s - loss: 2.2989 - accuracy: 0.0576"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"24/70 [=========>....................] - ETA: 0s - loss: 2.2978 - accuracy: 0.0573"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"32/70 [============>.................] - ETA: 0s - loss: 2.2932 - accuracy: 0.0640"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"39/70 [===============>..............] - ETA: 0s - loss: 2.2902 - accuracy: 0.0725"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"47/70 [===================>..........] - ETA: 0s - loss: 2.2870 - accuracy: 0.0798"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"55/70 [======================>.......] - ETA: 0s - loss: 2.2847 - accuracy: 0.0889"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"63/70 [==========================>...] - ETA: 0s - loss: 2.2819 - accuracy: 0.0977"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - 1s 7ms/step - loss: 2.2791 - accuracy: 0.1067\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 2/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/70 [..............................] - ETA: 0s - loss: 2.2412 - accuracy: 0.2656"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/70 [==>...........................] - ETA: 0s - loss: 2.2492 - accuracy: 0.2012"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"16/70 [=====>........................] - ETA: 0s - loss: 2.2460 - accuracy: 0.2148"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"24/70 [=========>....................] - ETA: 0s - loss: 2.2431 - accuracy: 0.2435"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"33/70 [=============>................] - ETA: 0s - loss: 2.2382 - accuracy: 0.2708"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"41/70 [================>.............] - ETA: 0s - loss: 2.2359 - accuracy: 0.2797"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"49/70 [====================>.........] - ETA: 0s - loss: 2.2328 - accuracy: 0.2927"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"57/70 [=======================>......] - ETA: 0s - loss: 2.2300 - accuracy: 0.3013"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"65/70 [==========================>...] - ETA: 0s - loss: 2.2267 - accuracy: 0.3123"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - 0s 7ms/step - loss: 2.2241 - accuracy: 0.3194\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 3/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/70 [..............................] - ETA: 0s - loss: 2.1868 - accuracy: 0.4844"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 9/70 [==>...........................] - ETA: 0s - loss: 2.1873 - accuracy: 0.4340"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"17/70 [======>.......................] - ETA: 0s - loss: 2.1830 - accuracy: 0.4485"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"25/70 [=========>....................] - ETA: 0s - loss: 2.1810 - accuracy: 0.4525"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"33/70 [=============>................] - ETA: 0s - loss: 2.1767 - accuracy: 0.4650"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"41/70 [================>.............] - ETA: 0s - loss: 2.1730 - accuracy: 0.4748"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"49/70 [====================>.........] - ETA: 0s - loss: 2.1693 - accuracy: 0.4751"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"57/70 [=======================>......] - ETA: 0s - loss: 2.1667 - accuracy: 0.4830"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"65/70 [==========================>...] - ETA: 0s - loss: 2.1636 - accuracy: 0.4882"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - 0s 7ms/step - loss: 2.1610 - accuracy: 0.4893\n"
]
},
{
"data": {
"text/plain": [
"%%bash
가 사용됩니다.\n",
"2. `--bg` 플래그를 사용하여 백그라운드에서 `bash` 프로세스를 실행합니다. 이 작업자는 종료되지 않기 때문입니다. 시작하기 전에 모든 작업자를 기다립니다.\n",
"\n",
"백그라운드 작업자 프로세스는 이 노트북에 출력을 인쇄하지 않으므로 `&>`는 출력을 파일로 리디렉션하고 나중에 로그 파일에서 발생한 상황을 검사할 수 있습니다.\n",
"\n",
"따라서 프로세스가 시작될 때까지 몇 초 동안 기다리세요."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:45.159353Z",
"iopub.status.busy": "2022-12-15T01:43:45.158668Z",
"iopub.status.idle": "2022-12-15T01:43:55.173466Z",
"shell.execute_reply": "2022-12-15T01:43:55.172685Z"
},
"id": "Hm2yrULE9281"
},
"outputs": [],
"source": [
"import time\n",
"time.sleep(10)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ZFPoNxg_9_Mx"
},
"source": [
"이제, 지금까지 작업자의 로그 파일에 출력된 내용을 검사합니다."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:55.177402Z",
"iopub.status.busy": "2022-12-15T01:43:55.177106Z",
"iopub.status.idle": "2022-12-15T01:43:55.233245Z",
"shell.execute_reply": "2022-12-15T01:43:55.232299Z"
},
"id": "vZEOuVgQ9-hn"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2022-12-15 01:43:45.590694: E tensorflow/tsl/lib/monitoring/collection_registry.cc:81] Cannot register 2 metrics with the same name: /tensorflow/core/bfc_allocator_delay\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2022-12-15 01:43:47.627300: E tensorflow/compiler/xla/stream_executor/cuda/cuda_driver.cc:267] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected\n"
]
}
],
"source": [
"%%bash\n",
"cat job_0.log"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "RqZhVF7L_KOy"
},
"source": [
"로그 파일의 마지막 줄은 다음과 같아야 합니다: `Started server with target: grpc://localhost:12345`. 이제 첫 번째 작업자가 준비되었으며 다른 모든 작업자가 계속 진행할 준비가 되기를 기다립니다."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Pi8vPNNA_l4a"
},
"source": [
"따라서 두 번째 작업자 프로세스가 시작되도록 `tf_config`를 업데이트합니다."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:55.238219Z",
"iopub.status.busy": "2022-12-15T01:43:55.237391Z",
"iopub.status.idle": "2022-12-15T01:43:55.242053Z",
"shell.execute_reply": "2022-12-15T01:43:55.241304Z"
},
"id": "lAiYkkPu_Jqd"
},
"outputs": [],
"source": [
"tf_config['task']['index'] = 1\n",
"os.environ['TF_CONFIG'] = json.dumps(tf_config)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "0AshGVO0_x0w"
},
"source": [
"두 번째 작업자를 시작합니다. 모든 작업자가 활성 상태이므로 훈련이 시작됩니다(따라서 이 프로세스를 백그라운드로 처리할 필요가 없음)."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:43:55.246209Z",
"iopub.status.busy": "2022-12-15T01:43:55.245590Z",
"iopub.status.idle": "2022-12-15T01:44:12.343290Z",
"shell.execute_reply": "2022-12-15T01:44:12.342249Z"
},
"id": "_ESVtyQ9_xjx"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-15 01:43:55.790767: E tensorflow/tsl/lib/monitoring/collection_registry.cc:81] Cannot register 2 metrics with the same name: /tensorflow/core/bfc_allocator_delay\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-15 01:43:57.912229: E tensorflow/compiler/xla/stream_executor/cuda/cuda_driver.cc:267] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-15 01:43:59.021660: W tensorflow/core/grappler/optimizers/data/auto_shard.cc:784] AUTO sharding policy will apply DATA sharding policy as it failed to apply FILE sharding policy because of the following reason: Found an unshardable source dataset: name: \"TensorSliceDataset/_2\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"op: \"TensorSliceDataset\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"input: \"Placeholder/_0\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"input: \"Placeholder/_1\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" key: \"Toutput_types\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" list {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" type: DT_FLOAT\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" type: DT_INT64\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" key: \"_cardinality\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" i: 60000\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" key: \"is_files\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" b: false\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" key: \"metadata\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" s: \"\\n\\024TensorSliceDataset:0\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" key: \"output_shapes\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" list {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" shape {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" dim {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" size: 28\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" dim {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" size: 28\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" shape {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" key: \"replicate_on_split\"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" b: false\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"experimental_type {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" type_id: TFT_PRODUCT\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" type_id: TFT_DATASET\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" type_id: TFT_PRODUCT\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" type_id: TFT_TENSOR\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" type_id: TFT_FLOAT\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" type_id: TFT_TENSOR\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" type_id: TFT_INT64\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2022-12-15 01:43:59.325746: W tensorflow/core/framework/dataset.cc:807] Input of GeneratorDatasetOp::Dataset will not be optimized because the dataset does not implement the AsGraphDefInternal() method needed to apply optimizations.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/70 [..............................] - ETA: 3:23 - loss: 4.5983 - accuracy: 0.2656\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 2/70 [..............................] - ETA: 4s - loss: 4.6081 - accuracy: 0.1719 \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 4/70 [>.............................] - ETA: 3s - loss: 4.6152 - accuracy: 0.1641\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 6/70 [=>............................] - ETA: 3s - loss: 4.6128 - accuracy: 0.1745\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/70 [==>...........................] - ETA: 2s - loss: 4.6095 - accuracy: 0.1855\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"10/70 [===>..........................] - ETA: 2s - loss: 4.6042 - accuracy: 0.2000\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"11/70 [===>..........................] - ETA: 2s - loss: 4.6032 - accuracy: 0.2088\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"13/70 [====>.........................] - ETA: 2s - loss: 4.6010 - accuracy: 0.2139\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"15/70 [=====>........................] - ETA: 2s - loss: 4.5998 - accuracy: 0.2198\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"17/70 [======>.......................] - ETA: 2s - loss: 4.5975 - accuracy: 0.2252\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"19/70 [=======>......................] - ETA: 2s - loss: 4.5959 - accuracy: 0.2303\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"21/70 [========>.....................] - ETA: 2s - loss: 4.5944 - accuracy: 0.2359\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"23/70 [========>.....................] - ETA: 2s - loss: 4.5940 - accuracy: 0.2357\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"25/70 [=========>....................] - ETA: 2s - loss: 4.5922 - accuracy: 0.2450\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"27/70 [==========>...................] - ETA: 1s - loss: 4.5906 - accuracy: 0.2471\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"29/70 [===========>..................] - ETA: 1s - loss: 4.5890 - accuracy: 0.2516\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"30/70 [===========>..................] - ETA: 1s - loss: 4.5874 - accuracy: 0.2573\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"32/70 [============>.................] - ETA: 1s - loss: 4.5853 - accuracy: 0.2622\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"34/70 [=============>................] - ETA: 1s - loss: 4.5838 - accuracy: 0.2665\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"36/70 [==============>...............] - ETA: 1s - loss: 4.5825 - accuracy: 0.2704\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"38/70 [===============>..............] - ETA: 1s - loss: 4.5813 - accuracy: 0.2714\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"40/70 [================>.............] - ETA: 1s - loss: 4.5797 - accuracy: 0.2730\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"42/70 [=================>............] - ETA: 1s - loss: 4.5773 - accuracy: 0.2839\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"44/70 [=================>............] - ETA: 1s - loss: 4.5753 - accuracy: 0.2919\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"46/70 [==================>...........] - ETA: 1s - loss: 4.5732 - accuracy: 0.2969\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"48/70 [===================>..........] - ETA: 0s - loss: 4.5712 - accuracy: 0.3050\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"50/70 [====================>.........] - ETA: 0s - loss: 4.5691 - accuracy: 0.3097\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"52/70 [=====================>........] - ETA: 0s - loss: 4.5668 - accuracy: 0.3170\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"54/70 [======================>.......] - ETA: 0s - loss: 4.5651 - accuracy: 0.3247\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"56/70 [=======================>......] - ETA: 0s - loss: 4.5627 - accuracy: 0.3329\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"58/70 [=======================>......] - ETA: 0s - loss: 4.5613 - accuracy: 0.3373\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"60/70 [========================>.....] - ETA: 0s - loss: 4.5593 - accuracy: 0.3419\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"61/70 [=========================>....] - ETA: 0s - loss: 4.5587 - accuracy: 0.3458\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"63/70 [==========================>...] - ETA: 0s - loss: 4.5567 - accuracy: 0.3529\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"65/70 [==========================>...] - ETA: 0s - loss: 4.5551 - accuracy: 0.3591\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"67/70 [===========================>..] - ETA: 0s - loss: 4.5531 - accuracy: 0.3680\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"69/70 [============================>.] - ETA: 0s - loss: 4.5510 - accuracy: 0.3768\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - 6s 44ms/step - loss: 2.2751 - accuracy: 0.1901\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 2/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/70 [..............................] - ETA: 2s - loss: 4.4789 - accuracy: 0.5781\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 2/70 [..............................] - ETA: 3s - loss: 4.4789 - accuracy: 0.6250\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 4/70 [>.............................] - ETA: 3s - loss: 4.4732 - accuracy: 0.6797\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 6/70 [=>............................] - ETA: 2s - loss: 4.4714 - accuracy: 0.6667\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/70 [==>...........................] - ETA: 2s - loss: 4.4696 - accuracy: 0.6680\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"10/70 [===>..........................] - ETA: 2s - loss: 4.4676 - accuracy: 0.6734\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"12/70 [====>.........................] - ETA: 2s - loss: 4.4687 - accuracy: 0.6771\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"14/70 [=====>........................] - ETA: 2s - loss: 4.4667 - accuracy: 0.6797\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"16/70 [=====>........................] - ETA: 2s - loss: 4.4648 - accuracy: 0.6797\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"18/70 [======>.......................] - ETA: 2s - loss: 4.4620 - accuracy: 0.6858\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"20/70 [=======>......................] - ETA: 2s - loss: 4.4606 - accuracy: 0.6945\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"22/70 [========>.....................] - ETA: 2s - loss: 4.4595 - accuracy: 0.6932\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"24/70 [=========>....................] - ETA: 2s - loss: 4.4589 - accuracy: 0.7012\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"26/70 [==========>...................] - ETA: 1s - loss: 4.4582 - accuracy: 0.7073\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"28/70 [===========>..................] - ETA: 1s - loss: 4.4572 - accuracy: 0.7070\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"30/70 [===========>..................] - ETA: 1s - loss: 4.4565 - accuracy: 0.7109\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"31/70 [============>.................] - ETA: 1s - loss: 4.4550 - accuracy: 0.7172\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"33/70 [=============>................] - ETA: 1s - loss: 4.4523 - accuracy: 0.7325\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"35/70 [==============>...............] - ETA: 1s - loss: 4.4507 - accuracy: 0.7384\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"37/70 [==============>...............] - ETA: 1s - loss: 4.4485 - accuracy: 0.7466\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"39/70 [===============>..............] - ETA: 1s - loss: 4.4460 - accuracy: 0.7568\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"41/70 [================>.............] - ETA: 1s - loss: 4.4436 - accuracy: 0.7630\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"42/70 [=================>............] - ETA: 1s - loss: 4.4425 - accuracy: 0.7630\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"44/70 [=================>............] - ETA: 1s - loss: 4.4403 - accuracy: 0.7670\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"46/70 [==================>...........] - ETA: 1s - loss: 4.4385 - accuracy: 0.7687\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"48/70 [===================>..........] - ETA: 0s - loss: 4.4362 - accuracy: 0.7738\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"50/70 [====================>.........] - ETA: 0s - loss: 4.4340 - accuracy: 0.7797\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"52/70 [=====================>........] - ETA: 0s - loss: 4.4321 - accuracy: 0.7843\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"54/70 [======================>.......] - ETA: 0s - loss: 4.4298 - accuracy: 0.7917\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"56/70 [=======================>......] - ETA: 0s - loss: 4.4281 - accuracy: 0.7958\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"58/70 [=======================>......] - ETA: 0s - loss: 4.4264 - accuracy: 0.7982\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"60/70 [========================>.....] - ETA: 0s - loss: 4.4233 - accuracy: 0.8049\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"62/70 [=========================>....] - ETA: 0s - loss: 4.4215 - accuracy: 0.8082\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"64/70 [==========================>...] - ETA: 0s - loss: 4.4196 - accuracy: 0.8167\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"66/70 [===========================>..] - ETA: 0s - loss: 4.4178 - accuracy: 0.8191\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"68/70 [============================>.] - ETA: 0s - loss: 4.4154 - accuracy: 0.8265\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - ETA: 0s - loss: 4.4139 - accuracy: 0.8306\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - 3s 44ms/step - loss: 2.2069 - accuracy: 0.4153\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 3/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/70 [..............................] - ETA: 3s - loss: 4.3213 - accuracy: 1.1562\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 2/70 [..............................] - ETA: 3s - loss: 4.3320 - accuracy: 1.1016\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 4/70 [>.............................] - ETA: 3s - loss: 4.3283 - accuracy: 1.0195\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 6/70 [=>............................] - ETA: 2s - loss: 4.3281 - accuracy: 1.0130\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/70 [==>...........................] - ETA: 2s - loss: 4.3306 - accuracy: 0.9980\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"10/70 [===>..........................] - ETA: 2s - loss: 4.3291 - accuracy: 1.0172\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"12/70 [====>.........................] - ETA: 2s - loss: 4.3300 - accuracy: 1.0052\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"14/70 [=====>........................] - ETA: 2s - loss: 4.3260 - accuracy: 1.0056\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"16/70 [=====>........................] - ETA: 2s - loss: 4.3225 - accuracy: 1.0049\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"18/70 [======>.......................] - ETA: 2s - loss: 4.3230 - accuracy: 1.0035\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"20/70 [=======>......................] - ETA: 2s - loss: 4.3206 - accuracy: 1.0094\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"22/70 [========>.....................] - ETA: 2s - loss: 4.3184 - accuracy: 1.0092\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"24/70 [=========>....................] - ETA: 2s - loss: 4.3171 - accuracy: 1.0130\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"26/70 [==========>...................] - ETA: 1s - loss: 4.3150 - accuracy: 1.0156\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"28/70 [===========>..................] - ETA: 1s - loss: 4.3137 - accuracy: 1.0246\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"30/70 [===========>..................] - ETA: 1s - loss: 4.3115 - accuracy: 1.0229\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"32/70 [============>.................] - ETA: 1s - loss: 4.3090 - accuracy: 1.0293\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"34/70 [=============>................] - ETA: 1s - loss: 4.3083 - accuracy: 1.0312\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"36/70 [==============>...............] - ETA: 1s - loss: 4.3058 - accuracy: 1.0317\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"38/70 [===============>..............] - ETA: 1s - loss: 4.3026 - accuracy: 1.0366\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"40/70 [================>.............] - ETA: 1s - loss: 4.2998 - accuracy: 1.0434\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"42/70 [=================>............] - ETA: 1s - loss: 4.2973 - accuracy: 1.0439\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"44/70 [=================>............] - ETA: 1s - loss: 4.2942 - accuracy: 1.0469\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"46/70 [==================>...........] - ETA: 1s - loss: 4.2914 - accuracy: 1.0523\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"48/70 [===================>..........] - ETA: 0s - loss: 4.2887 - accuracy: 1.0537\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"50/70 [====================>.........] - ETA: 0s - loss: 4.2865 - accuracy: 1.0550\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"52/70 [=====================>........] - ETA: 0s - loss: 4.2833 - accuracy: 1.0598\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"54/70 [======================>.......] - ETA: 0s - loss: 4.2809 - accuracy: 1.0637\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"56/70 [=======================>......] - ETA: 0s - loss: 4.2795 - accuracy: 1.0645\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"58/70 [=======================>......] - ETA: 0s - loss: 4.2776 - accuracy: 1.0660\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"60/70 [========================>.....] - ETA: 0s - loss: 4.2747 - accuracy: 1.0693\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"62/70 [=========================>....] - ETA: 0s - loss: 4.2724 - accuracy: 1.0733\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"64/70 [==========================>...] - ETA: 0s - loss: 4.2684 - accuracy: 1.0818\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"66/70 [===========================>..] - ETA: 0s - loss: 4.2654 - accuracy: 1.0859\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"68/70 [============================>.] - ETA: 0s - loss: 4.2634 - accuracy: 1.0880\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - ETA: 0s - loss: 4.2607 - accuracy: 1.0895\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - 3s 44ms/step - loss: 2.1303 - accuracy: 0.5448\n"
]
}
],
"source": [
"%%bash\n",
"python main.py"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hX4FA2O2AuAn"
},
"source": [
"첫 번째 작업자가 작성한 로그를 다시 확인하면 작업자가 해당 모델 훈련에 참여했음을 알 수 있습니다."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:44:12.348220Z",
"iopub.status.busy": "2022-12-15T01:44:12.347534Z",
"iopub.status.idle": "2022-12-15T01:44:12.441184Z",
"shell.execute_reply": "2022-12-15T01:44:12.440293Z"
},
"id": "rc6hw3yTBKXX"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2022-12-15 01:43:45.590694: E tensorflow/tsl/lib/monitoring/collection_registry.cc:81] Cannot register 2 metrics with the same name: /tensorflow/core/bfc_allocator_delay\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2022-12-15 01:43:47.627300: E tensorflow/compiler/xla/stream_executor/cuda/cuda_driver.cc:267] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2022-12-15 01:43:59.020150: W tensorflow/core/grappler/optimizers/data/auto_shard.cc:784] AUTO sharding policy will apply DATA sharding policy as it failed to apply FILE sharding policy because of the following reason: Found an unshardable source dataset: name: \"TensorSliceDataset/_2\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"op: \"TensorSliceDataset\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"input: \"Placeholder/_0\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"input: \"Placeholder/_1\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" key: \"Toutput_types\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" list {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" type: DT_FLOAT\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" type: DT_INT64\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" key: \"_cardinality\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" i: 60000\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" key: \"is_files\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" b: false\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" key: \"metadata\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" s: \"\\n\\024TensorSliceDataset:0\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" key: \"output_shapes\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" list {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" shape {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" dim {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" size: 28\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" dim {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" size: 28\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" shape {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"attr {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" key: \"replicate_on_split\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" value {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" b: false\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"experimental_type {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" type_id: TFT_PRODUCT\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" type_id: TFT_DATASET\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" type_id: TFT_PRODUCT\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" type_id: TFT_TENSOR\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" type_id: TFT_FLOAT\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" type_id: TFT_TENSOR\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" args {\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" type_id: TFT_INT64\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" }\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"}\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"2022-12-15 01:43:59.325986: W tensorflow/core/framework/dataset.cc:807] Input of GeneratorDatasetOp::Dataset will not be optimized because the dataset does not implement the AsGraphDefInternal() method needed to apply optimizations.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/70 [..............................] - ETA: 3:23 - loss: 4.5983 - accuracy: 0.2656\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 2/70 [..............................] - ETA: 4s - loss: 4.6081 - accuracy: 0.1719 \b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 4/70 [>.............................] - ETA: 3s - loss: 4.6152 - accuracy: 0.1641\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 6/70 [=>............................] - ETA: 3s - loss: 4.6128 - accuracy: 0.1745\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/70 [==>...........................] - ETA: 2s - loss: 4.6095 - accuracy: 0.1855\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"10/70 [===>..........................] - ETA: 2s - loss: 4.6042 - accuracy: 0.2000\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"11/70 [===>..........................] - ETA: 2s - loss: 4.6032 - accuracy: 0.2088\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"13/70 [====>.........................] - ETA: 2s - loss: 4.6010 - accuracy: 0.2139\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"15/70 [=====>........................] - ETA: 2s - loss: 4.5998 - accuracy: 0.2198\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"17/70 [======>.......................] - ETA: 2s - loss: 4.5975 - accuracy: 0.2252\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"19/70 [=======>......................] - ETA: 2s - loss: 4.5959 - accuracy: 0.2303\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"21/70 [========>.....................] - ETA: 2s - loss: 4.5944 - accuracy: 0.2359\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"23/70 [========>.....................] - ETA: 2s - loss: 4.5940 - accuracy: 0.2357\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"25/70 [=========>....................] - ETA: 2s - loss: 4.5922 - accuracy: 0.2450\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"27/70 [==========>...................] - ETA: 1s - loss: 4.5906 - accuracy: 0.2471\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"29/70 [===========>..................] - ETA: 1s - loss: 4.5890 - accuracy: 0.2516\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"30/70 [===========>..................] - ETA: 1s - loss: 4.5874 - accuracy: 0.2573\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"32/70 [============>.................] - ETA: 1s - loss: 4.5853 - accuracy: 0.2622\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"34/70 [=============>................] - ETA: 1s - loss: 4.5838 - accuracy: 0.2665\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"36/70 [==============>...............] - ETA: 1s - loss: 4.5825 - accuracy: 0.2704\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"38/70 [===============>..............] - ETA: 1s - loss: 4.5813 - accuracy: 0.2714\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"40/70 [================>.............] - ETA: 1s - loss: 4.5797 - accuracy: 0.2730\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"42/70 [=================>............] - ETA: 1s - loss: 4.5773 - accuracy: 0.2839\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"44/70 [=================>............] - ETA: 1s - loss: 4.5753 - accuracy: 0.2919\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"46/70 [==================>...........] - ETA: 1s - loss: 4.5732 - accuracy: 0.2969\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"48/70 [===================>..........] - ETA: 0s - loss: 4.5712 - accuracy: 0.3050\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"50/70 [====================>.........] - ETA: 0s - loss: 4.5691 - accuracy: 0.3097\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"52/70 [=====================>........] - ETA: 0s - loss: 4.5668 - accuracy: 0.3170\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"54/70 [======================>.......] - ETA: 0s - loss: 4.5651 - accuracy: 0.3247\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"56/70 [=======================>......] - ETA: 0s - loss: 4.5627 - accuracy: 0.3329\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"58/70 [=======================>......] - ETA: 0s - loss: 4.5613 - accuracy: 0.3373\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"60/70 [========================>.....] - ETA: 0s - loss: 4.5593 - accuracy: 0.3419\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"61/70 [=========================>....] - ETA: 0s - loss: 4.5587 - accuracy: 0.3458\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"63/70 [==========================>...] - ETA: 0s - loss: 4.5567 - accuracy: 0.3529\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"65/70 [==========================>...] - ETA: 0s - loss: 4.5551 - accuracy: 0.3591\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"67/70 [===========================>..] - ETA: 0s - loss: 4.5531 - accuracy: 0.3680\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"69/70 [============================>.] - ETA: 0s - loss: 4.5510 - accuracy: 0.3768\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - 6s 44ms/step - loss: 2.2751 - accuracy: 0.1901\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 2/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/70 [..............................] - ETA: 2s - loss: 4.4789 - accuracy: 0.5781\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 2/70 [..............................] - ETA: 3s - loss: 4.4789 - accuracy: 0.6250\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 4/70 [>.............................] - ETA: 3s - loss: 4.4732 - accuracy: 0.6797\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 6/70 [=>............................] - ETA: 2s - loss: 4.4714 - accuracy: 0.6667\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/70 [==>...........................] - ETA: 2s - loss: 4.4696 - accuracy: 0.6680\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"10/70 [===>..........................] - ETA: 2s - loss: 4.4676 - accuracy: 0.6734\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"12/70 [====>.........................] - ETA: 2s - loss: 4.4687 - accuracy: 0.6771\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"14/70 [=====>........................] - ETA: 2s - loss: 4.4667 - accuracy: 0.6797\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"16/70 [=====>........................] - ETA: 2s - loss: 4.4648 - accuracy: 0.6797\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"18/70 [======>.......................] - ETA: 2s - loss: 4.4620 - accuracy: 0.6858\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"20/70 [=======>......................] - ETA: 2s - loss: 4.4606 - accuracy: 0.6945\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"22/70 [========>.....................] - ETA: 2s - loss: 4.4595 - accuracy: 0.6932\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"24/70 [=========>....................] - ETA: 2s - loss: 4.4589 - accuracy: 0.7012\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"26/70 [==========>...................] - ETA: 1s - loss: 4.4582 - accuracy: 0.7073\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"28/70 [===========>..................] - ETA: 1s - loss: 4.4572 - accuracy: 0.7070\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"30/70 [===========>..................] - ETA: 1s - loss: 4.4565 - accuracy: 0.7109\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"31/70 [============>.................] - ETA: 1s - loss: 4.4550 - accuracy: 0.7172\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"33/70 [=============>................] - ETA: 1s - loss: 4.4523 - accuracy: 0.7325\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"35/70 [==============>...............] - ETA: 1s - loss: 4.4507 - accuracy: 0.7384\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"37/70 [==============>...............] - ETA: 1s - loss: 4.4485 - accuracy: 0.7466\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"39/70 [===============>..............] - ETA: 1s - loss: 4.4460 - accuracy: 0.7568\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"41/70 [================>.............] - ETA: 1s - loss: 4.4436 - accuracy: 0.7630\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"42/70 [=================>............] - ETA: 1s - loss: 4.4425 - accuracy: 0.7630\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"44/70 [=================>............] - ETA: 1s - loss: 4.4403 - accuracy: 0.7670\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"46/70 [==================>...........] - ETA: 1s - loss: 4.4385 - accuracy: 0.7687\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"48/70 [===================>..........] - ETA: 0s - loss: 4.4362 - accuracy: 0.7738\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"50/70 [====================>.........] - ETA: 0s - loss: 4.4340 - accuracy: 0.7797\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"52/70 [=====================>........] - ETA: 0s - loss: 4.4321 - accuracy: 0.7843\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"54/70 [======================>.......] - ETA: 0s - loss: 4.4298 - accuracy: 0.7917\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"56/70 [=======================>......] - ETA: 0s - loss: 4.4281 - accuracy: 0.7958\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"58/70 [=======================>......] - ETA: 0s - loss: 4.4264 - accuracy: 0.7982\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"60/70 [========================>.....] - ETA: 0s - loss: 4.4233 - accuracy: 0.8049\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"62/70 [=========================>....] - ETA: 0s - loss: 4.4215 - accuracy: 0.8082\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"64/70 [==========================>...] - ETA: 0s - loss: 4.4196 - accuracy: 0.8167\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"66/70 [===========================>..] - ETA: 0s - loss: 4.4178 - accuracy: 0.8191\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"68/70 [============================>.] - ETA: 0s - loss: 4.4154 - accuracy: 0.8265\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - ETA: 0s - loss: 4.4139 - accuracy: 0.8306\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - 3s 44ms/step - loss: 2.2069 - accuracy: 0.4153\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 3/3\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/70 [..............................] - ETA: 3s - loss: 4.3213 - accuracy: 1.1562\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 2/70 [..............................] - ETA: 3s - loss: 4.3320 - accuracy: 1.1016\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 4/70 [>.............................] - ETA: 3s - loss: 4.3283 - accuracy: 1.0195\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 6/70 [=>............................] - ETA: 2s - loss: 4.3281 - accuracy: 1.0130\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/70 [==>...........................] - ETA: 2s - loss: 4.3306 - accuracy: 0.9980\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"10/70 [===>..........................] - ETA: 2s - loss: 4.3291 - accuracy: 1.0172\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"12/70 [====>.........................] - ETA: 2s - loss: 4.3300 - accuracy: 1.0052\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"14/70 [=====>........................] - ETA: 2s - loss: 4.3260 - accuracy: 1.0056\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"16/70 [=====>........................] - ETA: 2s - loss: 4.3225 - accuracy: 1.0049\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"18/70 [======>.......................] - ETA: 2s - loss: 4.3230 - accuracy: 1.0035\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"20/70 [=======>......................] - ETA: 2s - loss: 4.3206 - accuracy: 1.0094\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"22/70 [========>.....................] - ETA: 2s - loss: 4.3184 - accuracy: 1.0092\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"24/70 [=========>....................] - ETA: 2s - loss: 4.3171 - accuracy: 1.0130\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"26/70 [==========>...................] - ETA: 1s - loss: 4.3150 - accuracy: 1.0156\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"28/70 [===========>..................] - ETA: 1s - loss: 4.3137 - accuracy: 1.0246\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"30/70 [===========>..................] - ETA: 1s - loss: 4.3115 - accuracy: 1.0229\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"32/70 [============>.................] - ETA: 1s - loss: 4.3090 - accuracy: 1.0293\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"34/70 [=============>................] - ETA: 1s - loss: 4.3083 - accuracy: 1.0312\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"36/70 [==============>...............] - ETA: 1s - loss: 4.3058 - accuracy: 1.0317\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"38/70 [===============>..............] - ETA: 1s - loss: 4.3026 - accuracy: 1.0366\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"40/70 [================>.............] - ETA: 1s - loss: 4.2998 - accuracy: 1.0434\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"42/70 [=================>............] - ETA: 1s - loss: 4.2973 - accuracy: 1.0439\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"44/70 [=================>............] - ETA: 1s - loss: 4.2942 - accuracy: 1.0469\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"46/70 [==================>...........] - ETA: 1s - loss: 4.2914 - accuracy: 1.0523\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"48/70 [===================>..........] - ETA: 0s - loss: 4.2887 - accuracy: 1.0537\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"50/70 [====================>.........] - ETA: 0s - loss: 4.2865 - accuracy: 1.0550\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"52/70 [=====================>........] - ETA: 0s - loss: 4.2833 - accuracy: 1.0598\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"54/70 [======================>.......] - ETA: 0s - loss: 4.2809 - accuracy: 1.0637\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"56/70 [=======================>......] - ETA: 0s - loss: 4.2795 - accuracy: 1.0645\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"58/70 [=======================>......] - ETA: 0s - loss: 4.2776 - accuracy: 1.0660\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"60/70 [========================>.....] - ETA: 0s - loss: 4.2747 - accuracy: 1.0693\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"62/70 [=========================>....] - ETA: 0s - loss: 4.2724 - accuracy: 1.0733\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"64/70 [==========================>...] - ETA: 0s - loss: 4.2684 - accuracy: 1.0818\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"66/70 [===========================>..] - ETA: 0s - loss: 4.2654 - accuracy: 1.0859\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"68/70 [============================>.] - ETA: 0s - loss: 4.2634 - accuracy: 1.0880\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - ETA: 0s - loss: 4.2607 - accuracy: 1.0895\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"70/70 [==============================] - 3s 44ms/step - loss: 2.1303 - accuracy: 0.5448\n"
]
}
],
"source": [
"%%bash\n",
"cat job_0.log"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "zL79ak5PMzEg"
},
"source": [
"참고: 단일 시스템에서 여러 작업자를 실행하면 오버헤드만 추가되기 때문에 이 튜토리얼의 시작 부분에서 실행한 테스트보다 느리게 실행될 수 있습니다. 여기서 목표는 훈련 시간을 개선하는 것이 아니라 다중 작업자 훈련의 예를 제공하는 것입니다.\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:44:12.476287Z",
"iopub.status.busy": "2022-12-15T01:44:12.475909Z",
"iopub.status.idle": "2022-12-15T01:44:12.481707Z",
"shell.execute_reply": "2022-12-15T01:44:12.480995Z"
},
"id": "sG5_1UgrgniF"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"All background processes were killed.\n"
]
}
],
"source": [
"# Delete the `TF_CONFIG`, and kill any background tasks so they don't affect the next section.\n",
"os.environ.pop('TF_CONFIG', None)\n",
"%killbgscripts"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9j2FJVHoUIrE"
},
"source": [
"## 심층적 다중 작업자 훈련\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "C1hBks_dAZmT"
},
"source": [
"지금까지 기본적인 다중 작업자 설정을 수행하는 방법을 배웠습니다. 튜토리얼의 나머지 부분에서는 실제 사용 사례에 유용하거나 중요할 수 있는 다른 요소에 대해 자세히 설명합니다."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Rr14Vl9GR4zq"
},
"source": [
"### 데이터세트 샤딩\n",
"\n",
"다중 작업자 훈련 중 수렴과 성능을 보장하려면 데이터 샤딩이 필요합니다.\n",
"\n",
"이전 섹션의 예는 `tf.distribute.Strategy` API에서 제공하는 기본 자동 샤딩을 이용합니다. `tf.data.experimental.DistributeOptions`의 `tf.data.experimental.AutoShardPolicy`를 설정하여 샤딩을 제어할 수 있습니다.\n",
"\n",
"*자동 샤딩*에 대한 자세한 내용은 [분산 입력 가이드](https://www.tensorflow.org/tutorials/distribute/input#sharding)를 참조하세요.\n",
"\n",
"다음은 각 복제본이 모든 예를 처리하도록 자동 샤딩을 해제하는 방법을 보여주는 간단한 예입니다(*권장하지 않음*).\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:44:12.485774Z",
"iopub.status.busy": "2022-12-15T01:44:12.485253Z",
"iopub.status.idle": "2022-12-15T01:44:13.021087Z",
"shell.execute_reply": "2022-12-15T01:44:13.020286Z"
},
"id": "JxEtdh1vH-TF"
},
"outputs": [],
"source": [
"options = tf.data.Options()\n",
"options.experimental_distribute.auto_shard_policy = tf.data.experimental.AutoShardPolicy.OFF\n",
"\n",
"global_batch_size = 64\n",
"multi_worker_dataset = mnist_setup.mnist_dataset(batch_size=64)\n",
"dataset_no_auto_shard = multi_worker_dataset.with_options(options)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "z85hElxsBQsT"
},
"source": [
"### 평가"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "gmqvlh5LhAoU"
},
"source": [
"`validation_data`를 `Model.fit`에도 전달하면 각 epoch에 대해 훈련과 평가가 번갈아 이루어집니다. 평가 작업은 동일한 작업자 집합에 배포되고 그 결과가 집계되어 모든 작업자가 사용할 수 있습니다.\n",
"\n",
"훈련과 마찬가지로 검증 데이터세트는 파일 수준에서 자동으로 샤딩됩니다. 검증 데이터세트에서 전역 배치 크기를 설정하고 `validation_steps`를 설정해야 합니다.\n",
"\n",
"평가를 위해 반복되는 데이터세트(`tf.data.Dataset.repeat` 호출)를 권장합니다.\n",
"\n",
"또는 주기적으로 체크포인트를 읽고 평가를 실행하는 다른 작업을 생성할 수도 있습니다. 이것이 Estimator가 하는 일입니다. 그러나 이는 권장되는 평가 방법이 아니므로 자세한 내용은 생략합니다."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FNkoxUPJBNTb"
},
"source": [
"### 공연"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XVk4ftYx6JAO"
},
"source": [
"다중 작업자 훈련의 성능을 조정하기 위해 다음을 시도할 수 있습니다.\n",
"\n",
"- `tf.distribute.MultiWorkerMirroredStrategy`는 다수의 [집합 통신 구현](https://www.tensorflow.org/api_docs/python/tf/distribute/experimental/CommunicationImplementation)을 제공합니다.\n",
"\n",
" - `RING`은 호스트 사이의 통신 레이어로 gRPC를 사용하여 링 기반 집합체를 구현합니다.\n",
" - `NCCL`은 [NVIDIA 집합 통신 라이브러리](https://developer.nvidia.com/nccl)를 사용하여 집합체를 구현합니다.\n",
" - `AUTO`는 선택을 런타임으로 미룹니다.\n",
"\n",
" 최선의 집합체 구현 선택은 클러스터의 GPU 수, GPU 유형 및 네트워크 상호 연결에 따라 다릅니다. 자동 선택을 재정의하려면 `MultiWorkerMirroredStrategy` 생성자의 `communication_options` 매개변수를 지정합니다. 예를 들면 다음과 같습니다.\n",
"\n",
" ```python\n",
" communication_options=tf.distribute.experimental.CommunicationOptions(implementation=tf.distribute.experimental.CommunicationImplementation.NCCL)\n",
" ```\n",
"\n",
"- 가능한 경우 변수를 `tf.float`로 캐스팅합니다.\n",
"\n",
" - 공식 ResNet 모델에는 이를 수행하는 방법의 [예](https://github.com/tensorflow/models/blob/8367cf6dabe11adf7628541706b660821f397dce/official/resnet/resnet_model.py#L466)가 포함되어 있습니다."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "97WhAu8uKw3j"
},
"source": [
"### 내결함성\n",
"\n",
"동기식 훈련에서 작업자 중 하나가 실패하고 실패 복구 메커니즘이 없으면 클러스터가 실패합니다.\n",
"\n",
"`tf.distribute.Strategy`와 함께 Keras를 사용하면 작업자가 작동하지 않거나 불안정한 경우 내결함성의 이점이 있습니다. 이를 위해 이전에 실패했거나 선점한 인스턴스를 다시 시작할 때 훈련 상태가 복구되도록 선택한 분산 파일 시스템에서 훈련 상태를 유지할 수 있습니다.\n",
"\n",
"작업자를 사용할 수 없게 되면 다른 작업자가 실패합니다(시간 초과 후). 이러한 경우 사용할 수 없는 작업자는 물론 실패한 다른 작업자도 다시 시작해야 합니다.\n",
"\n",
"참고: 이전에는 다중 작업자 훈련 작업 중 장애로 인해 훈련을 재시작할 경우 `ModelCheckpoint` 콜백이 훈련 상태를 복구하는 메커니즘을 제공했습니다. TensorFlow 팀은 일관성 있는 경험을 위해 단일 작업자 훈련 지원을 추가로 제공하고자 [`BackupAndRestore`](#scrollTo=kmH8uCUhfn4w) 콜백을 새롭게 도입하였으며, 기존 `ModelCheckpoint` 콜백의 내결함성 기능을 제거했습니다. 이제 해당 동작을 사용하는 애플리케이션은 새 `BackupAndRestore` 콜백으로 마이그레이션해야 합니다."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "KvHPjGlyyFt6"
},
"source": [
"#### `ModelCheckpoint` 콜백\n",
"\n",
"`ModelCheckpoint` 콜백은 더 이상 내결함성 기능을 제공하지 않습니다. 대신 [`BackupAndRestore`](#scrollTo=kmH8uCUhfn4w) 콜백을 사용하세요.\n",
"\n",
"`ModelCheckpoint` 콜백은 여전히 체크포인트를 저장하는 데 사용할 수 있습니다. 하지만 이를 통해 훈련이 중단되거나 성공적으로 종료된 경우 체크포인트에서 훈련을 계속하기 위해 사용자가 수동으로 모델을 로드해야 합니다.\n",
"\n",
"필요한 경우, `ModelCheckpoint` 콜백 외부에서 모델/가중치를 저장하고 복원하도록 선택할 수 있습니다."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "EUNV5Utc1d0s"
},
"source": [
"### 모델 저장 및 로드하기\n",
"\n",
"`model.save` 또는 `tf.saved_model.save`를 사용하여 모델을 저장하려면 작업자마다 저장 대상이 달라야 합니다.\n",
"\n",
"- 수석 작업자가 아닌 경우 모델을 임시 디렉터리에 저장해야 합니다.\n",
"- 수석 작업자의 경우 제공된 모델 디렉터리에 저장해야 합니다.\n",
"\n",
"여러 작업자가 동일한 위치에 쓰려고 하여 오류가 발생하는 것을 방지하기 위해 작업자의 임시 디렉터리는 고유해야 합니다.\n",
"\n",
"모든 디렉터리에 저장되는 모델은 동일하며, 일반적으로 수석 작업자가 저장한 모델만 복원 또는 제공을 위해 참조해야 합니다.\n",
"\n",
"훈련이 완료되면 작업자가 만든 임시 디렉터리를 삭제하는 정리 논리가 있어야 합니다.\n",
"\n",
"수석 작업자와 작업자에서 동시에 저장하는 이유는 체크포인트 동안 변수를 집계해야 할 수 있고, 이를 위해 수석 작업자와 작업자가 모두 allreduce 통신 프로토콜에 참여해야 하기 때문입니다. 반면, 수석 작업자와 작업자를 같은 모델 디렉터리에 저장하도록 하면 경합으로 인해 오류가 발생합니다.\n",
"\n",
"`MultiWorkerMirroredStrategy`를 사용하면 프로그램이 모든 작업자에서 실행되고 현재 작업자가 책임 작업자인지 여부를 알기 위해 `task_type` 및 `task_id` 특성을 갖는 클러스터 확인자 객체가 이용됩니다.\n",
"\n",
"- `task_type`은 현재 작업이 무엇인지 알려줍니다(예: `'worker'`).\n",
"- `task_id`는 작업자의 식별자를 알려줍니다.\n",
"- `task_id == 0`인 작업자가 수석 작업자로 지정됩니다.\n",
"\n",
"아래 코드 스니펫에서 `write_filepath` 함수는 작업자의 `task_id`에 따라 쓸 파일 경로를 제공합니다.\n",
"\n",
"- 수석 작업자(`task_id == 0`)의 경우 원래 파일 경로에 씁니다.\n",
"- 다른 작업자의 경우 쓸 디렉터리 경로에 `task_id`가 있는 임시 디렉터리인 `temp_dir`가 만들어집니다."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:44:13.026656Z",
"iopub.status.busy": "2022-12-15T01:44:13.026126Z",
"iopub.status.idle": "2022-12-15T01:44:13.032376Z",
"shell.execute_reply": "2022-12-15T01:44:13.031737Z"
},
"id": "XQfGkmg-pfCY"
},
"outputs": [],
"source": [
"model_path = '/tmp/keras-model'\n",
"\n",
"def _is_chief(task_type, task_id):\n",
" # Note: there are two possible `TF_CONFIG` configurations.\n",
" # 1) In addition to `worker` tasks, a `chief` task type is use;\n",
" # in this case, this function should be modified to\n",
" # `return task_type == 'chief'`.\n",
" # 2) Only `worker` task type is used; in this case, worker 0 is\n",
" # regarded as the chief. The implementation demonstrated here\n",
" # is for this case.\n",
" # For the purpose of this Colab section, the `task_type` is `None` case\n",
" # is added because it is effectively run with only a single worker.\n",
" return (task_type == 'worker' and task_id == 0) or task_type is None\n",
"\n",
"def _get_temp_dir(dirpath, task_id):\n",
" base_dirpath = 'workertemp_' + str(task_id)\n",
" temp_dir = os.path.join(dirpath, base_dirpath)\n",
" tf.io.gfile.makedirs(temp_dir)\n",
" return temp_dir\n",
"\n",
"def write_filepath(filepath, task_type, task_id):\n",
" dirpath = os.path.dirname(filepath)\n",
" base = os.path.basename(filepath)\n",
" if not _is_chief(task_type, task_id):\n",
" dirpath = _get_temp_dir(dirpath, task_id)\n",
" return os.path.join(dirpath, base)\n",
"\n",
"task_type, task_id = (strategy.cluster_resolver.task_type,\n",
" strategy.cluster_resolver.task_id)\n",
"write_model_path = write_filepath(model_path, task_type, task_id)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hs0_agYR_qKm"
},
"source": [
"이제 저장할 준비가 되었습니다."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:44:13.036023Z",
"iopub.status.busy": "2022-12-15T01:44:13.035419Z",
"iopub.status.idle": "2022-12-15T01:44:13.766856Z",
"shell.execute_reply": "2022-12-15T01:44:13.766043Z"
},
"id": "J-yA3BYG_vTs"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:absl:Found untraced functions such as _jit_compiled_convolution_op, _update_step_xla while saving (showing 2 of 2). These functions will not be directly callable after loading.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"INFO:tensorflow:Assets written to: /tmp/keras-model/assets\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:tensorflow:Assets written to: /tmp/keras-model/assets\n"
]
}
],
"source": [
"multi_worker_model.save(write_model_path)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8LXUVVl9_v5x"
},
"source": [
"위에서 설명한 것처럼 나중에 모델은 책임 작업자가 저장한 파일 경로에서만 로드되어야 됩니다. 따라서 비 책임 작업자가 저장한 임시 항목을 제거하세요."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:44:13.772298Z",
"iopub.status.busy": "2022-12-15T01:44:13.771654Z",
"iopub.status.idle": "2022-12-15T01:44:13.775541Z",
"shell.execute_reply": "2022-12-15T01:44:13.774901Z"
},
"id": "aJTyu-97ABpY"
},
"outputs": [],
"source": [
"if not _is_chief(task_type, task_id):\n",
" tf.io.gfile.rmtree(os.path.dirname(write_model_path))"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Nr-2PKlHAPBT"
},
"source": [
"이제 로드할 때 편리한 `tf.keras.models.load_model` API를 사용하여 추가 작업을 계속합니다.\n",
"\n",
"여기에서는 단일 작업자만 사용하여 훈련을 로드하고 계속한다고 가정합니다. 이 경우 다른 `strategy.scope()` 내에서 `tf.keras.models.load_model`을 호출하지 않습니다(앞서 정의한 바와 같이 `strategy = tf.distribute.MultiWorkerMirroredStrategy()`임에 유의):"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"execution": {
"iopub.execute_input": "2022-12-15T01:44:13.779424Z",
"iopub.status.busy": "2022-12-15T01:44:13.778891Z",
"iopub.status.idle": "2022-12-15T01:44:14.816918Z",
"shell.execute_reply": "2022-12-15T01:44:14.816197Z"
},
"id": "iUZna-JKAOrX"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/2\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/20 [>.............................] - ETA: 9s - loss: 2.3034 - accuracy: 0.0469"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 8/20 [===========>..................] - ETA: 0s - loss: 2.3107 - accuracy: 0.0586"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"15/20 [=====================>........] - ETA: 0s - loss: 2.3043 - accuracy: 0.0698"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"20/20 [==============================] - 1s 8ms/step - loss: 2.3017 - accuracy: 0.0852\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 2/2\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r",
" 1/20 [>.............................] - ETA: 0s - loss: 2.2891 - accuracy: 0.1875"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
" 9/20 [============>.................] - ETA: 0s - loss: 2.2874 - accuracy: 0.1615"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"17/20 [========================>.....] - ETA: 0s - loss: 2.2821 - accuracy: 0.1792"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\r",
"20/20 [==============================] - 0s 7ms/step - loss: 2.2802 - accuracy: 0.1797\n"
]
},
{
"data": {
"text/plain": [
"tf.keras.models.load_model
을 각각 모델 저장과 복원에 사용하고 훈련 중 `Model.fit`에 `initial_epoch`를 제공하는 방법을 고려해 보세요."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ega2hdOQEmy_"
},
"source": [
"## 추가 자료\n",
"\n",
"1. [TensorFlow에서 분산 훈련하기](../../guide/distributed_training.ipynb) 가이드는 사용 가능한 분산 전략을 간략히 소개합니다.\n",
"2. [Keras 및 MultiWorkerMirroredStrategy를 이용한 사용자 지정 훈련 루프](multi_worker_with_ctl.ipynb) 튜토리얼은 Keras 및 사용자 지정 훈련 루프와 함께 `MultiWorkerMirroredStrategy`를 이용하는 방법을 보여줍니다.\n",
"3. 여러 분산 전략을 실행하도록 구성할 수 있는 [공식 모델](https://github.com/tensorflow/models/tree/master/official)을 확인해 보세요.\n",
"4. [tf.function으로 성능 향상](../../guide/function.ipynb) 가이드는 TensorFlow 모델의 성능을 최적화하는 데 사용할 수 있는 [TensorFlow 프로파일러](../../guide/profiler.md)와 같은 다른 전략 및 도구에 대한 정보를 제공합니다."
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"name": "multi_worker_with_keras.ipynb",
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.16"
}
},
"nbformat": 4,
"nbformat_minor": 0
}