Quickstart#

In this guide, we will train a simple Convolutional Neural Network (CNN) on MNIST handwritten digits dataset. We will simulate a Federated Learning experiment between two collaborators, orchestrated by an aggregator, using the TaskRunner CLI interface.

OpenFL must be installed for this tutorial. Refer to the installation guide.

# Suppress TensorFlow warnings
%env TF_CPP_MIN_LOG_LEVEL=3
env: TF_CPP_MIN_LOG_LEVEL=3

Create a workspace#

For brevity, we will reuse an existing workspace.

!fx workspace create --prefix ./mnist_example --template keras_cnn_mnist
%cd ./mnist_example
Creating Workspace Directories
Creating Workspace Templates from /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/keras_cnn_mnist in /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example
Collecting keras==3.6.0 (from -r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1))
  Downloading keras-3.6.0-py3-none-any.whl.metadata (5.8 kB)
Collecting tensorflow==2.18.0 (from -r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading tensorflow-2.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)
Collecting absl-py (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1))
  Downloading absl_py-2.1.0-py3-none-any.whl.metadata (2.3 kB)
Requirement already satisfied: numpy in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (2.2.3)
Requirement already satisfied: rich in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (13.9.4)
Collecting namex (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1))
  Downloading namex-0.0.8-py3-none-any.whl.metadata (246 bytes)
Collecting h5py (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1))
  Downloading h5py-3.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.5 kB)
Collecting optree (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1))
  Downloading optree-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (47 kB)
Collecting ml-dtypes (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1))
  Downloading ml_dtypes-0.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB)
Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (24.2)
Collecting astunparse>=1.6.0 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading astunparse-1.6.3-py2.py3-none-any.whl.metadata (4.4 kB)
Collecting flatbuffers>=24.3.25 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading flatbuffers-25.2.10-py2.py3-none-any.whl.metadata (875 bytes)
Collecting gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading gast-0.6.0-py3-none-any.whl.metadata (1.3 kB)
Collecting google-pasta>=0.1.1 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading google_pasta-0.2.0-py3-none-any.whl.metadata (814 bytes)
Collecting libclang>=13.0.0 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading libclang-18.1.1-py2.py3-none-manylinux2010_x86_64.whl.metadata (5.2 kB)
Collecting opt-einsum>=2.3.2 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading opt_einsum-3.4.0-py3-none-any.whl.metadata (6.3 kB)
Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.3 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (5.29.3)
Requirement already satisfied: requests<3,>=2.21.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (2.32.3)
Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (75.8.0)
Requirement already satisfied: six>=1.12.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (1.17.0)
Collecting termcolor>=1.1.0 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading termcolor-2.5.0-py3-none-any.whl.metadata (6.1 kB)
Requirement already satisfied: typing-extensions>=3.6.6 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (4.12.2)
Collecting wrapt>=1.11.0 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.4 kB)
Requirement already satisfied: grpcio<2.0,>=1.24.3 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (1.65.5)
Collecting tensorboard<2.19,>=2.18 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading tensorboard-2.18.0-py3-none-any.whl.metadata (1.6 kB)
Collecting numpy (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1))
  Downloading numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)
Collecting ml-dtypes (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1))
  Downloading ml_dtypes-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (20 kB)
Collecting tensorflow-io-gcs-filesystem>=0.23.1 (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading tensorflow_io_gcs_filesystem-0.37.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (14 kB)
Requirement already satisfied: wheel<1.0,>=0.23.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from astunparse>=1.6.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (0.40.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (3.4.1)
Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (2.3.0)
Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (2025.1.31)
Collecting markdown>=2.6.8 (from tensorboard<2.19,>=2.18->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading Markdown-3.7-py3-none-any.whl.metadata (7.0 kB)
Collecting tensorboard-data-server<0.8.0,>=0.7.0 (from tensorboard<2.19,>=2.18->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl.metadata (1.1 kB)
Collecting werkzeug>=1.0.1 (from tensorboard<2.19,>=2.18->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2))
  Downloading werkzeug-3.1.3-py3-none-any.whl.metadata (3.7 kB)
Requirement already satisfied: markdown-it-py>=2.2.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from rich->keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from rich->keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (2.19.1)
Requirement already satisfied: mdurl~=0.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich->keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (0.1.2)
Requirement already satisfied: MarkupSafe>=2.1.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from werkzeug>=1.0.1->tensorboard<2.19,>=2.18->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (3.0.2)
Downloading keras-3.6.0-py3-none-any.whl (1.2 MB)
?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/1.2 MB ? eta -:--:--
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 38.2 MB/s eta 0:00:00
?25hDownloading tensorflow-2.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (615.3 MB)
?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/615.3 MB ? eta -:--:--
   ━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 34.9/615.3 MB 174.9 MB/s eta 0:00:04
   ━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 68.4/615.3 MB 169.5 MB/s eta 0:00:04
   ━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.6/615.3 MB 164.7 MB/s eta 0:00:04
   ━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.0/615.3 MB 165.6 MB/s eta 0:00:03
   ━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━ 173.8/615.3 MB 171.8 MB/s eta 0:00:03
   ━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━ 204.7/615.3 MB 168.6 MB/s eta 0:00:03
   ━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━ 218.9/615.3 MB 170.1 MB/s eta 0:00:03
   ━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━ 256.4/615.3 MB 159.4 MB/s eta 0:00:03
   ━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━ 301.7/615.3 MB 164.4 MB/s eta 0:00:02
   ━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━━━ 347.9/615.3 MB 172.4 MB/s eta 0:00:02
   ━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━━ 382.2/615.3 MB 175.9 MB/s eta 0:00:02
   ━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━ 419.7/615.3 MB 174.3 MB/s eta 0:00:02
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━ 459.5/615.3 MB 180.2 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━ 500.2/615.3 MB 199.5 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━ 541.1/615.3 MB 199.9 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━ 582.2/615.3 MB 195.8 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 615.3/615.3 MB 195.7 MB/s eta 0:00:01
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 615.3/615.3 MB 27.4 MB/s eta 0:00:00
?25h
Downloading absl_py-2.1.0-py3-none-any.whl (133 kB)
Downloading astunparse-1.6.3-py2.py3-none-any.whl (12 kB)
Downloading flatbuffers-25.2.10-py2.py3-none-any.whl (30 kB)
Downloading gast-0.6.0-py3-none-any.whl (21 kB)
Downloading google_pasta-0.2.0-py3-none-any.whl (57 kB)
Downloading h5py-3.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB)
?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/4.5 MB ? eta -:--:--
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 122.5 MB/s eta 0:00:00
?25hDownloading libclang-18.1.1-py2.py3-none-manylinux2010_x86_64.whl (24.5 MB)
?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/24.5 MB ? eta -:--:--
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.5/24.5 MB 151.1 MB/s eta 0:00:00
?25hDownloading ml_dtypes-0.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 133.1 MB/s eta 0:00:00
?25h
Downloading numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.5 MB)
?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/19.5 MB ? eta -:--:--
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.5/19.5 MB 142.2 MB/s eta 0:00:00
?25h
Downloading opt_einsum-3.4.0-py3-none-any.whl (71 kB)
Downloading tensorboard-2.18.0-py3-none-any.whl (5.5 MB)
?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/5.5 MB ? eta -:--:--
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.5/5.5 MB 137.1 MB/s eta 0:00:00
?25hDownloading tensorflow_io_gcs_filesystem-0.37.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.1 MB)
?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/5.1 MB ? eta -:--:--
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.1/5.1 MB 140.7 MB/s eta 0:00:00
?25hDownloading termcolor-2.5.0-py3-none-any.whl (7.8 kB)
Downloading wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (82 kB)
Downloading namex-0.0.8-py3-none-any.whl (5.8 kB)
Downloading optree-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (391 kB)
Downloading Markdown-3.7-py3-none-any.whl (106 kB)
Downloading tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl (6.6 MB)
?25l   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/6.6 MB ? eta -:--:--
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.6/6.6 MB 140.2 MB/s eta 0:00:00
?25hDownloading werkzeug-3.1.3-py3-none-any.whl (224 kB)
Installing collected packages: namex, libclang, flatbuffers, wrapt, werkzeug, termcolor, tensorflow-io-gcs-filesystem, tensorboard-data-server, optree, opt-einsum, numpy, markdown, google-pasta, gast, astunparse, absl-py, tensorboard, ml-dtypes, h5py, keras, tensorflow
  Attempting uninstall: numpy
    Found existing installation: numpy 2.2.3
    Uninstalling numpy-2.2.3:
      Successfully uninstalled numpy-2.2.3
Successfully installed absl-py-2.1.0 astunparse-1.6.3 flatbuffers-25.2.10 gast-0.6.0 google-pasta-0.2.0 h5py-3.13.0 keras-3.6.0 libclang-18.1.1 markdown-3.7 ml-dtypes-0.4.1 namex-0.0.8 numpy-2.0.2 opt-einsum-3.4.0 optree-0.14.0 tensorboard-2.18.0 tensorboard-data-server-0.7.2 tensorflow-2.18.0 tensorflow-io-gcs-filesystem-0.37.1 termcolor-2.5.0 werkzeug-3.1.3 wrapt-1.17.2
Successfully installed packages from /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt.
[11:15:49] INFO     Loading DEFAULTS for section aggregator from file                                                                                ]8;id=8256;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=952666;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#147\147]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/workspace/plan/defaults/aggregator.yam            
                    l.                                                                                                                                          
           INFO     Loading DEFAULTS for section assigner from file                                                                                  ]8;id=762335;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=343799;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#147\147]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/workspace/plan/defaults/assigner.yaml.            
           INFO     Loading DEFAULTS for section collaborator from file                                                                              ]8;id=922084;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=118900;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#147\147]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/workspace/plan/defaults/collaborator.y            
                    aml.                                                                                                                                        
           INFO     Loading DEFAULTS for section compression_pipeline from file                                                                      ]8;id=601474;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=903406;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#147\147]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/workspace/plan/defaults/compression_pi            
                    peline.yaml.                                                                                                                                
           INFO     Loading DEFAULTS for section data_loader from file                                                                               ]8;id=222047;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=846474;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#147\147]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/workspace/plan/defaults/data_loader.ya            
                    ml.                                                                                                                                         
           INFO     Loading DEFAULTS for section network from file                                                                                   ]8;id=368209;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=463242;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#147\147]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/workspace/plan/defaults/network.yaml.             
           INFO     Loading DEFAULTS for section task_runner from file                                                                               ]8;id=200078;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=690988;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#147\147]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/workspace/plan/defaults/task_runner.ya            
                    ml.                                                                                                                                         
           INFO     Loading DEFAULTS for section tasks from file                                                                                     ]8;id=339248;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=40762;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#147\147]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/workspace/plan/defaults/tasks_keras.ya            
                    ml.                                                                                                                                         
           INFO     FL-Plan hash is a1113de951ee54ee07f35f92fd44e9bae930ef8acea7b15cab53cd67d3dcb9cdfa8aa9dc9230c03da7fd0e78b52b5bca                 ]8;id=101598;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=958937;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#288\288]8;;\
           INFO     FL-Plan hash is af595f64dd8b61452a449d976265f382b851d557d3c8341009453f0eb896b6d89ba175effd91e0d6700aec7646115ba5                 ]8;id=518938;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=902689;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#288\288]8;;\
           INFO     Parsing Federated Learning Plan : SUCCESS :                                                                                      ]8;id=383209;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=634496;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#193\193]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl-workspace/keras_cnn_mnist/plan/plan.yaml.                   
           INFO     aggregator:                                                                                                                      ]8;id=572299;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=497120;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#198\198]8;;\
                      settings:                                                                                                                                 
                        best_state_path: save/best.pbuf                                                                                                         
                        db_store_rounds: 2                                                                                                                      
                        init_state_path: save/init.pbuf                                                                                                         
                        last_state_path: save/last.pbuf                                                                                                         
                        rounds_to_train: 10                                                                                                                     
                      template: openfl.component.Aggregator                                                                                                     
                    assigner:                                                                                                                                   
                      settings:                                                                                                                                 
                        task_groups:                                                                                                                            
                        - name: learning                                                                                                                        
                          percentage: 1.0                                                                                                                       
                          tasks:                                                                                                                                
                          - aggregated_model_validation                                                                                                         
                          - train                                                                                                                               
                          - locally_tuned_model_validation                                                                                                      
                      template: openfl.component.RandomGroupedAssigner                                                                                          
                    collaborator:                                                                                                                               
                      settings:                                                                                                                                 
                        db_store_rounds: 1                                                                                                                      
                        delta_updates: false                                                                                                                    
                        opt_treatment: RESET                                                                                                                    
                      template: openfl.component.Collaborator                                                                                                   
                    compression_pipeline:                                                                                                                       
                      settings: {}                                                                                                                              
                      template: openfl.pipelines.NoCompressionPipeline                                                                                          
                    data_loader:                                                                                                                                
                      settings:                                                                                                                                 
                        batch_size: 256                                                                                                                         
                        collaborator_count: 2                                                                                                                   
                        data_group_name: mnist                                                                                                                  
                      template: src.dataloader.KerasMNISTInMemory                                                                                               
                    network:                                                                                                                                    
                      settings:                                                                                                                                 
                        agg_addr: build-27291930-project-638300-openfl                                                                                          
                        agg_port: 60189                                                                                                                         
                        cert_folder: cert                                                                                                                       
                        client_reconnect_interval: 5                                                                                                            
                        hash_salt: auto                                                                                                                         
                        require_client_auth: true                                                                                                               
                        use_tls: true                                                                                                                           
                      template: openfl.federation.Network                                                                                                       
                    task_runner:                                                                                                                                
                      settings: {}                                                                                                                              
                      template: src.taskrunner.KerasCNN                                                                                                         
                    tasks:                                                                                                                                      
                      aggregated_model_validation:                                                                                                              
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: global                                                                                                                         
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      locally_tuned_model_validation:                                                                                                           
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: local                                                                                                                          
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      settings: {}                                                                                                                              
                      train:                                                                                                                                    
                        function: train_task                                                                                                                    
                        kwargs:                                                                                                                                 
                          batch_size: 32                                                                                                                        
                          epochs: 1                                                                                                                             
                          metrics:                                                                                                                              
                          - loss                                                                                                                                
                                                                                                                                                                

New workspace directory structure:
mnist_example
├── plan
│   ├── plan.yaml
│   ├── cols.yaml
│   ├── data.yaml
│   └── defaults
├── cert
├── logs
├── save
├── src
│   ├── mnist_utils.py
│   ├── taskrunner.py
│   ├── __init__.py
│   └── dataloader.py
├── requirements.txt
├── data
└── .workspace

6 directories, 10 files

 ✔️ OK
/home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/IPython/core/magics/osm.py:417: UserWarning: This is now an optional IPython functionality, setting dhist requires you to install the `pickleshare` library.
  self.shell.db['dhist'] = compress_dhist(dhist)[-100:]

Initialize a Plan#

This step builds an entire FL experiment plan, along with the initial set of parameters that will be used in the experiment. We supply localhost as the aggregator address, for simulation purposes.

!fx plan initialize -a localhost
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395751.299567     633 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395751.303573     633 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
Requirement already satisfied: keras==3.6.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from -r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (3.6.0)
Requirement already satisfied: tensorflow==2.18.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from -r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (2.18.0)
Requirement already satisfied: absl-py in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (2.1.0)
Requirement already satisfied: numpy in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (2.0.2)
Requirement already satisfied: rich in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (13.9.4)
Requirement already satisfied: namex in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (0.0.8)
Requirement already satisfied: h5py in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (3.13.0)
Requirement already satisfied: optree in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (0.14.0)
Requirement already satisfied: ml-dtypes in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (0.4.1)
Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (24.2)
Requirement already satisfied: astunparse>=1.6.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (1.6.3)
Requirement already satisfied: flatbuffers>=24.3.25 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (25.2.10)
Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (0.6.0)
Requirement already satisfied: google-pasta>=0.1.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (0.2.0)
Requirement already satisfied: libclang>=13.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (18.1.1)
Requirement already satisfied: opt-einsum>=2.3.2 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (3.4.0)
Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<6.0.0dev,>=3.20.3 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (5.29.3)
Requirement already satisfied: requests<3,>=2.21.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (2.32.3)
Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (75.8.0)
Requirement already satisfied: six>=1.12.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (1.17.0)
Requirement already satisfied: termcolor>=1.1.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (2.5.0)
Requirement already satisfied: typing-extensions>=3.6.6 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (4.12.2)
Requirement already satisfied: wrapt>=1.11.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (1.17.2)
Requirement already satisfied: grpcio<2.0,>=1.24.3 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (1.65.5)
Requirement already satisfied: tensorboard<2.19,>=2.18 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (2.18.0)
Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (0.37.1)
Requirement already satisfied: wheel<1.0,>=0.23.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from astunparse>=1.6.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (0.40.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (3.4.1)
Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (2.3.0)
Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from requests<3,>=2.21.0->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (2025.1.31)
Requirement already satisfied: markdown>=2.6.8 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorboard<2.19,>=2.18->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (3.7)
Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorboard<2.19,>=2.18->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (0.7.2)
Requirement already satisfied: werkzeug>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from tensorboard<2.19,>=2.18->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (3.1.3)
Requirement already satisfied: markdown-it-py>=2.2.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from rich->keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from rich->keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (2.19.1)
Requirement already satisfied: mdurl~=0.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich->keras==3.6.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 1)) (0.1.2)
Requirement already satisfied: MarkupSafe>=2.1.1 in /home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages (from werkzeug>=1.0.1->tensorboard<2.19,>=2.18->tensorflow==2.18.0->-r /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt (line 2)) (3.0.2)
Successfully installed packages from /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/requirements.txt.
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395756.583912     633 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395756.587861     633 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
[11:15:59] INFO     FL-Plan hash is d816f003b00c6a40fe7f8e42ada6b425d7143aed4ed4e8e00fc18a106915fe49561952e7a1aaaeeb668e20b872106c1c                 ]8;id=399377;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=98201;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#288\288]8;;\
           INFO     Parsing Federated Learning Plan : SUCCESS :                                                                                      ]8;id=451412;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=72773;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#193\193]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/plan/plan.yaml.                       
           INFO     aggregator:                                                                                                                      ]8;id=579858;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=839592;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#198\198]8;;\
                      settings:                                                                                                                                 
                        best_state_path: save/best.pbuf                                                                                                         
                        db_store_rounds: 2                                                                                                                      
                        init_state_path: save/init.pbuf                                                                                                         
                        last_state_path: save/last.pbuf                                                                                                         
                        rounds_to_train: 10                                                                                                                     
                      template: openfl.component.Aggregator                                                                                                     
                    assigner:                                                                                                                                   
                      settings:                                                                                                                                 
                        task_groups:                                                                                                                            
                        - name: learning                                                                                                                        
                          percentage: 1.0                                                                                                                       
                          tasks:                                                                                                                                
                          - aggregated_model_validation                                                                                                         
                          - train                                                                                                                               
                          - locally_tuned_model_validation                                                                                                      
                      template: openfl.component.RandomGroupedAssigner                                                                                          
                    collaborator:                                                                                                                               
                      settings:                                                                                                                                 
                        db_store_rounds: 1                                                                                                                      
                        delta_updates: false                                                                                                                    
                        opt_treatment: RESET                                                                                                                    
                      template: openfl.component.Collaborator                                                                                                   
                    compression_pipeline:                                                                                                                       
                      settings: {}                                                                                                                              
                      template: openfl.pipelines.NoCompressionPipeline                                                                                          
                    data_loader:                                                                                                                                
                      settings:                                                                                                                                 
                        batch_size: 256                                                                                                                         
                        collaborator_count: 2                                                                                                                   
                        data_group_name: mnist                                                                                                                  
                      template: src.dataloader.KerasMNISTInMemory                                                                                               
                    network:                                                                                                                                    
                      settings:                                                                                                                                 
                        agg_addr: build-27291930-project-638300-openfl                                                                                          
                        agg_port: 60189                                                                                                                         
                        cert_folder: cert                                                                                                                       
                        client_reconnect_interval: 5                                                                                                            
                        hash_salt: auto                                                                                                                         
                        require_client_auth: true                                                                                                               
                        use_tls: true                                                                                                                           
                      template: openfl.federation.Network                                                                                                       
                    task_runner:                                                                                                                                
                      settings: {}                                                                                                                              
                      template: src.taskrunner.KerasCNN                                                                                                         
                    tasks:                                                                                                                                      
                      aggregated_model_validation:                                                                                                              
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: global                                                                                                                         
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      locally_tuned_model_validation:                                                                                                           
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: local                                                                                                                          
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      settings: {}                                                                                                                              
                      train:                                                                                                                                    
                        function: train_task                                                                                                                    
                        kwargs:                                                                                                                                 
                          batch_size: 32                                                                                                                        
                          epochs: 1                                                                                                                             
                          metrics:                                                                                                                              
                          - loss                                                                                                                                
                                                                                                                                                                
           INFO     Building `src.dataloader.KerasMNISTInMemory` Module.                                                                             ]8;id=250410;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=896639;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
    8192/11490434 [..............................] - ETA: 0s
  655360/11490434 [>.............................] - ETA: 0s
 8118272/11490434 [====================>.........] - ETA: 0s
11493376/11490434 [==============================] - 0s 0us/step
[11:16:00] INFO     MNIST > X_train Shape : (30000, 28, 28, 1)                                                                                ]8;id=254547;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=747061;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#108\108]8;;\
           INFO     MNIST > y_train Shape : (30000,)                                                                                          ]8;id=387326;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=550386;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#109\109]8;;\
           INFO     MNIST > Train Samples : 30000                                                                                             ]8;id=838379;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=272011;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#110\110]8;;\
           INFO     MNIST > Valid Samples : 5000                                                                                              ]8;id=591000;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=954575;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#111\111]8;;\
           INFO     Building `src.taskrunner.KerasCNN` Module.                                                                                       ]8;id=268470;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=859165;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.
  super().__init__(activity_regularizer=activity_regularizer, **kwargs)
           INFO     Model: "sequential"                                                                                                     ]8;id=276102;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/keras/src/utils/summary_utils.py\summary_utils.py]8;;\:]8;id=109368;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/keras/src/utils/summary_utils.py#389\389]8;;\
                    ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓                                                                
                    ┃ Layer (type)                    ┃ Output Shape           ┃       Param # ┃                                                                
                    ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩                                                                
                    │ conv2d (Conv2D)(None, 13, 13, 16)272                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ conv2d_1 (Conv2D)(None, 5, 5, 32)8,224                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ flatten (Flatten)(None, 800)0                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ dense (Dense)(None, 100)80,100                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ dense_1 (Dense)(None, 10)1,010                    
                    └─────────────────────────────────┴────────────────────────┴───────────────┘                                                                
                     Total params: 89,606 (350.02 KB)                                                                                                           
                     Trainable params: 89,606 (350.02 KB)                                                                                                       
                     Non-trainable params: 0 (0.00 B)                                                                                                           
                                                                                                                                                                
           INFO     Train Set Size : 30000                                                                                                      ]8;id=817155;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py\taskrunner.py]8;;\:]8;id=490699;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py#32\32]8;;\
           INFO     Valid Set Size : 5000                                                                                                       ]8;id=911513;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py\taskrunner.py]8;;\:]8;id=346345;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py#33\33]8;;\
           INFO     Building `openfl.pipelines.NoCompressionPipeline` Module.                                                                        ]8;id=155376;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=728098;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           WARNING  Following parameters omitted from global initial model, local initialization will determine values: []                           ]8;id=822025;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/plan.py\plan.py]8;;\:]8;id=77413;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/plan.py#186\186]8;;\
           INFO     Creating Initial Weights File    🠆 save/init.pbuf                                                                                ]8;id=907455;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/plan.py\plan.py]8;;\:]8;id=664056;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/plan.py#196\196]8;;\
           WARNING  Patching Aggregator Addr in Plan 🠆 localhost                                                                                     ]8;id=797552;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/plan.py\plan.py]8;;\:]8;id=720851;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/plan.py#209\209]8;;\
           INFO     FL-Plan hash is 667e5dd02398b63abdf62e222460a70d722f0aa4b812216783b491c64cd0b3b87e20d1e82b5e6afde0b69e3af7fb78da                 ]8;id=63445;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=180107;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#288\288]8;;\
           INFO     ['plan_667e5dd0']                                                                                                                ]8;id=699303;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/plan.py\plan.py]8;;\:]8;id=240860;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/plan.py#223\223]8;;\

 ✔️ OK

Create a certificate authority (CA)#

OpenFL supports mTLS, which ensures secure communication between the collaborators and the aggregator. This step generates a certificate authority (CA) that will be used to sign the certificates of the collaborators. The CA is generated only once and can be reused for multiple experiments.

!fx workspace certify
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395761.710087     653 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395761.714023     653 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
Setting Up Certificate Authority...

1.  Create Root CA
1.1 Create Directories
1.2 Create Database
1.3 Create CA Request and Certificate
2.  Create Signing Certificate
2.1 Create Directories
2.2 Create Database
2.3 Create Signing Certificate CSR
2.4 Sign Signing Certificate CSR
3   Create Certificate Chain

Done.

 ✔️ OK

Create an aggregator, and its key-pair#

!fx aggregator generate-cert-request --fqdn localhost
!fx aggregator certify --fqdn localhost --silent
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395766.455736     659 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395766.459715     659 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
Creating AGGREGATOR certificate key pair with following settings: CN=localhost, SAN=DNS:localhost
  Writing AGGREGATOR certificate key pair to: /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/cert/server
The CSR Hash 2830d1f59738779e8dccf1ab6ea28f8b4a6b5c05d34f0255a161ac8e47f0d4e5a00f00786cce641cdd0398a92aeb67a7

 ✔️ OK
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395770.979051     665 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395770.982967     665 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
The CSR Hash for file server/agg_localhost.csr = 2830d1f59738779e8dccf1ab6ea28f8b4a6b5c05d34f0255a161ac8e47f0d4e5a00f00786cce641cdd0398a92aeb67a7
 Warning: manual check of certificate hashes is bypassed in silent mode.
 Signing AGGREGATOR certificate

 ✔️ OK

Create collaborators, and their key-pairs#

We will name our first collaborator bob.

!fx collaborator create -d 0 -n bob --silent
!fx collaborator generate-cert-request -n bob --silent
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395775.517011     671 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395775.520922     671 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(

 ✔️ OK
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395779.936527     677 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395779.940500     677 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
Creating COLLABORATOR certificate key pair with following settings: CN=bob, SAN=DNS:bob
  Moving COLLABORATOR certificate to: /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/cert/col_bob
The CSR Hash e1e0a321e7bb5ecd9300f0961ae6ee6a1525f8d9ec213da94d5c29c923dcb8e4c60c43993956591206dbb79374080535
Archive col_bob_to_agg_cert_request.zip with certificate signing request created
This file should be sent to the certificate authority (typically hosted by the aggregator) for signing

 ✔️ OK

Certify bob with the CA.

Note: This is a command that runs on the aggregator side. bob’s certificate signing request (CSR) is sent to the aggregator, which then signs the certificate with the CA. The signed certificate then has to be sent back to bob.

!fx collaborator certify --request-pkg col_bob_to_agg_cert_request.zip --silent
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395784.599716     683 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395784.603647     683 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
The CSR Hash for file col_bob.csr is e1e0a321e7bb5ecd9300f0961ae6ee6a1525f8d9ec213da94d5c29c923dcb8e4c60c43993956591206dbb79374080535
Signing COLLABORATOR certificate, Warning: manual check of certificate hashes is bypassed in silent mode.

Registering bob in /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/plan/cols.yaml

 ✔️ OK

And the second collaborator charlie.

!fx collaborator create -d 1 -n charlie --silent
!fx collaborator generate-cert-request -n charlie --silent
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395789.144266     689 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395789.148212     689 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(

 ✔️ OK
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395793.557421     695 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395793.561693     695 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
Creating COLLABORATOR certificate key pair with following settings: CN=charlie, SAN=DNS:charlie
  Moving COLLABORATOR certificate to: /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/cert/col_charlie
The CSR Hash 5a7cd1a4be6799630e2a4598c8304abcb66d558aaabdbd3a052019110d3653abb31702acedd5c252fe869486dc277b14
Archive col_charlie_to_agg_cert_request.zip with certificate signing request created
This file should be sent to the certificate authority (typically hosted by the aggregator) for signing

 ✔️ OK

Certify charlie with the CA.

Note: This is a command that runs on the aggregator side. charlie’s certificate signing request (CSR) is sent to the aggregator, which then signs the certificate with the CA. The signed certificate then has to be sent back to charlie.

!fx collaborator certify --request-pkg col_charlie_to_agg_cert_request.zip --silent
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395798.025166     701 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395798.029374     701 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
The CSR Hash for file col_charlie.csr is 5a7cd1a4be6799630e2a4598c8304abcb66d558aaabdbd3a052019110d3653abb31702acedd5c252fe869486dc277b14
Signing COLLABORATOR certificate, Warning: manual check of certificate hashes is bypassed in silent mode.

Registering charlie in /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/plan/cols.yaml

 ✔️ OK

Import CA signed certificates#

This step imports the CA-signed certificates of the collaborator and the aggregator into the workspace.

Note: This command runs on respective collaborator sites.

!fx collaborator certify --import agg_to_col_bob_signed_cert.zip
!fx collaborator certify --import agg_to_col_charlie_signed_cert.zip
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395802.564842     707 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395802.568953     707 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
Certificate updated in the PKI directory

 ✔️ OK
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395806.969316     713 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395806.973354     713 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
Certificate updated in the PKI directory

 ✔️ OK

Start the simulation#

This step starts the simulation of the FL experiment. The aggregator will orchestrate the training process between the collaborators.

!fx aggregator start & fx collaborator start -n bob & fx collaborator start -n charlie
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395812.085603     721 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395812.092818     721 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395812.153215     719 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395812.166274     719 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
E0000 00:00:1740395812.169729     720 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
E0000 00:00:1740395812.184878     720 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils. Support for replacing an already imported distutils is deprecated. In the future, this condition will fail. Register concerns at https://github.com/pypa/setuptools/issues/new?template=distutils-deprecation.yml
  warnings.warn(
[11:16:59] INFO     FL-Plan hash is 667e5dd02398b63abdf62e222460a70d722f0aa4b812216783b491c64cd0b3b87e20d1e82b5e6afde0b69e3af7fb78da                 ]8;id=494338;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=269873;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#288\288]8;;\
           INFO     Parsing Federated Learning Plan : SUCCESS :                                                                                      ]8;id=850012;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=756308;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#193\193]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/plan/plan.yaml.                       
           INFO     aggregator:                                                                                                                      ]8;id=524463;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=685396;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#198\198]8;;\
                      settings:                                                                                                                                 
                        best_state_path: save/best.pbuf                                                                                                         
                        db_store_rounds: 2                                                                                                                      
                        init_state_path: save/init.pbuf                                                                                                         
                        last_state_path: save/last.pbuf                                                                                                         
                        rounds_to_train: 10                                                                                                                     
                      template: openfl.component.Aggregator                                                                                                     
                    assigner:                                                                                                                                   
                      settings:                                                                                                                                 
                        task_groups:                                                                                                                            
                        - name: learning                                                                                                                        
                          percentage: 1.0                                                                                                                       
                          tasks:                                                                                                                                
                          - aggregated_model_validation                                                                                                         
                          - train                                                                                                                               
                          - locally_tuned_model_validation                                                                                                      
                      template: openfl.component.RandomGroupedAssigner                                                                                          
                    collaborator:                                                                                                                               
                      settings:                                                                                                                                 
                        db_store_rounds: 1                                                                                                                      
                        delta_updates: false                                                                                                                    
                        opt_treatment: RESET                                                                                                                    
                      template: openfl.component.Collaborator                                                                                                   
                    compression_pipeline:                                                                                                                       
                      settings: {}                                                                                                                              
                      template: openfl.pipelines.NoCompressionPipeline                                                                                          
                    data_loader:                                                                                                                                
                      settings:                                                                                                                                 
                        batch_size: 256                                                                                                                         
                        collaborator_count: 2                                                                                                                   
                        data_group_name: mnist                                                                                                                  
                      template: src.dataloader.KerasMNISTInMemory                                                                                               
                    network:                                                                                                                                    
                      settings:                                                                                                                                 
                        agg_addr: localhost                                                                                                                     
                        agg_port: 60189                                                                                                                         
                        cert_folder: cert                                                                                                                       
                        client_reconnect_interval: 5                                                                                                            
                        hash_salt: auto                                                                                                                         
                        require_client_auth: true                                                                                                               
                        use_tls: true                                                                                                                           
                      template: openfl.federation.Network                                                                                                       
                    task_runner:                                                                                                                                
                      settings: {}                                                                                                                              
                      template: src.taskrunner.KerasCNN                                                                                                         
                    tasks:                                                                                                                                      
                      aggregated_model_validation:                                                                                                              
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: global                                                                                                                         
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      locally_tuned_model_validation:                                                                                                           
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: local                                                                                                                          
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      settings: {}                                                                                                                              
                      train:                                                                                                                                    
                        function: train_task                                                                                                                    
                        kwargs:                                                                                                                                 
                          batch_size: 32                                                                                                                        
                          epochs: 1                                                                                                                             
                          metrics:                                                                                                                              
                          - loss                                                                                                                                
                                                                                                                                                                
Data = {'one': '1', 'bob': '0', 'charlie': '1'}
           INFO     🧿 Starting a Collaborator Service.                                                                                       ]8;id=259272;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/collaborator.py\collaborator.py]8;;\:]8;id=962887;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/collaborator.py#85\85]8;;\
           INFO     Building `src.dataloader.KerasMNISTInMemory` Module.                                                                             ]8;id=889807;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=380179;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
[11:16:59] INFO     FL-Plan hash is 667e5dd02398b63abdf62e222460a70d722f0aa4b812216783b491c64cd0b3b87e20d1e82b5e6afde0b69e3af7fb78da                 ]8;id=190115;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=705598;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#288\288]8;;\
           INFO     Parsing Federated Learning Plan : SUCCESS :                                                                                      ]8;id=76445;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=702663;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#193\193]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/plan/plan.yaml.                       
[11:16:59] INFO     FL-Plan hash is 667e5dd02398b63abdf62e222460a70d722f0aa4b812216783b491c64cd0b3b87e20d1e82b5e6afde0b69e3af7fb78da                 ]8;id=981223;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=86404;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#288\288]8;;\
           INFO     Parsing Federated Learning Plan : SUCCESS :                                                                                      ]8;id=804759;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=629389;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#193\193]8;;\
                    /home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/plan/plan.yaml.                       
           INFO     aggregator:                                                                                                                      ]8;id=823685;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=636203;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#198\198]8;;\
                      settings:                                                                                                                                 
                        best_state_path: save/best.pbuf                                                                                                         
                        db_store_rounds: 2                                                                                                                      
                        init_state_path: save/init.pbuf                                                                                                         
                        last_state_path: save/last.pbuf                                                                                                         
                        rounds_to_train: 10                                                                                                                     
                      template: openfl.component.Aggregator                                                                                                     
                    assigner:                                                                                                                                   
                      settings:                                                                                                                                 
                        task_groups:                                                                                                                            
                        - name: learning                                                                                                                        
                          percentage: 1.0                                                                                                                       
                          tasks:                                                                                                                                
                          - aggregated_model_validation                                                                                                         
                          - train                                                                                                                               
                          - locally_tuned_model_validation                                                                                                      
                      template: openfl.component.RandomGroupedAssigner                                                                                          
                    collaborator:                                                                                                                               
                      settings:                                                                                                                                 
                        db_store_rounds: 1                                                                                                                      
                        delta_updates: false                                                                                                                    
                        opt_treatment: RESET                                                                                                                    
                      template: openfl.component.Collaborator                                                                                                   
                    compression_pipeline:                                                                                                                       
                      settings: {}                                                                                                                              
                      template: openfl.pipelines.NoCompressionPipeline                                                                                          
                    data_loader:                                                                                                                                
                      settings:                                                                                                                                 
                        batch_size: 256                                                                                                                         
                        collaborator_count: 2                                                                                                                   
                        data_group_name: mnist                                                                                                                  
                      template: src.dataloader.KerasMNISTInMemory                                                                                               
                    network:                                                                                                                                    
                      settings:                                                                                                                                 
                        agg_addr: localhost                                                                                                                     
                        agg_port: 60189                                                                                                                         
                        cert_folder: cert                                                                                                                       
                        client_reconnect_interval: 5                                                                                                            
                        hash_salt: auto                                                                                                                         
                        require_client_auth: true                                                                                                               
                        use_tls: true                                                                                                                           
                      template: openfl.federation.Network                                                                                                       
                    task_runner:                                                                                                                                
                      settings: {}                                                                                                                              
                      template: src.taskrunner.KerasCNN                                                                                                         
                    tasks:                                                                                                                                      
                      aggregated_model_validation:                                                                                                              
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: global                                                                                                                         
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      locally_tuned_model_validation:                                                                                                           
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: local                                                                                                                          
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      settings: {}                                                                                                                              
                      train:                                                                                                                                    
                        function: train_task                                                                                                                    
                        kwargs:                                                                                                                                 
                          batch_size: 32                                                                                                                        
                          epochs: 1                                                                                                                             
                          metrics:                                                                                                                              
                          - loss                                                                                                                                
                                                                                                                                                                
           INFO     Setting aggregator to assign: learning task_group                                                                          ]8;id=845371;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/aggregator.py\aggregator.py]8;;\:]8;id=38555;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/aggregator.py#101\101]8;;\
           INFO     🧿 Starting the Aggregator Service.                                                                                        ]8;id=252922;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/aggregator.py\aggregator.py]8;;\:]8;id=969042;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/aggregator.py#103\103]8;;\
           INFO     Building `openfl.component.RandomGroupedAssigner` Module.                                                                        ]8;id=799416;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=152704;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           INFO     Building `openfl.pipelines.NoCompressionPipeline` Module.                                                                        ]8;id=488510;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=898968;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           INFO     Building `openfl.component.straggler_handling_functions.CutoffTimeBasedStragglerHandling` Module.                                ]8;id=796929;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=314245;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           WARNING  CutoffTimeBasedStragglerHandling is disabled as straggler_cutoff_time is set to np.inf.           ]8;id=244987;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/straggler_handling_functions/cutoff_time_based_straggler_handling.py\cutoff_time_based_straggler_handling.py]8;;\:]8;id=587020;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/straggler_handling_functions/cutoff_time_based_straggler_handling.py#46\46]8;;\
           INFO     Building `openfl.component.Aggregator` Module.                                                                                   ]8;id=762967;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=64352;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           INFO     aggregator:                                                                                                                      ]8;id=311594;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=753738;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#198\198]8;;\
                      settings:                                                                                                                                 
                        best_state_path: save/best.pbuf                                                                                                         
                        db_store_rounds: 2                                                                                                                      
                        init_state_path: save/init.pbuf                                                                                                         
                        last_state_path: save/last.pbuf                                                                                                         
                        rounds_to_train: 10                                                                                                                     
                      template: openfl.component.Aggregator                                                                                                     
                    assigner:                                                                                                                                   
                      settings:                                                                                                                                 
                        task_groups:                                                                                                                            
                        - name: learning                                                                                                                        
                          percentage: 1.0                                                                                                                       
                          tasks:                                                                                                                                
                          - aggregated_model_validation                                                                                                         
                          - train                                                                                                                               
                          - locally_tuned_model_validation                                                                                                      
                      template: openfl.component.RandomGroupedAssigner                                                                                          
                    collaborator:                                                                                                                               
                      settings:                                                                                                                                 
                        db_store_rounds: 1                                                                                                                      
                        delta_updates: false                                                                                                                    
                        opt_treatment: RESET                                                                                                                    
                      template: openfl.component.Collaborator                                                                                                   
                    compression_pipeline:                                                                                                                       
                      settings: {}                                                                                                                              
                      template: openfl.pipelines.NoCompressionPipeline                                                                                          
                    data_loader:                                                                                                                                
                      settings:                                                                                                                                 
                        batch_size: 256                                                                                                                         
                        collaborator_count: 2                                                                                                                   
                        data_group_name: mnist                                                                                                                  
                      template: src.dataloader.KerasMNISTInMemory                                                                                               
                    network:                                                                                                                                    
                      settings:                                                                                                                                 
                        agg_addr: localhost                                                                                                                     
                        agg_port: 60189                                                                                                                         
                        cert_folder: cert                                                                                                                       
                        client_reconnect_interval: 5                                                                                                            
                        hash_salt: auto                                                                                                                         
                        require_client_auth: true                                                                                                               
                        use_tls: true                                                                                                                           
                      template: openfl.federation.Network                                                                                                       
                    task_runner:                                                                                                                                
                      settings: {}                                                                                                                              
                      template: src.taskrunner.KerasCNN                                                                                                         
                    tasks:                                                                                                                                      
                      aggregated_model_validation:                                                                                                              
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: global                                                                                                                         
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      locally_tuned_model_validation:                                                                                                           
                        function: validate_task                                                                                                                 
                        kwargs:                                                                                                                                 
                          apply: local                                                                                                                          
                          batch_size: 32                                                                                                                        
                          metrics:                                                                                                                              
                          - accuracy                                                                                                                            
                      settings: {}                                                                                                                              
                      train:                                                                                                                                    
                        function: train_task                                                                                                                    
                        kwargs:                                                                                                                                 
                          batch_size: 32                                                                                                                        
                          epochs: 1                                                                                                                             
                          metrics:                                                                                                                              
                          - loss                                                                                                                                
                                                                                                                                                                
Data = {'one': '1', 'bob': '0', 'charlie': '1'}
           INFO     🧿 Starting a Collaborator Service.                                                                                       ]8;id=103955;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/collaborator.py\collaborator.py]8;;\:]8;id=835906;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/interface/collaborator.py#85\85]8;;\
           INFO     Building `src.dataloader.KerasMNISTInMemory` Module.                                                                             ]8;id=520329;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=381504;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           INFO     Starting Aggregator gRPC Server                                                                                     ]8;id=349038;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/transport/grpc/aggregator_server.py\aggregator_server.py]8;;\:]8;id=327589;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/transport/grpc/aggregator_server.py#347\347]8;;\
           INFO     MNIST > X_train Shape : (30000, 28, 28, 1)                                                                                ]8;id=314825;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=579025;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#108\108]8;;\
           INFO     MNIST > y_train Shape : (30000,)                                                                                          ]8;id=761966;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=847566;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#109\109]8;;\
           INFO     MNIST > Train Samples : 30000                                                                                             ]8;id=275752;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=498675;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#110\110]8;;\
           INFO     MNIST > Valid Samples : 5000                                                                                              ]8;id=938141;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=627955;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#111\111]8;;\
           INFO     Building `src.taskrunner.KerasCNN` Module.                                                                                       ]8;id=897934;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=868951;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.
  super().__init__(activity_regularizer=activity_regularizer, **kwargs)
[11:17:00] INFO     MNIST > X_train Shape : (30000, 28, 28, 1)                                                                                ]8;id=661726;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=102803;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#108\108]8;;\
           INFO     MNIST > y_train Shape : (30000,)                                                                                          ]8;id=971932;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=609051;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#109\109]8;;\
           INFO     MNIST > Train Samples : 30000                                                                                             ]8;id=174070;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=698868;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#110\110]8;;\
           INFO     MNIST > Valid Samples : 5000                                                                                              ]8;id=154357;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py\mnist_utils.py]8;;\:]8;id=195425;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/mnist_utils.py#111\111]8;;\
           INFO     Building `src.taskrunner.KerasCNN` Module.                                                                                       ]8;id=356148;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=165779;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
/home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.
  super().__init__(activity_regularizer=activity_regularizer, **kwargs)
[11:17:00] INFO     Model: "sequential"                                                                                                     ]8;id=921926;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/keras/src/utils/summary_utils.py\summary_utils.py]8;;\:]8;id=898769;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/keras/src/utils/summary_utils.py#389\389]8;;\
                    ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓                                                                
                    ┃ Layer (type)                    ┃ Output Shape           ┃       Param # ┃                                                                
                    ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩                                                                
                    │ conv2d (Conv2D)(None, 13, 13, 16)272                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ conv2d_1 (Conv2D)(None, 5, 5, 32)8,224                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ flatten (Flatten)(None, 800)0                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ dense (Dense)(None, 100)80,100                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ dense_1 (Dense)(None, 10)1,010                    
                    └─────────────────────────────────┴────────────────────────┴───────────────┘                                                                
                     Total params: 89,606 (350.02 KB)                                                                                                           
                     Trainable params: 89,606 (350.02 KB)                                                                                                       
                     Non-trainable params: 0 (0.00 B)                                                                                                           
                                                                                                                                                                
           INFO     Train Set Size : 30000                                                                                                      ]8;id=292492;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py\taskrunner.py]8;;\:]8;id=125902;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py#32\32]8;;\
           INFO     Valid Set Size : 5000                                                                                                       ]8;id=483589;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py\taskrunner.py]8;;\:]8;id=71997;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py#33\33]8;;\
           INFO     Building `openfl.pipelines.NoCompressionPipeline` Module.                                                                        ]8;id=985204;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=215959;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           INFO     Building `openfl.component.Collaborator` Module.                                                                                 ]8;id=510001;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=272852;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           INFO     Waiting for tasks...                                                                                                     ]8;id=599495;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=343925;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:17:00] INFO     Sending tasks to collaborator charlie for round 0                                                                          ]8;id=834517;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=907494;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=977619;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=642692;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
           INFO     Model: "sequential"                                                                                                     ]8;id=426409;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/keras/src/utils/summary_utils.py\summary_utils.py]8;;\:]8;id=140854;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/envs/v1.7.1/lib/python3.10/site-packages/keras/src/utils/summary_utils.py#389\389]8;;\
                    ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓                                                                
                    ┃ Layer (type)                    ┃ Output Shape           ┃       Param # ┃                                                                
                    ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩                                                                
                    │ conv2d (Conv2D)(None, 13, 13, 16)272                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ conv2d_1 (Conv2D)(None, 5, 5, 32)8,224                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ flatten (Flatten)(None, 800)0                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ dense (Dense)(None, 100)80,100                    
                    ├─────────────────────────────────┼────────────────────────┼───────────────┤                                                                
                    │ dense_1 (Dense)(None, 10)1,010                    
                    └─────────────────────────────────┴────────────────────────┴───────────────┘                                                                
                     Total params: 89,606 (350.02 KB)                                                                                                           
                     Trainable params: 89,606 (350.02 KB)                                                                                                       
                     Non-trainable params: 0 (0.00 B)                                                                                                           
                                                                                                                                                                
           INFO     Train Set Size : 30000                                                                                                      ]8;id=389232;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py\taskrunner.py]8;;\:]8;id=374489;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py#32\32]8;;\
           INFO     Valid Set Size : 5000                                                                                                       ]8;id=186902;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py\taskrunner.py]8;;\:]8;id=123203;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/docs/tutorials/mnist_example/src/taskrunner.py#33\33]8;;\
           INFO     Building `openfl.pipelines.NoCompressionPipeline` Module.                                                                        ]8;id=989282;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=597318;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           INFO     Building `openfl.component.Collaborator` Module.                                                                                 ]8;id=523403;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py\plan.py]8;;\:]8;id=248730;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/plan/plan.py#226\226]8;;\
           INFO     Waiting for tasks...                                                                                                     ]8;id=483979;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=486125;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator bob for round 0                                                                              ]8;id=681139;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=988422;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=314013;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=22514;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 1s 528ms/step - accuracy: 0.0938 - loss: 2.3161
     12/Unknown 1s 6ms/step - accuracy: 0.0812 - loss: 2.3111
     24/Unknown 1s 5ms/step - accuracy: 0.0758 - loss: 2.3101
      4/Unknown 1s 19ms/step - accuracy: 0.0586 - loss: 2.3113
     18/Unknown 1s 7ms/step - accuracy: 0.0678 - loss: 2.3126
     31/Unknown 1s 6ms/step - accuracy: 0.0707 - loss: 2.3126
     43/Unknown 1s 5ms/step - accuracy: 0.0716 - loss: 2.3126
     55/Unknown 1s 5ms/step - accuracy: 0.0716 - loss: 2.3128
     67/Unknown 1s 5ms/step - accuracy: 0.0709 - loss: 2.3128
     79/Unknown 1s 5ms/step - accuracy: 0.0702 - loss: 2.3129
     91/Unknown 1s 5ms/step - accuracy: 0.0693 - loss: 2.3129
    102/Unknown 1s 5ms/step - accuracy: 0.0684 - loss: 2.3130
    113/Unknown 1s 5ms/step - accuracy: 0.0678 - loss: 2.3130
    125/Unknown 1s 5ms/step - accuracy: 0.0672 - loss: 2.3130
    139/Unknown 1s 5ms/step - accuracy: 0.0668 - loss: 2.3130
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 1s 5ms/step - accuracy: 0.0664 - loss: 2.3112
157/157 ━━━━━━━━━━━━━━━━━━━━ 1s 5ms/step - accuracy: 0.0665 - loss: 2.3130
[11:17:01] INFO     Collaborator bob is sending task results for aggregated_model_validation, round 0                                          ]8;id=400251;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=476129;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:01] INFO     Run 0 epoch of 0 round                                                                                                   ]8;id=46507;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=22814;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
[11:17:02] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 0                                      ]8;id=532721;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=815482;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:02] INFO     Run 0 epoch of 0 round                                                                                                   ]8;id=475058;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=972431;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 9s - 10ms/step - accuracy: 0.9135 - loss: 0.2938
938/938 - 9s - 10ms/step - accuracy: 0.9441 - loss: 0.1906
[11:17:13] INFO     Collaborator bob is sending task results for train, round 0                                                                ]8;id=428348;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=351271;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      2/Unknown 0s 3ms/step - accuracy: 0.9922 - loss: 0.0620
     25/Unknown 0s 2ms/step - accuracy: 0.9764 - loss: 0.0632
     49/Unknown 0s 2ms/step - accuracy: 0.9747 - loss: 0.0673
     74/Unknown 0s 2ms/step - accuracy: 0.9752 - loss: 0.0680
     98/Unknown 0s 2ms/step - accuracy: 0.9748 - loss: 0.0704
    122/Unknown 0s 2ms/step - accuracy: 0.9742 - loss: 0.0725
    147/Unknown 0s 2ms/step - accuracy: 0.9739 - loss: 0.0740
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9738 - loss: 0.0745
[11:17:14] INFO     Collaborator charlie is sending task results for train, round 0                                                            ]8;id=687216;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=486925;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 0                                       ]8;id=291630;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=403381;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 0: Collaborators that have completed all tasks: ['bob']                                                             ]8;id=25895;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=355194;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:17:14] INFO     Waiting for tasks...                                                                                                     ]8;id=737588;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=541788;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
      2/Unknown 0s 2ms/step - accuracy: 0.9453 - loss: 0.1274
     26/Unknown 0s 2ms/step - accuracy: 0.9490 - loss: 0.1310
     49/Unknown 0s 2ms/step - accuracy: 0.9515 - loss: 0.1379
     73/Unknown 0s 2ms/step - accuracy: 0.9506 - loss: 0.1480
     99/Unknown 0s 2ms/step - accuracy: 0.9494 - loss: 0.1553
    123/Unknown 0s 2ms/step - accuracy: 0.9486 - loss: 0.1596
    148/Unknown 0s 2ms/step - accuracy: 0.9481 - loss: 0.1632
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9479 - loss: 0.1644
           INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 0                                   ]8;id=704335;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=769075;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 0: Collaborators that have completed all tasks: ['bob', 'charlie']                                                  ]8;id=451775;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=528835;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:17:15] INFO     Round 0: saved the best model with score 0.063200                                                                          ]8;id=585147;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=758426;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#955\955]8;;\
           INFO     Saving round 0 model...                                                                                                    ]8;id=722768;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=445530;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Starting round 1...                                                                                                       ]8;id=522519;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=769410;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1007\1007]8;;\
[11:17:15] INFO     Waiting for tasks...                                                                                                     ]8;id=621291;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=409796;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator charlie for round 1                                                                          ]8;id=104467;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=254074;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=466523;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=489520;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 40ms/step - accuracy: 0.9375 - loss: 0.2442
     23/Unknown 0s 2ms/step - accuracy: 0.9757 - loss: 0.0918
     46/Unknown 0s 2ms/step - accuracy: 0.9745 - loss: 0.0895
     70/Unknown 0s 2ms/step - accuracy: 0.9737 - loss: 0.0892
     94/Unknown 0s 2ms/step - accuracy: 0.9733 - loss: 0.0903
    120/Unknown 0s 2ms/step - accuracy: 0.9732 - loss: 0.0913
    144/Unknown 0s 2ms/step - accuracy: 0.9728 - loss: 0.0932
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9724 - loss: 0.0943
[11:17:16] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 1                                      ]8;id=698493;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=298465;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:16] INFO     Run 0 epoch of 1 round                                                                                                   ]8;id=519628;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=545559;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9841 - loss: 0.0506
[11:17:21] INFO     Collaborator charlie is sending task results for train, round 1                                                            ]8;id=503557;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=740483;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 40ms/step - accuracy: 0.9375 - loss: 0.2824
     25/Unknown 0s 2ms/step - accuracy: 0.9493 - loss: 0.1279
     48/Unknown 0s 2ms/step - accuracy: 0.9540 - loss: 0.1182
     71/Unknown 0s 2ms/step - accuracy: 0.9569 - loss: 0.1146
     93/Unknown 0s 2ms/step - accuracy: 0.9587 - loss: 0.1128
    116/Unknown 0s 2ms/step - accuracy: 0.9600 - loss: 0.1113
    140/Unknown 0s 2ms/step - accuracy: 0.9610 - loss: 0.1105
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9615 - loss: 0.1100
           INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 1                                   ]8;id=872986;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=805025;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 1: Collaborators that have completed all tasks: ['charlie']                                                         ]8;id=727768;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=686830;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:17:21] INFO     Waiting for tasks...                                                                                                     ]8;id=974972;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=265938;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:17:24] INFO     Waiting for tasks...                                                                                                     ]8;id=716027;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=647386;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:17:24] INFO     Sending tasks to collaborator bob for round 1                                                                              ]8;id=428884;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=417964;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=14542;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=616181;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 39ms/step - accuracy: 0.9688 - loss: 0.1393
     24/Unknown 0s 2ms/step - accuracy: 0.9638 - loss: 0.1080
     48/Unknown 0s 2ms/step - accuracy: 0.9675 - loss: 0.1035
     73/Unknown 0s 2ms/step - accuracy: 0.9700 - loss: 0.0985
     97/Unknown 0s 2ms/step - accuracy: 0.9707 - loss: 0.0977
    122/Unknown 0s 2ms/step - accuracy: 0.9713 - loss: 0.0969
    147/Unknown 0s 2ms/step - accuracy: 0.9716 - loss: 0.0967
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9717 - loss: 0.0966
[11:17:25] INFO     Collaborator bob is sending task results for aggregated_model_validation, round 1                                          ]8;id=943600;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=500605;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:25] INFO     Run 0 epoch of 1 round                                                                                                   ]8;id=656513;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=644436;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9655 - loss: 0.1119
[11:17:29] INFO     Collaborator bob is sending task results for train, round 1                                                                ]8;id=885887;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=668959;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 39ms/step - accuracy: 1.0000 - loss: 0.0202
     25/Unknown 0s 2ms/step - accuracy: 0.9840 - loss: 0.0566
     51/Unknown 0s 2ms/step - accuracy: 0.9827 - loss: 0.0593
     76/Unknown 0s 2ms/step - accuracy: 0.9824 - loss: 0.0591
    100/Unknown 0s 2ms/step - accuracy: 0.9821 - loss: 0.0592
    122/Unknown 0s 2ms/step - accuracy: 0.9820 - loss: 0.0595
    144/Unknown 0s 2ms/step - accuracy: 0.9819 - loss: 0.0594
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9818 - loss: 0.0594
           INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 1                                       ]8;id=173553;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=52773;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 1: Collaborators that have completed all tasks: ['charlie', 'bob']                                                  ]8;id=544773;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=849842;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
           INFO     Round 1: saved the best model with score 0.970600                                                                          ]8;id=410987;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=730310;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#955\955]8;;\
           INFO     Saving round 1 model...                                                                                                    ]8;id=942694;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=472655;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Starting round 2...                                                                                                       ]8;id=141246;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=422031;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1007\1007]8;;\
[11:17:29] INFO     Waiting for tasks...                                                                                                     ]8;id=352333;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=926238;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator bob for round 2                                                                              ]8;id=323056;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=682350;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=70399;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=395402;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 38ms/step - accuracy: 1.0000 - loss: 0.0306
     24/Unknown 0s 2ms/step - accuracy: 0.9851 - loss: 0.0487
     48/Unknown 0s 2ms/step - accuracy: 0.9851 - loss: 0.0489
     72/Unknown 0s 2ms/step - accuracy: 0.9836 - loss: 0.0506
     96/Unknown 0s 2ms/step - accuracy: 0.9825 - loss: 0.0522
    147/Unknown 0s 2ms/step - accuracy: 0.9816 - loss: 0.0541
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9814 - loss: 0.0545
[11:17:30] INFO     Collaborator bob is sending task results for aggregated_model_validation, round 2                                          ]8;id=635977;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=582926;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:31] INFO     Run 0 epoch of 2 round                                                                                                   ]8;id=950224;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=644406;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
[11:17:31] INFO     Waiting for tasks...                                                                                                     ]8;id=273985;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=380678;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\

[11:17:31] INFO     Sending tasks to collaborator charlie for round 2                                                                          ]8;id=916137;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=126127;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=825620;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=63805;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 67ms/step - accuracy: 1.0000 - loss: 0.0274
     11/Unknown 0s 5ms/step - accuracy: 0.9873 - loss: 0.0347
     24/Unknown 0s 5ms/step - accuracy: 0.9853 - loss: 0.0417
     37/Unknown 0s 4ms/step - accuracy: 0.9838 - loss: 0.0471
     49/Unknown 0s 4ms/step - accuracy: 0.9832 - loss: 0.0497
     61/Unknown 0s 4ms/step - accuracy: 0.9829 - loss: 0.0518
     73/Unknown 0s 4ms/step - accuracy: 0.9824 - loss: 0.0539
     85/Unknown 0s 4ms/step - accuracy: 0.9819 - loss: 0.0555
     97/Unknown 0s 4ms/step - accuracy: 0.9818 - loss: 0.0563
    108/Unknown 1s 4ms/step - accuracy: 0.9818 - loss: 0.0567
    120/Unknown 1s 4ms/step - accuracy: 0.9818 - loss: 0.0574
    131/Unknown 1s 4ms/step - accuracy: 0.9817 - loss: 0.0580
    142/Unknown 1s 4ms/step - accuracy: 0.9817 - loss: 0.0584
    153/Unknown 1s 4ms/step - accuracy: 0.9817 - loss: 0.0586
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 1s 5ms/step - accuracy: 0.9817 - loss: 0.0586
[11:17:33] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 2                                      ]8;id=646403;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=90920;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:33] INFO     Run 0 epoch of 2 round                                                                                                   ]8;id=512225;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=42778;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 6s - 7ms/step - accuracy: 0.9741 - loss: 0.0829
[11:17:37] INFO     Collaborator bob is sending task results for train, round 2                                                                ]8;id=955501;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=939683;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 61ms/step - accuracy: 1.0000 - loss: 0.0100
     13/Unknown 0s 4ms/step - accuracy: 0.9921 - loss: 0.0279
     25/Unknown 0s 4ms/step - accuracy: 0.9882 - loss: 0.0349
     37/Unknown 0s 4ms/step - accuracy: 0.9860 - loss: 0.0400
     50/Unknown 0s 4ms/step - accuracy: 0.9853 - loss: 0.0418
     62/Unknown 0s 4ms/step - accuracy: 0.9847 - loss: 0.0433
     74/Unknown 0s 4ms/step - accuracy: 0.9842 - loss: 0.0451
     86/Unknown 0s 4ms/step - accuracy: 0.9839 - loss: 0.0465
     98/Unknown 0s 4ms/step - accuracy: 0.9836 - loss: 0.0475
    109/Unknown 1s 4ms/step - accuracy: 0.9833 - loss: 0.0483
    121/Unknown 1s 4ms/step - accuracy: 0.9830 - loss: 0.0490
    132/Unknown 1s 4ms/step - accuracy: 0.9828 - loss: 0.0496
    144/Unknown 1s 4ms/step - accuracy: 0.9827 - loss: 0.0500
    155/Unknown 1s 4ms/step - accuracy: 0.9826 - loss: 0.0504
157/157 ━━━━━━━━━━━━━━━━━━━━ 1s 5ms/step - accuracy: 0.9825 - loss: 0.0505
[11:17:38] INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 2                                       ]8;id=94897;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=942114;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 2: Collaborators that have completed all tasks: ['bob']                                                             ]8;id=537964;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=824446;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:17:38] INFO     Waiting for tasks...                                                                                                     ]8;id=372279;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=591314;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
938/938 - 6s - 6ms/step - accuracy: 0.9900 - loss: 0.0322
[11:17:39] INFO     Collaborator charlie is sending task results for train, round 2                                                            ]8;id=897407;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=863516;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      2/Unknown 0s 2ms/step - accuracy: 0.9531 - loss: 0.2129
     24/Unknown 0s 2ms/step - accuracy: 0.9693 - loss: 0.1047
     45/Unknown 0s 2ms/step - accuracy: 0.9716 - loss: 0.0950
     68/Unknown 0s 2ms/step - accuracy: 0.9725 - loss: 0.0921
     92/Unknown 0s 2ms/step - accuracy: 0.9723 - loss: 0.0934
    116/Unknown 0s 2ms/step - accuracy: 0.9721 - loss: 0.0941
    142/Unknown 0s 2ms/step - accuracy: 0.9719 - loss: 0.0946
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9718 - loss: 0.0948
[11:17:40] INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 2                                   ]8;id=417361;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=959294;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 2: Collaborators that have completed all tasks: ['bob', 'charlie']                                                  ]8;id=346031;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=493567;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
           INFO     Round 2: saved the best model with score 0.981100                                                                          ]8;id=901453;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=275432;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#955\955]8;;\
           INFO     Saving round 2 model...                                                                                                    ]8;id=820900;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=438403;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Starting round 3...                                                                                                       ]8;id=675228;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=566741;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1007\1007]8;;\
[11:17:40] INFO     Waiting for tasks...                                                                                                     ]8;id=962970;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=306236;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator charlie for round 3                                                                          ]8;id=276622;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=1723;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=531695;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=613014;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 39ms/step - accuracy: 0.9688 - loss: 0.0582
     26/Unknown 0s 2ms/step - accuracy: 0.9826 - loss: 0.0498
     50/Unknown 0s 2ms/step - accuracy: 0.9822 - loss: 0.0509
     74/Unknown 0s 2ms/step - accuracy: 0.9822 - loss: 0.0516
    100/Unknown 0s 2ms/step - accuracy: 0.9825 - loss: 0.0512
    121/Unknown 0s 2ms/step - accuracy: 0.9825 - loss: 0.0512
    145/Unknown 0s 2ms/step - accuracy: 0.9826 - loss: 0.0508/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9827 - loss: 0.0505
[11:17:41] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 3                                      ]8;id=778536;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=747912;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:41] INFO     Run 0 epoch of 3 round                                                                                                   ]8;id=179866;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=340956;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9926 - loss: 0.0238
[11:17:45] INFO     Collaborator charlie is sending task results for train, round 3                                                            ]8;id=226623;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=117791;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      2/Unknown 0s 2ms/step - accuracy: 0.9688 - loss: 0.1966
     25/Unknown 0s 2ms/step - accuracy: 0.9679 - loss: 0.1332
     48/Unknown 0s 2ms/step - accuracy: 0.9708 - loss: 0.1142
     71/Unknown 0s 2ms/step - accuracy: 0.9719 - loss: 0.1061
     96/Unknown 0s 2ms/step - accuracy: 0.9723 - loss: 0.1015
    121/Unknown 0s 2ms/step - accuracy: 0.9727 - loss: 0.0977
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9732 - loss: 0.0942
[11:17:46] INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 3                                   ]8;id=636103;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=558308;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 3: Collaborators that have completed all tasks: ['charlie']                                                         ]8;id=443481;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=407565;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:17:46] INFO     Waiting for tasks...                                                                                                     ]8;id=703176;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=526158;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:17:48] INFO     Waiting for tasks...                                                                                                     ]8;id=31447;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=72766;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:17:48] INFO     Sending tasks to collaborator bob for round 3                                                                              ]8;id=27925;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=20697;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=700223;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=474858;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      2/Unknown 0s 3ms/step - accuracy: 0.9766 - loss: 0.0296
     25/Unknown 0s 2ms/step - accuracy: 0.9866 - loss: 0.0290
     50/Unknown 0s 2ms/step - accuracy: 0.9864 - loss: 0.0354
     75/Unknown 0s 2ms/step - accuracy: 0.9866 - loss: 0.0382
     99/Unknown 0s 2ms/step - accuracy: 0.9864 - loss: 0.0402
    124/Unknown 0s 2ms/step - accuracy: 0.9861 - loss: 0.0416
    149/Unknown 0s 2ms/step - accuracy: 0.9860 - loss: 0.0422/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9860 - loss: 0.0423
[11:17:49] INFO     Collaborator bob is sending task results for aggregated_model_validation, round 3                                          ]8;id=628009;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=389165;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:49] INFO     Run 0 epoch of 3 round                                                                                                   ]8;id=768775;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=163897;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9797 - loss: 0.0625
[11:17:54] INFO     Collaborator bob is sending task results for train, round 3                                                                ]8;id=434404;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=458778;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      3/Unknown 0s 3ms/step - accuracy: 0.9809 - loss: 0.0391
     26/Unknown 0s 2ms/step - accuracy: 0.9912 - loss: 0.0260
     51/Unknown 0s 2ms/step - accuracy: 0.9895 - loss: 0.0342
     75/Unknown 0s 2ms/step - accuracy: 0.9888 - loss: 0.0375
     98/Unknown 0s 2ms/step - accuracy: 0.9886 - loss: 0.0383
    122/Unknown 0s 2ms/step - accuracy: 0.9887 - loss: 0.0385
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9887 - loss: 0.0386
[11:17:55] INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 3                                       ]8;id=232004;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=267939;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 3: Collaborators that have completed all tasks: ['charlie', 'bob']                                                  ]8;id=44820;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=270505;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
           INFO     Round 3: saved the best model with score 0.984900                                                                          ]8;id=572164;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=968540;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#955\955]8;;\
           INFO     Saving round 3 model...                                                                                                    ]8;id=247827;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=708275;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Starting round 4...                                                                                                       ]8;id=656868;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=965717;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1007\1007]8;;\
[11:17:55] INFO     Waiting for tasks...                                                                                                     ]8;id=900699;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=750278;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator bob for round 4                                                                              ]8;id=553243;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=217102;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=601698;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=406603;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 39ms/step - accuracy: 0.9688 - loss: 0.0877
     23/Unknown 0s 2ms/step - accuracy: 0.9854 - loss: 0.0579
     46/Unknown 0s 2ms/step - accuracy: 0.9881 - loss: 0.0486
     72/Unknown 0s 2ms/step - accuracy: 0.9884 - loss: 0.0451
     96/Unknown 0s 2ms/step - accuracy: 0.9888 - loss: 0.0430[11:17:56] INFO     Waiting for tasks...                                                                                                     ]8;id=475688;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=924583;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:17:56] INFO     Sending tasks to collaborator charlie for round 4                                                                          ]8;id=725003;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=691087;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=481269;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=977136;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
    111/Unknown 0s 2ms/step - accuracy: 0.9888 - loss: 0.0424
    124/Unknown 0s 3ms/step - accuracy: 0.9888 - loss: 0.0420
    136/Unknown 0s 3ms/step - accuracy: 0.9887 - loss: 0.0417
    149/Unknown 0s 3ms/step - accuracy: 0.9886 - loss: 0.0414
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - accuracy: 0.9886 - loss: 0.0412
           INFO     Collaborator bob is sending task results for aggregated_model_validation, round 4                                          ]8;id=653014;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=215892;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:56] INFO     Run 0 epoch of 4 round                                                                                                   ]8;id=883789;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=911682;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
      1/Unknown 0s 61ms/step - accuracy: 1.0000 - loss: 0.0179
     13/Unknown 0s 4ms/step - accuracy: 0.9936 - loss: 0.0260
     26/Unknown 0s 4ms/step - accuracy: 0.9914 - loss: 0.0339
     39/Unknown 0s 4ms/step - accuracy: 0.9897 - loss: 0.0374
     51/Unknown 0s 4ms/step - accuracy: 0.9890 - loss: 0.0388
     63/Unknown 0s 4ms/step - accuracy: 0.9885 - loss: 0.0396
     74/Unknown 0s 4ms/step - accuracy: 0.9882 - loss: 0.0401
     84/Unknown 0s 4ms/step - accuracy: 0.9879 - loss: 0.0405
     94/Unknown 0s 5ms/step - accuracy: 0.9876 - loss: 0.0410
    104/Unknown 1s 5ms/step - accuracy: 0.9874 - loss: 0.0412
    114/Unknown 1s 5ms/step - accuracy: 0.9873 - loss: 0.0413
    124/Unknown 1s 5ms/step - accuracy: 0.9872 - loss: 0.0414
    135/Unknown 1s 5ms/step - accuracy: 0.9872 - loss: 0.0414
    146/Unknown 1s 5ms/step - accuracy: 0.9871 - loss: 0.0416
    157/Unknown 1s 5ms/step - accuracy: 0.9870 - loss: 0.0417/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 1s 5ms/step - accuracy: 0.9870 - loss: 0.0417
[11:17:57] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 4                                      ]8;id=179977;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=46012;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:17:58] INFO     Run 0 epoch of 4 round                                                                                                   ]8;id=852505;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=890061;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 7s - 8ms/step - accuracy: 0.9842 - loss: 0.0523
938/938 - 7s - 7ms/step - accuracy: 0.9942 - loss: 0.0183
[11:18:04] INFO     Collaborator charlie is sending task results for train, round 4                                                            ]8;id=290310;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=407342;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      2/Unknown 0s 3ms/step - accuracy: 0.9922 - loss: 0.0558
     26/Unknown 0s 2ms/step - accuracy: 0.9756 - loss: 0.0871
     49/Unknown 0s 2ms/step - accuracy: 0.9761 - loss: 0.0823
     73/Unknown 0s 2ms/step - accuracy: 0.9772 - loss: 0.0775
     97/Unknown 0s 2ms/step - accuracy: 0.9776 - loss: 0.0757
    121/Unknown 0s 2ms/step - accuracy: 0.9774 - loss: 0.0760
    144/Unknown 0s 2ms/step - accuracy: 0.9773 - loss: 0.0758
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9771 - loss: 0.0758
[11:18:05] INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 4                                   ]8;id=228124;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=40352;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 4: Collaborators that have completed all tasks: ['charlie']                                                         ]8;id=594921;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=506388;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:18:05] INFO     Waiting for tasks...                                                                                                     ]8;id=53688;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=826581;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:18:06] INFO     Collaborator bob is sending task results for train, round 4                                                                ]8;id=820912;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=159167;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 40ms/step - accuracy: 1.0000 - loss: 0.0170
     26/Unknown 0s 2ms/step - accuracy: 0.9938 - loss: 0.0291
     50/Unknown 0s 2ms/step - accuracy: 0.9925 - loss: 0.0315
     74/Unknown 0s 2ms/step - accuracy: 0.9916 - loss: 0.0351
     99/Unknown 0s 2ms/step - accuracy: 0.9907 - loss: 0.0380
    123/Unknown 0s 2ms/step - accuracy: 0.9904 - loss: 0.0395
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9900 - loss: 0.0408
[11:18:07] INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 4                                       ]8;id=722810;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=831353;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 4: Collaborators that have completed all tasks: ['charlie', 'bob']                                                  ]8;id=631215;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=687591;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
           INFO     Round 4: saved the best model with score 0.987000                                                                          ]8;id=643274;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=416411;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#955\955]8;;\
           INFO     Saving round 4 model...                                                                                                    ]8;id=659540;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=91238;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Starting round 5...                                                                                                       ]8;id=910421;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=981406;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1007\1007]8;;\
[11:18:07] INFO     Waiting for tasks...                                                                                                     ]8;id=237669;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=255943;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator bob for round 5                                                                              ]8;id=962289;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=875992;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=36069;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=9549;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 40ms/step - accuracy: 1.0000 - loss: 0.0456
     24/Unknown 0s 2ms/step - accuracy: 0.9921 - loss: 0.0229
     48/Unknown 0s 2ms/step - accuracy: 0.9901 - loss: 0.0251
     72/Unknown 0s 2ms/step - accuracy: 0.9891 - loss: 0.0280
     96/Unknown 0s 2ms/step - accuracy: 0.9884 - loss: 0.0320
    121/Unknown 0s 2ms/step - accuracy: 0.9878 - loss: 0.0345
    145/Unknown 0s 2ms/step - accuracy: 0.9875 - loss: 0.0362
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9875 - loss: 0.0367
[11:18:08] INFO     Collaborator bob is sending task results for aggregated_model_validation, round 5                                          ]8;id=356443;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=766047;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:18:08] INFO     Run 0 epoch of 5 round                                                                                                   ]8;id=807496;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=351477;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9862 - loss: 0.0446
[11:18:12] INFO     Collaborator bob is sending task results for train, round 5                                                                ]8;id=276330;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=679060;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      2/Unknown 0s 3ms/step - accuracy: 0.9219 - loss: 0.1393
     25/Unknown 0s 2ms/step - accuracy: 0.9724 - loss: 0.0775
     51/Unknown 0s 2ms/step - accuracy: 0.9788 - loss: 0.0599
     76/Unknown 0s 2ms/step - accuracy: 0.9816 - loss: 0.0522
    101/Unknown 0s 2ms/step - accuracy: 0.9830 - loss: 0.0489
    128/Unknown 0s 2ms/step - accuracy: 0.9840 - loss: 0.0463
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9848 - loss: 0.0440
           INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 5                                       ]8;id=590926;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=503327;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 5: Collaborators that have completed all tasks: ['bob']                                                             ]8;id=390507;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=754311;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:18:12] INFO     Waiting for tasks...                                                                                                     ]8;id=502623;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=184961;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:18:15] INFO     Waiting for tasks...                                                                                                     ]8;id=442952;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=322439;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:18:15] INFO     Sending tasks to collaborator charlie for round 5                                                                          ]8;id=377710;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=63540;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=926720;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=199442;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 38ms/step - accuracy: 1.0000 - loss: 0.0034
     26/Unknown 0s 2ms/step - accuracy: 0.9886 - loss: 0.0348
     49/Unknown 0s 2ms/step - accuracy: 0.9867 - loss: 0.0411
     74/Unknown 0s 2ms/step - accuracy: 0.9867 - loss: 0.0413
     99/Unknown 0s 2ms/step - accuracy: 0.9869 - loss: 0.0408
    124/Unknown 0s 2ms/step - accuracy: 0.9871 - loss: 0.0407
    149/Unknown 0s 2ms/step - accuracy: 0.9870 - loss: 0.0408/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9870 - loss: 0.0408
[11:18:16] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 5                                      ]8;id=980959;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=816848;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:18:16] INFO     Run 0 epoch of 5 round                                                                                                   ]8;id=329590;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=596256;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9957 - loss: 0.0147
[11:18:20] INFO     Collaborator charlie is sending task results for train, round 5                                                            ]8;id=466940;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=627613;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 38ms/step - accuracy: 0.9688 - loss: 0.2091
     26/Unknown 0s 2ms/step - accuracy: 0.9790 - loss: 0.0865
     50/Unknown 0s 2ms/step - accuracy: 0.9770 - loss: 0.0885
     74/Unknown 0s 2ms/step - accuracy: 0.9766 - loss: 0.0881
     98/Unknown 0s 2ms/step - accuracy: 0.9762 - loss: 0.0894
    122/Unknown 0s 2ms/step - accuracy: 0.9760 - loss: 0.0902
    146/Unknown 0s 2ms/step - accuracy: 0.9760 - loss: 0.0900
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9760 - loss: 0.0900
           INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 5                                   ]8;id=135329;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=961448;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 5: Collaborators that have completed all tasks: ['bob', 'charlie']                                                  ]8;id=409829;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=726147;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
           INFO     Saving round 5 model...                                                                                                    ]8;id=858646;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=80970;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Starting round 6...                                                                                                       ]8;id=151884;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=429541;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1007\1007]8;;\
[11:18:20] INFO     Waiting for tasks...                                                                                                     ]8;id=190907;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=982496;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator charlie for round 6                                                                          ]8;id=277713;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=522537;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=349133;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=206507;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 38ms/step - accuracy: 0.9688 - loss: 0.0377
     25/Unknown 0s 2ms/step - accuracy: 0.9874 - loss: 0.0326
     50/Unknown 0s 2ms/step - accuracy: 0.9883 - loss: 0.0334
     74/Unknown 0s 2ms/step - accuracy: 0.9881 - loss: 0.0358
     98/Unknown 0s 2ms/step - accuracy: 0.9882 - loss: 0.0362
    123/Unknown 0s 2ms/step - accuracy: 0.9881 - loss: 0.0367
    147/Unknown 0s 2ms/step - accuracy: 0.9881 - loss: 0.0367/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9880 - loss: 0.0369
[11:18:21] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 6                                      ]8;id=93618;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=332921;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:18:21] INFO     Run 0 epoch of 6 round                                                                                                   ]8;id=188193;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=799253;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
[11:18:22] INFO     Waiting for tasks...                                                                                                     ]8;id=543286;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=261268;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:18:23] INFO     Sending tasks to collaborator bob for round 6                                                                              ]8;id=825363;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=766707;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
[11:18:23] INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=728495;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=403269;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 63ms/step - accuracy: 0.9688 - loss: 0.2314
     10/Unknown 0s 6ms/step - accuracy: 0.9830 - loss: 0.0796
     21/Unknown 0s 5ms/step - accuracy: 0.9835 - loss: 0.0603
     31/Unknown 0s 5ms/step - accuracy: 0.9837 - loss: 0.0551
     42/Unknown 0s 5ms/step - accuracy: 0.9840 - loss: 0.0523
     53/Unknown 0s 5ms/step - accuracy: 0.9841 - loss: 0.0505
     65/Unknown 0s 5ms/step - accuracy: 0.9844 - loss: 0.0487
     77/Unknown 0s 5ms/step - accuracy: 0.9847 - loss: 0.0472
     89/Unknown 0s 5ms/step - accuracy: 0.9849 - loss: 0.0462
     99/Unknown 1s 5ms/step - accuracy: 0.9851 - loss: 0.0456
    110/Unknown 1s 5ms/step - accuracy: 0.9852 - loss: 0.0452
    122/Unknown 1s 5ms/step - accuracy: 0.9854 - loss: 0.0448
    133/Unknown 1s 5ms/step - accuracy: 0.9856 - loss: 0.0444
    145/Unknown 1s 5ms/step - accuracy: 0.9858 - loss: 0.0440
    156/Unknown 1s 5ms/step - accuracy: 0.9860 - loss: 0.0435/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 1s 5ms/step - accuracy: 0.9860 - loss: 0.0435
[11:18:24] INFO     Collaborator bob is sending task results for aggregated_model_validation, round 6                                          ]8;id=438522;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=97374;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:18:25] INFO     Run 0 epoch of 6 round                                                                                                   ]8;id=621037;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=997852;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 6s - 6ms/step - accuracy: 0.9959 - loss: 0.0125
938/938 - 5s - 5ms/step - accuracy: 0.9866 - loss: 0.0406
[11:18:29] INFO     Collaborator bob is sending task results for train, round 6                                                                ]8;id=415998;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=459446;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      2/Unknown 0s 3ms/step - accuracy: 1.0000 - loss: 0.0184
     25/Unknown 0s 2ms/step - accuracy: 0.9867 - loss: 0.0440
     49/Unknown 0s 2ms/step - accuracy: 0.9857 - loss: 0.0440
     71/Unknown 0s 2ms/step - accuracy: 0.9856 - loss: 0.0434
     95/Unknown 0s 2ms/step - accuracy: 0.9857 - loss: 0.0433
    120/Unknown 0s 2ms/step - accuracy: 0.9859 - loss: 0.0428
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9863 - loss: 0.0419
[11:18:30] INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 6                                       ]8;id=423769;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=298909;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 6: Collaborators that have completed all tasks: ['bob']                                                             ]8;id=524542;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=543526;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:18:30] INFO     Waiting for tasks...                                                                                                     ]8;id=361664;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=289543;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:18:31] INFO     Collaborator charlie is sending task results for train, round 6                                                            ]8;id=974187;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=322413;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 40ms/step - accuracy: 0.9688 - loss: 0.0552
     26/Unknown 0s 2ms/step - accuracy: 0.9829 - loss: 0.0466
     50/Unknown 0s 2ms/step - accuracy: 0.9814 - loss: 0.0618
     76/Unknown 0s 2ms/step - accuracy: 0.9802 - loss: 0.0706
    100/Unknown 0s 2ms/step - accuracy: 0.9798 - loss: 0.0744
    124/Unknown 0s 2ms/step - accuracy: 0.9797 - loss: 0.0759
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9799 - loss: 0.0760
[11:18:32] INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 6                                   ]8;id=403489;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=424297;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\

           INFO     Round 6: Collaborators that have completed all tasks: ['bob', 'charlie']                                                  ]8;id=894335;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=140284;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
           INFO     Round 6: saved the best model with score 0.987800                                                                          ]8;id=146215;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=835030;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#955\955]8;;\
           INFO     Saving round 6 model...                                                                                                    ]8;id=630250;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=799616;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Starting round 7...                                                                                                       ]8;id=300486;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=453503;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1007\1007]8;;\
[11:18:32] INFO     Waiting for tasks...                                                                                                     ]8;id=13423;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=502979;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator charlie for round 7                                                                          ]8;id=546772;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=727941;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=819814;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=197529;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      2/Unknown 0s 2ms/step - accuracy: 0.9922 - loss: 0.0232
     26/Unknown 0s 2ms/step - accuracy: 0.9902 - loss: 0.0268
     51/Unknown 0s 2ms/step - accuracy: 0.9897 - loss: 0.0297
     76/Unknown 0s 2ms/step - accuracy: 0.9891 - loss: 0.0312
    102/Unknown 0s 2ms/step - accuracy: 0.9882 - loss: 0.0344
    128/Unknown 0s 2ms/step - accuracy: 0.9876 - loss: 0.0363
    154/Unknown 0s 2ms/step - accuracy: 0.9874 - loss: 0.0372/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9873 - loss: 0.0372
[11:18:33] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 7                                      ]8;id=522927;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=478015;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:18:33] INFO     Run 0 epoch of 7 round                                                                                                   ]8;id=108988;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=977857;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9971 - loss: 0.0091
[11:18:37] INFO     Collaborator charlie is sending task results for train, round 7                                                            ]8;id=729070;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=832887;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      2/Unknown 0s 2ms/step - accuracy: 0.9922 - loss: 0.0159
     25/Unknown 0s 2ms/step - accuracy: 0.9871 - loss: 0.0499
     49/Unknown 0s 2ms/step - accuracy: 0.9835 - loss: 0.0661
     73/Unknown 0s 2ms/step - accuracy: 0.9820 - loss: 0.0700
     98/Unknown 0s 2ms/step - accuracy: 0.9816 - loss: 0.0708
    125/Unknown 0s 2ms/step - accuracy: 0.9815 - loss: 0.0699
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9816 - loss: 0.0689
           INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 7                                   ]8;id=700480;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=365402;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 7: Collaborators that have completed all tasks: ['charlie']                                                         ]8;id=472992;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=444266;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:18:37] INFO     Waiting for tasks...                                                                                                     ]8;id=918585;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=971831;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:18:40] INFO     Waiting for tasks...                                                                                                     ]8;id=343255;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=220696;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:18:40] INFO     Sending tasks to collaborator bob for round 7                                                                              ]8;id=294171;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=440361;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=615089;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=636047;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 36ms/step - accuracy: 1.0000 - loss: 0.0014
     26/Unknown 0s 2ms/step - accuracy: 0.9923 - loss: 0.0186
     53/Unknown 0s 2ms/step - accuracy: 0.9905 - loss: 0.0247
     78/Unknown 0s 2ms/step - accuracy: 0.9899 - loss: 0.0266
    104/Unknown 0s 2ms/step - accuracy: 0.9897 - loss: 0.0279
    132/Unknown 0s 2ms/step - accuracy: 0.9896 - loss: 0.0288
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9896 - loss: 0.0293
[11:18:41] INFO     Collaborator bob is sending task results for aggregated_model_validation, round 7                                          ]8;id=337437;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=189286;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:18:41] INFO     Run 0 epoch of 7 round                                                                                                   ]8;id=843812;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=642003;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9894 - loss: 0.0315
[11:18:46] INFO     Collaborator bob is sending task results for train, round 7                                                                ]8;id=151568;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=146296;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 37ms/step - accuracy: 0.9688 - loss: 0.1116
     27/Unknown 0s 2ms/step - accuracy: 0.9894 - loss: 0.0420
     52/Unknown 0s 2ms/step - accuracy: 0.9899 - loss: 0.0372
     79/Unknown 0s 2ms/step - accuracy: 0.9901 - loss: 0.0352
    106/Unknown 0s 2ms/step - accuracy: 0.9905 - loss: 0.0335
    134/Unknown 0s 2ms/step - accuracy: 0.9907 - loss: 0.0323
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9908 - loss: 0.0318
           INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 7                                       ]8;id=916937;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=174481;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 7: Collaborators that have completed all tasks: ['charlie', 'bob']                                                  ]8;id=121074;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=11369;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
           INFO     Round 7: saved the best model with score 0.988100                                                                          ]8;id=491457;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=725624;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#955\955]8;;\
           INFO     Saving round 7 model...                                                                                                    ]8;id=311507;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=885468;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Starting round 8...                                                                                                       ]8;id=752700;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=949604;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1007\1007]8;;\
[11:18:46] INFO     Waiting for tasks...                                                                                                     ]8;id=560988;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=444244;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator bob for round 8                                                                              ]8;id=428079;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=747143;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=58243;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=491927;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      2/Unknown 0s 2ms/step - accuracy: 0.9766 - loss: 0.0551
     27/Unknown 0s 2ms/step - accuracy: 0.9940 - loss: 0.0253
     54/Unknown 0s 2ms/step - accuracy: 0.9939 - loss: 0.0260
     79/Unknown 0s 2ms/step - accuracy: 0.9932 - loss: 0.0265
    106/Unknown 0s 2ms/step - accuracy: 0.9923 - loss: 0.0287
    134/Unknown 0s 2ms/step - accuracy: 0.9915 - loss: 0.0310
/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9912 - loss: 0.0317
[11:18:47] INFO     Waiting for tasks...                                                                                                     ]8;id=891667;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=435661;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:18:47] INFO     Sending tasks to collaborator charlie for round 8                                                                          ]8;id=672467;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=639661;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=840657;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=63371;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
[11:18:48] INFO     Collaborator bob is sending task results for aggregated_model_validation, round 8                                          ]8;id=660460;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=37650;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:18:48] INFO     Run 0 epoch of 8 round                                                                                                   ]8;id=678348;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=949820;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
      1/Unknown 0s 52ms/step - accuracy: 0.9375 - loss: 0.0947
     13/Unknown 0s 4ms/step - accuracy: 0.9815 - loss: 0.0406
     26/Unknown 0s 4ms/step - accuracy: 0.9845 - loss: 0.0389
     39/Unknown 0s 4ms/step - accuracy: 0.9854 - loss: 0.0392
     52/Unknown 0s 4ms/step - accuracy: 0.9858 - loss: 0.0394
     65/Unknown 0s 4ms/step - accuracy: 0.9863 - loss: 0.0390
     78/Unknown 0s 4ms/step - accuracy: 0.9862 - loss: 0.0396
     91/Unknown 0s 4ms/step - accuracy: 0.9861 - loss: 0.0404
    104/Unknown 0s 4ms/step - accuracy: 0.9861 - loss: 0.0407
    117/Unknown 1s 4ms/step - accuracy: 0.9861 - loss: 0.0408
    129/Unknown 1s 4ms/step - accuracy: 0.9862 - loss: 0.0409
    142/Unknown 1s 4ms/step - accuracy: 0.9861 - loss: 0.0411
    154/Unknown 1s 4ms/step - accuracy: 0.9861 - loss: 0.0412/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 1s 4ms/step - accuracy: 0.9861 - loss: 0.0412
[11:18:49] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 8                                      ]8;id=808652;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=314186;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:18:49] INFO     Run 0 epoch of 8 round                                                                                                   ]8;id=451750;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=911565;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 7s - 7ms/step - accuracy: 0.9908 - loss: 0.0286
938/938 - 6s - 6ms/step - accuracy: 0.9975 - loss: 0.0082
[11:18:55] INFO     Collaborator charlie is sending task results for train, round 8                                                            ]8;id=884364;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=785814;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 38ms/step - accuracy: 0.9688 - loss: 0.0827
     26/Unknown 0s 2ms/step - accuracy: 0.9775 - loss: 0.0738
     52/Unknown 0s 2ms/step - accuracy: 0.9784 - loss: 0.0700
     79/Unknown 0s 2ms/step - accuracy: 0.9778 - loss: 0.0698
    104/Unknown 0s 2ms/step - accuracy: 0.9780 - loss: 0.0687
    129/Unknown 0s 2ms/step - accuracy: 0.9783 - loss: 0.0686
    154/Unknown 0s 2ms/step - accuracy: 0.9787 - loss: 0.0678
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9787 - loss: 0.0677
[11:18:56] INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 8                                   ]8;id=608681;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=808765;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 8: Collaborators that have completed all tasks: ['charlie']                                                         ]8;id=945937;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=962233;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:18:56] INFO     Waiting for tasks...                                                                                                     ]8;id=635281;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=504316;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:18:58] INFO     Collaborator bob is sending task results for train, round 8                                                                ]8;id=25776;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=879524;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 36ms/step - accuracy: 0.9688 - loss: 0.0735
     26/Unknown 0s 2ms/step - accuracy: 0.9837 - loss: 0.0491
     52/Unknown 0s 2ms/step - accuracy: 0.9870 - loss: 0.0404
     78/Unknown 0s 2ms/step - accuracy: 0.9875 - loss: 0.0389
    104/Unknown 0s 2ms/step - accuracy: 0.9878 - loss: 0.0374
    132/Unknown 0s 2ms/step - accuracy: 0.9878 - loss: 0.0372
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9878 - loss: 0.0370
           INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 8                                       ]8;id=38514;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=948659;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 8: Collaborators that have completed all tasks: ['charlie', 'bob']                                                  ]8;id=760220;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=984004;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
           INFO     Saving round 8 model...                                                                                                    ]8;id=350868;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=4705;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Starting round 9...                                                                                                       ]8;id=967;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=582027;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1007\1007]8;;\
[11:18:58] INFO     Waiting for tasks...                                                                                                     ]8;id=646499;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=445322;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending tasks to collaborator bob for round 9                                                                              ]8;id=225301;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=893501;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=71732;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=346445;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 37ms/step - accuracy: 1.0000 - loss: 0.0026
     28/Unknown 0s 2ms/step - accuracy: 0.9923 - loss: 0.0251
     56/Unknown 0s 2ms/step - accuracy: 0.9917 - loss: 0.0254
     83/Unknown 0s 2ms/step - accuracy: 0.9913 - loss: 0.0261
    111/Unknown 0s 2ms/step - accuracy: 0.9909 - loss: 0.0276
    140/Unknown 0s 2ms/step - accuracy: 0.9907 - loss: 0.0282/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9907 - loss: 0.0285
[11:18:59] INFO     Collaborator bob is sending task results for aggregated_model_validation, round 9                                          ]8;id=107804;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=860457;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:18:59] INFO     Run 0 epoch of 9 round                                                                                                   ]8;id=884291;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=708365;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9923 - loss: 0.0244
[11:19:03] INFO     Collaborator bob is sending task results for train, round 9                                                                ]8;id=704981;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=339385;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      2/Unknown 0s 2ms/step - accuracy: 1.0000 - loss: 0.0029
     28/Unknown 0s 2ms/step - accuracy: 0.9804 - loss: 0.0516
     55/Unknown 0s 2ms/step - accuracy: 0.9774 - loss: 0.0603
     81/Unknown 0s 2ms/step - accuracy: 0.9770 - loss: 0.0617
    106/Unknown 0s 2ms/step - accuracy: 0.9772 - loss: 0.0622
    133/Unknown 0s 2ms/step - accuracy: 0.9773 - loss: 0.0629
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9773 - loss: 0.0636
           INFO     Collaborator bob is sending task results for locally_tuned_model_validation, round 9                                       ]8;id=76723;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=399028;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 9: Collaborators that have completed all tasks: ['bob']                                                             ]8;id=161086;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=170397;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
[11:19:03] INFO     Waiting for tasks...                                                                                                     ]8;id=354703;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=196346;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:19:06] INFO     Waiting for tasks...                                                                                                     ]8;id=264690;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=15733;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
[11:19:06] INFO     Sending tasks to collaborator charlie for round 9                                                                          ]8;id=722310;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=419779;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#409\409]8;;\
           INFO     Received Tasks: [name: "aggregated_model_validation"                                                                     ]8;id=964633;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=707392;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#184\184]8;;\
                    , name: "train"                                                                                                                             
                    , name: "locally_tuned_model_validation"                                                                                                    
                    ]                                                                                                                                           
      1/Unknown 0s 37ms/step - accuracy: 1.0000 - loss: 3.3127e-04
     28/Unknown 0s 2ms/step - accuracy: 0.9926 - loss: 0.0276
     54/Unknown 0s 2ms/step - accuracy: 0.9917 - loss: 0.0274
     82/Unknown 0s 2ms/step - accuracy: 0.9912 - loss: 0.0276
    110/Unknown 0s 2ms/step - accuracy: 0.9907 - loss: 0.0279
    138/Unknown 0s 2ms/step - accuracy: 0.9903 - loss: 0.0287/home/docs/.asdf/installs/python/3.10.15/lib/python3.10/contextlib.py:153: UserWarning: Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches. You may need to use the `.repeat()` function when building your dataset.
  self.gen.throw(typ, value, traceback)
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9900 - loss: 0.0296
[11:19:07] INFO     Collaborator charlie is sending task results for aggregated_model_validation, round 9                                      ]8;id=316452;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=651033;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
[11:19:07] INFO     Run 0 epoch of 9 round                                                                                                   ]8;id=394810;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py\runner_keras.py]8;;\:]8;id=236809;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/federated/task/runner_keras.py#103\103]8;;\
938/938 - 4s - 4ms/step - accuracy: 0.9971 - loss: 0.0086
[11:19:10] INFO     Collaborator charlie is sending task results for train, round 9                                                            ]8;id=479010;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=159011;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
      1/Unknown 0s 36ms/step - accuracy: 0.9375 - loss: 0.1914
     27/Unknown 0s 2ms/step - accuracy: 0.9709 - loss: 0.1195
     51/Unknown 0s 2ms/step - accuracy: 0.9751 - loss: 0.1012
     76/Unknown 0s 2ms/step - accuracy: 0.9767 - loss: 0.0938
    101/Unknown 0s 2ms/step - accuracy: 0.9776 - loss: 0.0896
    126/Unknown 0s 2ms/step - accuracy: 0.9782 - loss: 0.0859
157/157 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.9788 - loss: 0.0826
[11:19:11] INFO     Collaborator charlie is sending task results for locally_tuned_model_validation, round 9                                   ]8;id=215852;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=663975;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#629\629]8;;\
           INFO     Round 9: Collaborators that have completed all tasks: ['bob', 'charlie']                                                  ]8;id=684155;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=126145;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1049\1049]8;;\
           INFO     Round 9: saved the best model with score 0.988800                                                                          ]8;id=475512;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=959828;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#955\955]8;;\
           INFO     Saving round 9 model...                                                                                                    ]8;id=70711;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=996110;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#994\994]8;;\
           INFO     Experiment Completed. Cleaning up...                                                                                      ]8;id=274639;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=963142;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#1005\1005]8;;\
[11:19:11] INFO     Waiting for tasks...                                                                                                     ]8;id=713623;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=627253;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#234\234]8;;\
           INFO     Sending signal to collaborator charlie to shutdown...                                                                      ]8;id=153543;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py\aggregator.py]8;;\:]8;id=410955;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/aggregator/aggregator.py#356\356]8;;\
           INFO     Received shutdown signal. Exiting...                                                                                     ]8;id=459541;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py\collaborator.py]8;;\:]8;id=112306;file:///home/docs/checkouts/readthedocs.org/user_builds/openfl/checkouts/v1.7.1/openfl/component/collaborator/collaborator.py#199\199]8;;\

 ✔️ OK