diff --git a/.gitignore b/.gitignore
index ad98b0252..6097c561b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -149,3 +149,6 @@ dmypy.json
cython_debug/
*_kernel/
+
+# Dataset
+bert_dataset/
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 85a8b46b0..2dc9b6aa6 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -26,24 +26,20 @@ repos:
- repo: https://github.com/nbQA-dev/nbQA
rev: 1.9.1
hooks:
- - id: nbqa-black
- args: [-l80]
- id: nbqa-pyupgrade
args: [--py36-plus]
- - id: nbqa-isort
- args: [--profile=black, -l80]
- repo: https://github.com/PyCQA/isort
rev: 7.0.0
hooks:
- id: isort
args: ["--profile", "black", "-l80"]
-- repo: https://github.com/psf/black-pre-commit-mirror
- rev: 25.12.0
- hooks:
- - id: black
- args: [-l 80]
- - id: black-jupyter
- args: [-l 80]
+ types_or: [python, pyi, jupyter]
+- repo: https://github.com/psf/black
+ rev: 25.12.0
+ hooks:
+ - id: black
+ args: [-l 80]
+ types_or: [python, pyi, jupyter]
- repo: https://github.com/asottile/pyupgrade
rev: v3.21.2
hooks:
diff --git a/Makefile b/Makefile
index dfdf87657..e67be0a74 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# Copyright 2021 Google LLC. All Rights Reserved.
+# Copyright 2025 Google LLC. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,51 +12,62 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-all: clean install
-kernels: \
- object_detection_kernel \
- pytorch_kfp_kernel \
- tf_privacy_kernel
+SHELL := /bin/bash
+export PATH := $(HOME)/.local/bin:$(PATH)
+SETUP_SCRIPT = ./scripts/setup_kernel.sh
+PYTHON_VERSION = 3.12
+
+PROJECTS = \
+ asl_core:asl_core:"ASL Core" \
+ asl_genai:asl_genai:"ASL Gen AI" \
+ asl_mlops:asl_mlops:"ASL MLOps"
+
+.PHONY: all install clean setup-apt setup-ide setup build-kernels
+
+all: setup build-kernels install-pre-commit
+
+install: all
-.PHONY: clean
clean:
@find . -name '*.pyc' -delete
- @find . -name '*.pytest_cache' -delete
@find . -name '__pycache__' -delete
- @find . -name '*egg-info' -delete
-
-.PHONY: install
-install:
- @pip install --user -U pip
- @pip install --user "Cython<3"
- @pip install --user -e .
- @pip install --user --no-deps -r requirements-without-deps.txt
- @./scripts/setup_on_jupyterlab.sh
- @pre-commit install
- @sudo apt-get update
- @sudo apt-get -y install graphviz
-
-.PHONY: precommit
-precommit:
- @pre-commit run --all-files
-
-.PHONY: object_detection_kernel
-object_detection_kernel:
- ./kernels/object_detection.sh
-
-.PHONY: pytorch_kfp_kernel
-pytorch_kfp_kernel:
- ./kernels/pytorch_kfp.sh
-
-.PHONY: tf_privacy_kernel
-tf_privacy_kernel:
- ./kernels/tf_privacy.sh
-
-.PHONY: keras_cv_kernel
-keras_cv_kernel:
- ./kernels/keras_cv.sh
-
-.PHONY: tests
-tests:
- pytest tests/unit
+ @find . -type d -name '*.egg-info' -exec rm -rf {} +
+
+ @for config in $(PROJECTS); do \
+ IFS=: read -r dir name disp <<< "$$config"; \
+ bash $(SETUP_SCRIPT) $$dir $$name "$$disp" remove; \
+ done
+
+setup-apt:
+ $(eval TOKEN=$(shell curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token | sed 's/.*"access_token":"\([^"]*\)".*/\1/'))
+ @export CLOUDSDK_AUTH_ACCESS_TOKEN=$(TOKEN); \
+ export GOOGLE_APPLICATION_CREDENTIALS=""; \
+ sudo rm -f /etc/apt/sources.list.d/yarn.list /usr/share/keyrings/yarn.gpg; \
+ curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/yarn.gpg; \
+ echo "deb [signed-by=/usr/share/keyrings/yarn.gpg] https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list; \
+ sudo apt-get update
+
+setup-ide:
+ @if command -v code-oss-cloud-workstations > /dev/null; then \
+ echo "Installing Workstation extensions..."; \
+ code-oss-cloud-workstations --install-extension ms-python.python --force; \
+ code-oss-cloud-workstations --install-extension ms-toolsai.jupyter --force; \
+ fi
+
+setup: setup-apt setup-ide
+ sudo apt-get -y install graphviz
+ @command -v uv >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh
+ uv python install $(PYTHON_VERSION)
+ uv tool install jupyter-core --with jupyter-client
+ @grep -q "local/bin" ~/.bashrc || echo 'export PATH="$$HOME/.local/bin:$$PATH"' >> ~/.bashrc
+
+build-kernels:
+ @for config in $(PROJECTS); do \
+ IFS=: read -r dir name disp <<< "$$config"; \
+ bash $(SETUP_SCRIPT) $$dir $$name "$$disp"; \
+ done
+
+install-pre-commit:
+ uv tool install pre-commit
+ uv tool run pre-commit install
diff --git a/README.md b/README.md
index 6f38c9b44..766fca4af 100644
--- a/README.md
+++ b/README.md
@@ -1,60 +1,93 @@
# Advanced Solutions Lab
## Overview
-This repository contains Jupyter notebooks meant to be run on Vertex AI. This is maintained by Google Cloud’s [Advanced Solutions Lab (ASL)](https://cloud.google.com/asl) team. [Vertex AI](https://cloud.google.com/vertex-ai) is the next generation AI Platform on the Google Cloud Platform.
-The material covered in this repo will take a software engineer with no exposure to machine learning to an advanced level.
-
-In particular, the notebooks in this repository cover
-- A wide range of model architectures (DNN, CNN, RNN, transformers, SNGP, etc.) targeting many data modalities (tabular, image, text, time-series) implemented mainly in Tensorflow and Keras.
-- Tools on Google Cloud’s Vertex AI for operationalizing Tensorflow, Scikit-learn and PyTorch models at scale (e.g. Vertex training, tuning, and serving, TFX and Kubeflow pipelines).
-
-If you are new to machine learning or Vertex AI start here: [Introduction to TensorFlow](https://github.com/GoogleCloudPlatform/asl-ml-immersion/tree/master/notebooks/introduction_to_tensorflow)
+This repository contains AI and Machine Learning contents meant to be run on Google Cloud. This is maintained by Google Cloud’s [Advanced Solutions Lab (ASL)](https://cloud.google.com/asl) team.
+This repository contains 3 main modules to covers various AI/ML toipcs:
+- `asl_core`: A wide range of model architectures (DNN, CNN, RNN, transformers, SNGP, etc.) targeting many data modalities (tabular, image, text, time-series) implemented mainly in Tensorflow and Keras.
+- `asl_mlops`: Tools on Google Cloud’s Vertex AI for operationalizing Tensorflow, Scikit-learn and PyTorch models at scale (e.g. Vertex training, tuning, and serving, TFX and Kubeflow pipelines).
+- `asl_genai`: Generative AI and Agent System using Gemini and Agentic Frameworks like Google ADK.
## Repository Structure
-All notebooks are in the notebooks folder. This folder is organized by different ML topics. Each folder contains a `labs` and a `solutions` folder. Use the `labs` notebooks to test your coding skills by filling in TODOs and refer to the notebooks in the `solutions` folder to verify your code.
+Each module (`asl_core`, `asl_mlops`, `asl_genai`) has separate environment and materials, which are organized in each directory.
+
+All learning materials are in the contets folder. This folder is organized by different topics. Each folder contains a `labs` and a `solutions` folder. Use the `labs` notebooks to test your coding skills by filling in TODOs and refer to the notebooks in the `solutions` folder to verify your code.
We have three main folders described below:
```
-├── kernels - contains kernel scripts needed for certain notebooks in lab folder
-├── notebooks - contains labs and solutions notebook organized by topic
-│ ├── bigquery
-│ ├── building_production_ml_systems
-│ ├── docker_and_kubernetes
-│ ├── . . .
-├── scripts - contains setup scripts for enabling and setting up services on Vertex AI
+├── asl_core
+│ ├── notebooks - contains learning materials organized by topic
+│ │ ├── building_production_ml_systems
+│ │ │ ├── labs
+│ │ │ └── solutions
+│ │ ├── end-to-end-structured
+│ │ ├── image_models
+│ │ ├── ...
+│ ├── kernels - contains kernel scripts needed for certain notebooks
+│ ├── scaffolds - contains sample code to accelerate AI/ML projects
+│ ├── requirements.txt - dependencies for this module
+├── asl_mlops
+│ ├── ...
+├── asl_genai
+│ ├── ...
+├── ...
```
-For a more detailed breakdown of the notebooks in this repo, please refer to this [readme](https://github.com/GoogleCloudPlatform/asl-ml-immersion/blob/master/notebooks/README.md).
-
-
-## Environment Setup (Vertex AI)
-
-First, open [CloudShell](https://cloud.google.com/shell) and run the following instructions:
+## Environment Setup
+### Step 1. Run the Setup Script on Cloud Shell
+This repository is tested on Vertex AI Workbench and Cloud Workstations. To begin, run the setup script in [Cloud Shell](https://shell.cloud.google.com) to configure essential project infrastructure (APIs, IAM, Buckets).
+Run the setup script in [Cloud Shell](https://shell.cloud.google.com) to provision your environment.
```bash
git clone https://github.com/GoogleCloudPlatform/asl-ml-immersion.git
cd asl-ml-immersion
-./scripts/setup_on_cloudshell.sh
+bash scripts/setup_env.sh
```
-Second, follow the instruction of [the official documentation](https://cloud.google.com/vertex-ai/docs/workbench/instances/create-console-quickstart) to set up a JupyterLab instance on [Vertex AI Workbench Instance](https://cloud.google.com/vertex-ai/docs/workbench/instances/introduction).
+You will be prompted to select the environment to set up:
+* **1) Vertex AI Workbench:** Setup Vertex AI Workbench.
+* **2) Cloud Workstations:** Setup Cloud Workstations.
+* **3) Setup both:** Setup both environments.
+* **4) Skip:** Setup project infrastructure (APIs, IAM, Buckets) only.
+
+By selecting the option 1-3, you can automatically setup the environment, or you can select 4 and manually set up the environment following the official documentation:
+* **Vertex AI Workbench:** [Create a user-managed notebook instance](https://cloud.google.com/vertex-ai/docs/workbench/instances/create-console-quickstart)
+* **Cloud Workstations:** [Create a workstation](https://docs.cloud.google.com/workstations/docs/create-workstation)
-**Note:** Accelerators (GPU/TPU) are not required in most of the labs, but some notebooks recommend using them.
+Next, you will be asked if you want to attach a GPU (Nvidia T4) to the environment. Select `y` or `n` depending on your preference.
-After creating a Vertex Workbench Instance, open the terminal *in your JupyterLab instance* and run the following commands:
+**Note:** Accelerators (GPU/TPU) are not required in most of the notebooks, but some notebooks recommend using them.
+
+### Step 2. Build the Environemnt
+Once your environment is running, open it. Then, run the commands below in Terminal **inside the environment** to clone this repository, and build the environemnt (venvs and jupyter kernels).
```bash
git clone https://github.com/GoogleCloudPlatform/asl-ml-immersion.git
cd asl-ml-immersion
-export PATH=$PATH:~/.local/bin
-make install
+make
```
+On Cloud Workstations, click `Open Folder` -> `asl-ml-immersion` to open the repository window. If the folder is already opend, `Command + Shift + P` and type `Developer: Reload Window` to reflect the changes.
+
+## Using the Environment
+### Running a notebook
+After the setup above, you can open a Jupyter notebook file, and execute on a module kernel (`ASL Core`, `ASL MLOps`, or `ASL Agent`).
+If a correct kernel is not pre-selected, click `Select Kernel` and select a correct one.
+
+**On Cloud Workstations**, you can find a kernel under `Select Kernel` -> `Jupyter Kernels`.
+If you can't find `Jupyter Kernels`, click `Python Environment` -> `<- (Left Arrow)` to reload the environment.
+
**Note**: Some notebooks might require additional setup, please refer to the instructions in specific notebooks.
-After running these commands, you can open and execute a notebook on the base "Python 3" kernel.
+### Running a command on Terminal
+When running a command from the terminal, make sure to activate a venv for a specific environment.
+
+E.g. (under asl-ml-immersion directory),
+```bash
+source ./asl_genai/.venv/bin/activate
+adk web ./asl_genai/notebooks/vertex_genai/solutions/adk_agents
+```
## Contributions
Currently, only Googlers can contribute to this repo. See [CONTRIBUTING.md](https://github.com/GoogleCloudPlatform/asl-ml-immersion/blob/master/CONTRIBUTING.md) for more details on the contribution workflow.
diff --git a/kernels/keras_cv.sh b/asl_core/kernels/keras_cv.sh
similarity index 100%
rename from kernels/keras_cv.sh
rename to asl_core/kernels/keras_cv.sh
diff --git a/kernels/object_detection.sh b/asl_core/kernels/object_detection.sh
similarity index 100%
rename from kernels/object_detection.sh
rename to asl_core/kernels/object_detection.sh
diff --git a/kernels/tf_privacy.sh b/asl_core/kernels/tf_privacy.sh
similarity index 100%
rename from kernels/tf_privacy.sh
rename to asl_core/kernels/tf_privacy.sh
diff --git a/notebooks/building_production_ml_systems/assets/taxi_streaming_data.png b/asl_core/notebooks/building_production_ml_systems/assets/taxi_streaming_data.png
similarity index 100%
rename from notebooks/building_production_ml_systems/assets/taxi_streaming_data.png
rename to asl_core/notebooks/building_production_ml_systems/assets/taxi_streaming_data.png
diff --git a/notebooks/building_production_ml_systems/data/taxi-traffic-test.csv b/asl_core/notebooks/building_production_ml_systems/data/taxi-traffic-test.csv
similarity index 100%
rename from notebooks/building_production_ml_systems/data/taxi-traffic-test.csv
rename to asl_core/notebooks/building_production_ml_systems/data/taxi-traffic-test.csv
diff --git a/notebooks/building_production_ml_systems/data/taxi-traffic-train.csv b/asl_core/notebooks/building_production_ml_systems/data/taxi-traffic-train.csv
similarity index 100%
rename from notebooks/building_production_ml_systems/data/taxi-traffic-train.csv
rename to asl_core/notebooks/building_production_ml_systems/data/taxi-traffic-train.csv
diff --git a/notebooks/building_production_ml_systems/data/taxi-traffic-valid.csv b/asl_core/notebooks/building_production_ml_systems/data/taxi-traffic-valid.csv
similarity index 100%
rename from notebooks/building_production_ml_systems/data/taxi-traffic-valid.csv
rename to asl_core/notebooks/building_production_ml_systems/data/taxi-traffic-valid.csv
diff --git a/notebooks/building_production_ml_systems/labs/1_training_at_scale_vertex.ipynb b/asl_core/notebooks/building_production_ml_systems/labs/1_training_at_scale_vertex.ipynb
similarity index 99%
rename from notebooks/building_production_ml_systems/labs/1_training_at_scale_vertex.ipynb
rename to asl_core/notebooks/building_production_ml_systems/labs/1_training_at_scale_vertex.ipynb
index 3688adb80..4e58a72be 100644
--- a/notebooks/building_production_ml_systems/labs/1_training_at_scale_vertex.ipynb
+++ b/asl_core/notebooks/building_production_ml_systems/labs/1_training_at_scale_vertex.ipynb
@@ -46,6 +46,7 @@
"%env PATH=/home/jupyter/.local/bin:{PATH}\n",
"\n",
"%load_ext tensorboard\n",
+ "%load_ext google.cloud.bigquery\n",
"warnings.filterwarnings(\"ignore\")\n",
"os.environ[\"TF_CPP_MIN_LOG_LEVEL\"] = \"2\""
]
@@ -1240,9 +1241,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/building_production_ml_systems/labs/2_hyperparameter_tuning_vertex.ipynb b/asl_core/notebooks/building_production_ml_systems/labs/2_hyperparameter_tuning_vertex.ipynb
similarity index 99%
rename from notebooks/building_production_ml_systems/labs/2_hyperparameter_tuning_vertex.ipynb
rename to asl_core/notebooks/building_production_ml_systems/labs/2_hyperparameter_tuning_vertex.ipynb
index 4f8a56a73..ef3deb41d 100644
--- a/notebooks/building_production_ml_systems/labs/2_hyperparameter_tuning_vertex.ipynb
+++ b/asl_core/notebooks/building_production_ml_systems/labs/2_hyperparameter_tuning_vertex.ipynb
@@ -884,9 +884,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/building_production_ml_systems/labs/taxicab_traffic/iot_devices.py b/asl_core/notebooks/building_production_ml_systems/labs/taxicab_traffic/iot_devices.py
similarity index 100%
rename from notebooks/building_production_ml_systems/labs/taxicab_traffic/iot_devices.py
rename to asl_core/notebooks/building_production_ml_systems/labs/taxicab_traffic/iot_devices.py
diff --git a/notebooks/building_production_ml_systems/labs/taxicab_traffic/streaming_count.py b/asl_core/notebooks/building_production_ml_systems/labs/taxicab_traffic/streaming_count.py
similarity index 100%
rename from notebooks/building_production_ml_systems/labs/taxicab_traffic/streaming_count.py
rename to asl_core/notebooks/building_production_ml_systems/labs/taxicab_traffic/streaming_count.py
diff --git a/notebooks/building_production_ml_systems/labs/taxifare/Dockerfile b/asl_core/notebooks/building_production_ml_systems/labs/taxifare/Dockerfile
similarity index 100%
rename from notebooks/building_production_ml_systems/labs/taxifare/Dockerfile
rename to asl_core/notebooks/building_production_ml_systems/labs/taxifare/Dockerfile
diff --git a/notebooks/building_production_ml_systems/labs/taxifare/tests/data/taxi-train.csv b/asl_core/notebooks/building_production_ml_systems/labs/taxifare/tests/data/taxi-train.csv
similarity index 100%
rename from notebooks/building_production_ml_systems/labs/taxifare/tests/data/taxi-train.csv
rename to asl_core/notebooks/building_production_ml_systems/labs/taxifare/tests/data/taxi-train.csv
diff --git a/notebooks/building_production_ml_systems/labs/taxifare/tests/data/taxi-valid.csv b/asl_core/notebooks/building_production_ml_systems/labs/taxifare/tests/data/taxi-valid.csv
similarity index 100%
rename from notebooks/building_production_ml_systems/labs/taxifare/tests/data/taxi-valid.csv
rename to asl_core/notebooks/building_production_ml_systems/labs/taxifare/tests/data/taxi-valid.csv
diff --git a/notebooks/building_production_ml_systems/labs/taxifare/trainer/__init__.py b/asl_core/notebooks/building_production_ml_systems/labs/taxifare/trainer/__init__.py
similarity index 100%
rename from notebooks/building_production_ml_systems/labs/taxifare/trainer/__init__.py
rename to asl_core/notebooks/building_production_ml_systems/labs/taxifare/trainer/__init__.py
diff --git a/notebooks/building_production_ml_systems/labs/taxifare/trainer/model.py b/asl_core/notebooks/building_production_ml_systems/labs/taxifare/trainer/model.py
similarity index 100%
rename from notebooks/building_production_ml_systems/labs/taxifare/trainer/model.py
rename to asl_core/notebooks/building_production_ml_systems/labs/taxifare/trainer/model.py
diff --git a/notebooks/building_production_ml_systems/labs/taxifare/trainer/task.py b/asl_core/notebooks/building_production_ml_systems/labs/taxifare/trainer/task.py
similarity index 100%
rename from notebooks/building_production_ml_systems/labs/taxifare/trainer/task.py
rename to asl_core/notebooks/building_production_ml_systems/labs/taxifare/trainer/task.py
diff --git a/notebooks/building_production_ml_systems/solutions/1_training_at_scale_vertex.ipynb b/asl_core/notebooks/building_production_ml_systems/solutions/1_training_at_scale_vertex.ipynb
similarity index 99%
rename from notebooks/building_production_ml_systems/solutions/1_training_at_scale_vertex.ipynb
rename to asl_core/notebooks/building_production_ml_systems/solutions/1_training_at_scale_vertex.ipynb
index 4db4cf9e6..0ba2e0a55 100644
--- a/notebooks/building_production_ml_systems/solutions/1_training_at_scale_vertex.ipynb
+++ b/asl_core/notebooks/building_production_ml_systems/solutions/1_training_at_scale_vertex.ipynb
@@ -48,6 +48,7 @@
"%env PATH=/home/jupyter/.local/bin:{PATH}\n",
"\n",
"%load_ext tensorboard\n",
+ "%load_ext google.cloud.bigquery\n",
"warnings.filterwarnings(\"ignore\")\n",
"os.environ[\"TF_CPP_MIN_LOG_LEVEL\"] = \"2\""
]
@@ -1244,9 +1245,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/building_production_ml_systems/solutions/2_hyperparameter_tuning_vertex.ipynb b/asl_core/notebooks/building_production_ml_systems/solutions/2_hyperparameter_tuning_vertex.ipynb
similarity index 99%
rename from notebooks/building_production_ml_systems/solutions/2_hyperparameter_tuning_vertex.ipynb
rename to asl_core/notebooks/building_production_ml_systems/solutions/2_hyperparameter_tuning_vertex.ipynb
index 137985710..1d6c6ced4 100644
--- a/notebooks/building_production_ml_systems/solutions/2_hyperparameter_tuning_vertex.ipynb
+++ b/asl_core/notebooks/building_production_ml_systems/solutions/2_hyperparameter_tuning_vertex.ipynb
@@ -873,9 +873,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/building_production_ml_systems/solutions/taxicab_traffic/iot_devices.py b/asl_core/notebooks/building_production_ml_systems/solutions/taxicab_traffic/iot_devices.py
similarity index 100%
rename from notebooks/building_production_ml_systems/solutions/taxicab_traffic/iot_devices.py
rename to asl_core/notebooks/building_production_ml_systems/solutions/taxicab_traffic/iot_devices.py
diff --git a/notebooks/building_production_ml_systems/solutions/taxicab_traffic/streaming_count.py b/asl_core/notebooks/building_production_ml_systems/solutions/taxicab_traffic/streaming_count.py
similarity index 100%
rename from notebooks/building_production_ml_systems/solutions/taxicab_traffic/streaming_count.py
rename to asl_core/notebooks/building_production_ml_systems/solutions/taxicab_traffic/streaming_count.py
diff --git a/notebooks/building_production_ml_systems/solutions/taxifare/Dockerfile b/asl_core/notebooks/building_production_ml_systems/solutions/taxifare/Dockerfile
similarity index 100%
rename from notebooks/building_production_ml_systems/solutions/taxifare/Dockerfile
rename to asl_core/notebooks/building_production_ml_systems/solutions/taxifare/Dockerfile
diff --git a/notebooks/building_production_ml_systems/solutions/taxifare/Makefile b/asl_core/notebooks/building_production_ml_systems/solutions/taxifare/Makefile
similarity index 100%
rename from notebooks/building_production_ml_systems/solutions/taxifare/Makefile
rename to asl_core/notebooks/building_production_ml_systems/solutions/taxifare/Makefile
diff --git a/notebooks/building_production_ml_systems/solutions/taxifare/setup.py b/asl_core/notebooks/building_production_ml_systems/solutions/taxifare/setup.py
similarity index 100%
rename from notebooks/building_production_ml_systems/solutions/taxifare/setup.py
rename to asl_core/notebooks/building_production_ml_systems/solutions/taxifare/setup.py
diff --git a/notebooks/building_production_ml_systems/solutions/taxifare/trainer/__init__.py b/asl_core/notebooks/building_production_ml_systems/solutions/taxifare/trainer/__init__.py
similarity index 100%
rename from notebooks/building_production_ml_systems/solutions/taxifare/trainer/__init__.py
rename to asl_core/notebooks/building_production_ml_systems/solutions/taxifare/trainer/__init__.py
diff --git a/notebooks/building_production_ml_systems/solutions/taxifare/trainer/model.py b/asl_core/notebooks/building_production_ml_systems/solutions/taxifare/trainer/model.py
similarity index 100%
rename from notebooks/building_production_ml_systems/solutions/taxifare/trainer/model.py
rename to asl_core/notebooks/building_production_ml_systems/solutions/taxifare/trainer/model.py
diff --git a/notebooks/building_production_ml_systems/solutions/taxifare/trainer/task.py b/asl_core/notebooks/building_production_ml_systems/solutions/taxifare/trainer/task.py
similarity index 100%
rename from notebooks/building_production_ml_systems/solutions/taxifare/trainer/task.py
rename to asl_core/notebooks/building_production_ml_systems/solutions/taxifare/trainer/task.py
diff --git a/notebooks/end-to-end-structured/assets/10_automl_tables_analyze.png b/asl_core/notebooks/end-to-end-structured/assets/10_automl_tables_analyze.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/10_automl_tables_analyze.png
rename to asl_core/notebooks/end-to-end-structured/assets/10_automl_tables_analyze.png
diff --git a/notebooks/end-to-end-structured/assets/11_automl_tables_train.png b/asl_core/notebooks/end-to-end-structured/assets/11_automl_tables_train.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/11_automl_tables_train.png
rename to asl_core/notebooks/end-to-end-structured/assets/11_automl_tables_train.png
diff --git a/notebooks/end-to-end-structured/assets/12_automl_tables_feature_selection.png b/asl_core/notebooks/end-to-end-structured/assets/12_automl_tables_feature_selection.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/12_automl_tables_feature_selection.png
rename to asl_core/notebooks/end-to-end-structured/assets/12_automl_tables_feature_selection.png
diff --git a/notebooks/end-to-end-structured/assets/13_automl_tables_training.png b/asl_core/notebooks/end-to-end-structured/assets/13_automl_tables_training.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/13_automl_tables_training.png
rename to asl_core/notebooks/end-to-end-structured/assets/13_automl_tables_training.png
diff --git a/notebooks/end-to-end-structured/assets/14_automl_tables_evaluate.png b/asl_core/notebooks/end-to-end-structured/assets/14_automl_tables_evaluate.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/14_automl_tables_evaluate.png
rename to asl_core/notebooks/end-to-end-structured/assets/14_automl_tables_evaluate.png
diff --git a/notebooks/end-to-end-structured/assets/15_automl_tables_deploy.png b/asl_core/notebooks/end-to-end-structured/assets/15_automl_tables_deploy.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/15_automl_tables_deploy.png
rename to asl_core/notebooks/end-to-end-structured/assets/15_automl_tables_deploy.png
diff --git a/notebooks/end-to-end-structured/assets/16_automl_tables_deploy_confirmation.png b/asl_core/notebooks/end-to-end-structured/assets/16_automl_tables_deploy_confirmation.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/16_automl_tables_deploy_confirmation.png
rename to asl_core/notebooks/end-to-end-structured/assets/16_automl_tables_deploy_confirmation.png
diff --git a/notebooks/end-to-end-structured/assets/17_automl_tables_batch_predict.png b/asl_core/notebooks/end-to-end-structured/assets/17_automl_tables_batch_predict.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/17_automl_tables_batch_predict.png
rename to asl_core/notebooks/end-to-end-structured/assets/17_automl_tables_batch_predict.png
diff --git a/notebooks/end-to-end-structured/assets/18_automl_tables_batch_predict_results.png b/asl_core/notebooks/end-to-end-structured/assets/18_automl_tables_batch_predict_results.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/18_automl_tables_batch_predict_results.png
rename to asl_core/notebooks/end-to-end-structured/assets/18_automl_tables_batch_predict_results.png
diff --git a/notebooks/end-to-end-structured/assets/19_automl_tables_batch_predict_dataset.png b/asl_core/notebooks/end-to-end-structured/assets/19_automl_tables_batch_predict_dataset.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/19_automl_tables_batch_predict_dataset.png
rename to asl_core/notebooks/end-to-end-structured/assets/19_automl_tables_batch_predict_dataset.png
diff --git a/notebooks/end-to-end-structured/assets/1_automl_tables_hamburger_dropdown.png b/asl_core/notebooks/end-to-end-structured/assets/1_automl_tables_hamburger_dropdown.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/1_automl_tables_hamburger_dropdown.png
rename to asl_core/notebooks/end-to-end-structured/assets/1_automl_tables_hamburger_dropdown.png
diff --git a/notebooks/end-to-end-structured/assets/20_automl_tables_batch_predict_prediction_table.png b/asl_core/notebooks/end-to-end-structured/assets/20_automl_tables_batch_predict_prediction_table.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/20_automl_tables_batch_predict_prediction_table.png
rename to asl_core/notebooks/end-to-end-structured/assets/20_automl_tables_batch_predict_prediction_table.png
diff --git a/notebooks/end-to-end-structured/assets/21_automl_tables_batch_predict_errors_table_schema.png b/asl_core/notebooks/end-to-end-structured/assets/21_automl_tables_batch_predict_errors_table_schema.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/21_automl_tables_batch_predict_errors_table_schema.png
rename to asl_core/notebooks/end-to-end-structured/assets/21_automl_tables_batch_predict_errors_table_schema.png
diff --git a/notebooks/end-to-end-structured/assets/22_automl_tables_before_online_predict.png b/asl_core/notebooks/end-to-end-structured/assets/22_automl_tables_before_online_predict.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/22_automl_tables_before_online_predict.png
rename to asl_core/notebooks/end-to-end-structured/assets/22_automl_tables_before_online_predict.png
diff --git a/notebooks/end-to-end-structured/assets/23_automl_tables_after_online_predict.png b/asl_core/notebooks/end-to-end-structured/assets/23_automl_tables_after_online_predict.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/23_automl_tables_after_online_predict.png
rename to asl_core/notebooks/end-to-end-structured/assets/23_automl_tables_after_online_predict.png
diff --git a/notebooks/end-to-end-structured/assets/2_automl_tables_enable_api.png b/asl_core/notebooks/end-to-end-structured/assets/2_automl_tables_enable_api.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/2_automl_tables_enable_api.png
rename to asl_core/notebooks/end-to-end-structured/assets/2_automl_tables_enable_api.png
diff --git a/notebooks/end-to-end-structured/assets/3_automl_tables_get_started.png b/asl_core/notebooks/end-to-end-structured/assets/3_automl_tables_get_started.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/3_automl_tables_get_started.png
rename to asl_core/notebooks/end-to-end-structured/assets/3_automl_tables_get_started.png
diff --git a/notebooks/end-to-end-structured/assets/4_automl_tables_click_create_dataset.png b/asl_core/notebooks/end-to-end-structured/assets/4_automl_tables_click_create_dataset.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/4_automl_tables_click_create_dataset.png
rename to asl_core/notebooks/end-to-end-structured/assets/4_automl_tables_click_create_dataset.png
diff --git a/notebooks/end-to-end-structured/assets/5_automl_tables_create_new_dataset.png b/asl_core/notebooks/end-to-end-structured/assets/5_automl_tables_create_new_dataset.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/5_automl_tables_create_new_dataset.png
rename to asl_core/notebooks/end-to-end-structured/assets/5_automl_tables_create_new_dataset.png
diff --git a/notebooks/end-to-end-structured/assets/6_automl_tables_import_data.png b/asl_core/notebooks/end-to-end-structured/assets/6_automl_tables_import_data.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/6_automl_tables_import_data.png
rename to asl_core/notebooks/end-to-end-structured/assets/6_automl_tables_import_data.png
diff --git a/notebooks/end-to-end-structured/assets/7_automl_tables_importing_data.png b/asl_core/notebooks/end-to-end-structured/assets/7_automl_tables_importing_data.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/7_automl_tables_importing_data.png
rename to asl_core/notebooks/end-to-end-structured/assets/7_automl_tables_importing_data.png
diff --git a/notebooks/end-to-end-structured/assets/8_automl_tables_schema_target_column.png b/asl_core/notebooks/end-to-end-structured/assets/8_automl_tables_schema_target_column.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/8_automl_tables_schema_target_column.png
rename to asl_core/notebooks/end-to-end-structured/assets/8_automl_tables_schema_target_column.png
diff --git a/notebooks/end-to-end-structured/assets/9_automl_tables_schema_continue.png b/asl_core/notebooks/end-to-end-structured/assets/9_automl_tables_schema_continue.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/9_automl_tables_schema_continue.png
rename to asl_core/notebooks/end-to-end-structured/assets/9_automl_tables_schema_continue.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/01_vertexai_hamburger_dropdown.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/01_vertexai_hamburger_dropdown.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/01_vertexai_hamburger_dropdown.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/01_vertexai_hamburger_dropdown.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/02_vertexai_enable_api.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/02_vertexai_enable_api.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/02_vertexai_enable_api.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/02_vertexai_enable_api.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/03_datasets.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/03_datasets.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/03_datasets.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/03_datasets.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/04_create_dataset.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/04_create_dataset.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/04_create_dataset.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/04_create_dataset.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/05_dataset_name.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/05_dataset_name.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/05_dataset_name.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/05_dataset_name.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/06_select_bigquery_table.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/06_select_bigquery_table.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/06_select_bigquery_table.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/06_select_bigquery_table.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/07_selected_bigquery_table.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/07_selected_bigquery_table.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/07_selected_bigquery_table.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/07_selected_bigquery_table.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/08_generate_statistics.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/08_generate_statistics.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/08_generate_statistics.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/08_generate_statistics.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/09_regression.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/09_regression.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/09_regression.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/09_regression.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/10_target_column.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/10_target_column.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/10_target_column.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/10_target_column.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/11_feature_selection.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/11_feature_selection.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/11_feature_selection.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/11_feature_selection.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/12_budget.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/12_budget.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/12_budget.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/12_budget.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/13_automl_tables_training.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/13_automl_tables_training.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/13_automl_tables_training.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/13_automl_tables_training.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/14_automl_tables_evaluate.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/14_automl_tables_evaluate.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/14_automl_tables_evaluate.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/14_automl_tables_evaluate.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/15_automl_tables_batch_predict.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/15_automl_tables_batch_predict.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/15_automl_tables_batch_predict.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/15_automl_tables_batch_predict.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/16_automl_tables_deploy.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/16_automl_tables_deploy.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/16_automl_tables_deploy.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/16_automl_tables_deploy.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/17_deploy_options.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/17_deploy_options.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/17_deploy_options.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/17_deploy_options.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/18_automl_tables_batch_predict_results.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/18_automl_tables_batch_predict_results.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/18_automl_tables_batch_predict_results.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/18_automl_tables_batch_predict_results.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/19_automl_tables_batch_predict_dataset.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/19_automl_tables_batch_predict_dataset.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/19_automl_tables_batch_predict_dataset.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/19_automl_tables_batch_predict_dataset.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/20_automl_tables_batch_predict_prediction_table.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/20_automl_tables_batch_predict_prediction_table.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/20_automl_tables_batch_predict_prediction_table.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/20_automl_tables_batch_predict_prediction_table.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/21_automl_tables_batch_predict_errors_table_schema.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/21_automl_tables_batch_predict_errors_table_schema.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/21_automl_tables_batch_predict_errors_table_schema.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/21_automl_tables_batch_predict_errors_table_schema.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/22_automl_tables_before_online_predict.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/22_automl_tables_before_online_predict.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/22_automl_tables_before_online_predict.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/22_automl_tables_before_online_predict.png
diff --git a/notebooks/end-to-end-structured/assets/vertex/23_automl_tables_after_online_predict.png b/asl_core/notebooks/end-to-end-structured/assets/vertex/23_automl_tables_after_online_predict.png
similarity index 100%
rename from notebooks/end-to-end-structured/assets/vertex/23_automl_tables_after_online_predict.png
rename to asl_core/notebooks/end-to-end-structured/assets/vertex/23_automl_tables_after_online_predict.png
diff --git a/notebooks/end-to-end-structured/labs/1a_explore_data_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/1a_explore_data_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/labs/1a_explore_data_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/1a_explore_data_babyweight.ipynb
index e8e65344f..4b2d24333 100644
--- a/notebooks/end-to-end-structured/labs/1a_explore_data_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/1a_explore_data_babyweight.ipynb
@@ -422,9 +422,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/1b_prepare_data_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/1b_prepare_data_babyweight.ipynb
similarity index 98%
rename from notebooks/end-to-end-structured/labs/1b_prepare_data_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/1b_prepare_data_babyweight.ipynb
index 17a62ff0b..d93d6243e 100644
--- a/notebooks/end-to-end-structured/labs/1b_prepare_data_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/1b_prepare_data_babyweight.ipynb
@@ -51,7 +51,8 @@
"source": [
"import os\n",
"\n",
- "from google.cloud import bigquery"
+ "from google.cloud import bigquery\n",
+ "%load_ext google.cloud.bigquery"
]
},
{
@@ -67,7 +68,7 @@
"metadata": {},
"outputs": [],
"source": [
- "PROJECT = !gcloud config list --format 'value(core.project)'\n",
+ "PROJECT = !gcloud config get-value project\n",
"PROJECT = PROJECT[0]\n",
"BUCKET = PROJECT\n",
"REGION = \"us-central1\"\n",
@@ -471,9 +472,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/2_automl_tables_babyweight_vertex.ipynb b/asl_core/notebooks/end-to-end-structured/labs/2_automl_tables_babyweight_vertex.ipynb
similarity index 98%
rename from notebooks/end-to-end-structured/solutions/2_automl_tables_babyweight_vertex.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/2_automl_tables_babyweight_vertex.ipynb
index 3fdc43e7a..5e4f90983 100644
--- a/notebooks/end-to-end-structured/solutions/2_automl_tables_babyweight_vertex.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/2_automl_tables_babyweight_vertex.ipynb
@@ -38,6 +38,15 @@
"Run the following cells to verify that we previously created the dataset and data tables. If not, go back to lab [1b_prepare_data_babyweight](../solutions/1b_prepare_data_babyweight.ipynb) to create them."
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext google.cloud.bigquery"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -497,9 +506,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/3a_bqml_baseline_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/3a_bqml_baseline_babyweight.ipynb
similarity index 97%
rename from notebooks/end-to-end-structured/labs/3a_bqml_baseline_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/3a_bqml_baseline_babyweight.ipynb
index 0bf48f5bc..3f1c410ae 100644
--- a/notebooks/end-to-end-structured/labs/3a_bqml_baseline_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/3a_bqml_baseline_babyweight.ipynb
@@ -36,6 +36,15 @@
"Run the following cells to verify that we previously created the dataset and data tables. If not, go back to lab [1b_prepare_data_babyweight](../solutions/1b_prepare_data_babyweight.ipynb) to create them.\n"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext google.cloud.bigquery"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -273,9 +282,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/3b_bqml_linear_transform_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/3b_bqml_linear_transform_babyweight.ipynb
similarity index 98%
rename from notebooks/end-to-end-structured/labs/3b_bqml_linear_transform_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/3b_bqml_linear_transform_babyweight.ipynb
index 31ddb5c2c..faae75b60 100644
--- a/notebooks/end-to-end-structured/labs/3b_bqml_linear_transform_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/3b_bqml_linear_transform_babyweight.ipynb
@@ -33,6 +33,15 @@
"Run the following cells to verify that we previously created the dataset and data tables. If not, go back to lab [1b_prepare_data_babyweight](../solutions/1b_prepare_data_babyweight.ipynb) to create them."
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext google.cloud.bigquery"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -449,9 +458,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/3c_bqml_dnn_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/3c_bqml_dnn_babyweight.ipynb
similarity index 98%
rename from notebooks/end-to-end-structured/labs/3c_bqml_dnn_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/3c_bqml_dnn_babyweight.ipynb
index 37179e00a..a81686598 100644
--- a/notebooks/end-to-end-structured/labs/3c_bqml_dnn_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/3c_bqml_dnn_babyweight.ipynb
@@ -36,6 +36,15 @@
"Run the following cells to verify that we have previously created the dataset and data tables. If not, go back to lab [1b_prepare_data_babyweight](../solutions/1b_prepare_data_babyweight.ipynb) to create them."
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext google.cloud.bigquery"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -421,9 +430,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/4a_sample_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/4a_sample_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/labs/4a_sample_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/4a_sample_babyweight.ipynb
index a43cb9624..02b98b1d7 100644
--- a/notebooks/end-to-end-structured/labs/4a_sample_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/4a_sample_babyweight.ipynb
@@ -65,7 +65,7 @@
"metadata": {},
"outputs": [],
"source": [
- "PROJECT = !gcloud config list --format 'value(core.project)'\n",
+ "PROJECT = !gcloud config get-value project\n",
"PROJECT = PROJECT[0]\n",
"BUCKET = PROJECT\n",
"REGION = \"us-central1\"\n",
@@ -810,9 +810,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m137"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/4b_keras_dnn_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/4b_keras_dnn_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/labs/4b_keras_dnn_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/4b_keras_dnn_babyweight.ipynb
index f70fee3c9..d7e0dbb88 100644
--- a/notebooks/end-to-end-structured/labs/4b_keras_dnn_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/4b_keras_dnn_babyweight.ipynb
@@ -549,9 +549,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m137"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/4c_keras_wide_and_deep_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/4c_keras_wide_and_deep_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/labs/4c_keras_wide_and_deep_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/4c_keras_wide_and_deep_babyweight.ipynb
index facd6e9e1..972505ece 100644
--- a/notebooks/end-to-end-structured/labs/4c_keras_wide_and_deep_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/4c_keras_wide_and_deep_babyweight.ipynb
@@ -579,9 +579,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m137"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/5a_train_keras_vertex_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/5a_train_keras_vertex_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/labs/5a_train_keras_vertex_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/5a_train_keras_vertex_babyweight.ipynb
index 8ea399b1a..e8d5f5b40 100644
--- a/notebooks/end-to-end-structured/labs/5a_train_keras_vertex_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/5a_train_keras_vertex_babyweight.ipynb
@@ -69,7 +69,7 @@
"metadata": {},
"outputs": [],
"source": [
- "PROJECT = !gcloud config list --format 'value(core.project)'\n",
+ "PROJECT = !gcloud config get-value project\n",
"PROJECT = PROJECT[0]\n",
"BUCKET = PROJECT\n",
"REGION = \"us-central1\"\n",
@@ -693,9 +693,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/5b_deploy_keras_vertex_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/labs/5b_deploy_keras_vertex_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/labs/5b_deploy_keras_vertex_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/labs/5b_deploy_keras_vertex_babyweight.ipynb
index e8bff25e3..0fb2ddcf6 100644
--- a/notebooks/end-to-end-structured/labs/5b_deploy_keras_vertex_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/labs/5b_deploy_keras_vertex_babyweight.ipynb
@@ -77,7 +77,7 @@
"metadata": {},
"outputs": [],
"source": [
- "PROJECT = !gcloud config list --format 'value(core.project)'\n",
+ "PROJECT = !gcloud config get-value project\n",
"PROJECT = PROJECT[0]\n",
"BUCKET = PROJECT # defaults to PROJECT\n",
"REGION = \"us-central1\" # Replace with your REGION"
@@ -438,9 +438,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/1a_explore_data_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/1a_explore_data_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/solutions/1a_explore_data_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/1a_explore_data_babyweight.ipynb
index 2d5705c0a..85231ee32 100644
--- a/notebooks/end-to-end-structured/solutions/1a_explore_data_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/1a_explore_data_babyweight.ipynb
@@ -395,9 +395,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/1b_prepare_data_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/1b_prepare_data_babyweight.ipynb
similarity index 98%
rename from notebooks/end-to-end-structured/solutions/1b_prepare_data_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/1b_prepare_data_babyweight.ipynb
index d1682fbbb..991bcc703 100644
--- a/notebooks/end-to-end-structured/solutions/1b_prepare_data_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/1b_prepare_data_babyweight.ipynb
@@ -51,7 +51,8 @@
"source": [
"import os\n",
"\n",
- "from google.cloud import bigquery"
+ "from google.cloud import bigquery\n",
+ "%load_ext google.cloud.bigquery"
]
},
{
@@ -67,7 +68,7 @@
"metadata": {},
"outputs": [],
"source": [
- "PROJECT = !gcloud config list --format 'value(core.project)'\n",
+ "PROJECT = !gcloud config get-value project\n",
"PROJECT = PROJECT[0]\n",
"BUCKET = PROJECT\n",
"REGION = \"us-central1\"\n",
@@ -486,9 +487,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/labs/2_automl_tables_babyweight_vertex.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/2_automl_tables_babyweight_vertex.ipynb
similarity index 98%
rename from notebooks/end-to-end-structured/labs/2_automl_tables_babyweight_vertex.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/2_automl_tables_babyweight_vertex.ipynb
index 3fdc43e7a..5e4f90983 100644
--- a/notebooks/end-to-end-structured/labs/2_automl_tables_babyweight_vertex.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/2_automl_tables_babyweight_vertex.ipynb
@@ -38,6 +38,15 @@
"Run the following cells to verify that we previously created the dataset and data tables. If not, go back to lab [1b_prepare_data_babyweight](../solutions/1b_prepare_data_babyweight.ipynb) to create them."
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext google.cloud.bigquery"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
@@ -497,9 +506,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/3a_bqml_baseline_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/3a_bqml_baseline_babyweight.ipynb
similarity index 98%
rename from notebooks/end-to-end-structured/solutions/3a_bqml_baseline_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/3a_bqml_baseline_babyweight.ipynb
index e86ee6764..80a378878 100644
--- a/notebooks/end-to-end-structured/solutions/3a_bqml_baseline_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/3a_bqml_baseline_babyweight.ipynb
@@ -34,6 +34,15 @@
"Run the following cells to verify that we previously created the dataset and data tables. If not, go back to lab [1b_prepare_data_babyweight](../solutions/1b_prepare_data_babyweight.ipynb) to create them."
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext google.cloud.bigquery"
+ ]
+ },
{
"cell_type": "code",
"execution_count": 2,
@@ -560,9 +569,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/3b_bqml_linear_transform_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/3b_bqml_linear_transform_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/solutions/3b_bqml_linear_transform_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/3b_bqml_linear_transform_babyweight.ipynb
index d91bb1305..1a870ee7b 100644
--- a/notebooks/end-to-end-structured/solutions/3b_bqml_linear_transform_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/3b_bqml_linear_transform_babyweight.ipynb
@@ -31,6 +31,15 @@
"Run the following cells to verify that we previously created the dataset and data tables. If not, go back to lab [1b_prepare_data_babyweight](../solutions/1b_prepare_data_babyweight.ipynb) to create them."
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext google.cloud.bigquery"
+ ]
+ },
{
"cell_type": "code",
"execution_count": 2,
@@ -1124,9 +1133,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/3c_bqml_dnn_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/3c_bqml_dnn_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/solutions/3c_bqml_dnn_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/3c_bqml_dnn_babyweight.ipynb
index 878b4b2d5..2ab4aa497 100644
--- a/notebooks/end-to-end-structured/solutions/3c_bqml_dnn_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/3c_bqml_dnn_babyweight.ipynb
@@ -34,6 +34,15 @@
"Run the following cells to verify that we have previously created the dataset and data tables. If not, go back to lab [1b_prepare_data_babyweight](../solutions/1b_prepare_data_babyweight.ipynb) to create them."
]
},
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "%load_ext google.cloud.bigquery"
+ ]
+ },
{
"cell_type": "code",
"execution_count": 2,
@@ -1086,9 +1095,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/4a_sample_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/4a_sample_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/solutions/4a_sample_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/4a_sample_babyweight.ipynb
index dcee13a58..e14e9fe6c 100644
--- a/notebooks/end-to-end-structured/solutions/4a_sample_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/4a_sample_babyweight.ipynb
@@ -61,7 +61,7 @@
"metadata": {},
"outputs": [],
"source": [
- "PROJECT = !gcloud config list --format 'value(core.project)'\n",
+ "PROJECT = !gcloud config get-value project\n",
"PROJECT = PROJECT[0]\n",
"BUCKET = PROJECT\n",
"REGION = \"us-central1\"\n",
@@ -794,9 +794,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m137"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/4b_keras_dnn_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/4b_keras_dnn_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/solutions/4b_keras_dnn_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/4b_keras_dnn_babyweight.ipynb
index 7571e88c0..0342ebdf1 100644
--- a/notebooks/end-to-end-structured/solutions/4b_keras_dnn_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/4b_keras_dnn_babyweight.ipynb
@@ -578,9 +578,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m137"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/4c_keras_wide_and_deep_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/4c_keras_wide_and_deep_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/solutions/4c_keras_wide_and_deep_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/4c_keras_wide_and_deep_babyweight.ipynb
index 607d26e59..cde5f2cb5 100644
--- a/notebooks/end-to-end-structured/solutions/4c_keras_wide_and_deep_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/4c_keras_wide_and_deep_babyweight.ipynb
@@ -605,9 +605,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m137"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/5a_train_keras_vertex_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/5a_train_keras_vertex_babyweight.ipynb
similarity index 99%
rename from notebooks/end-to-end-structured/solutions/5a_train_keras_vertex_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/5a_train_keras_vertex_babyweight.ipynb
index 486c9cd22..cc0e57eb9 100644
--- a/notebooks/end-to-end-structured/solutions/5a_train_keras_vertex_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/5a_train_keras_vertex_babyweight.ipynb
@@ -71,7 +71,7 @@
"metadata": {},
"outputs": [],
"source": [
- "PROJECT = !gcloud config list --format 'value(core.project)'\n",
+ "PROJECT = !gcloud config get-value project\n",
"PROJECT = PROJECT[0]\n",
"BUCKET = PROJECT\n",
"REGION = \"us-central1\"\n",
@@ -874,9 +874,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/5b_deploy_keras_vertex_babyweight.ipynb b/asl_core/notebooks/end-to-end-structured/solutions/5b_deploy_keras_vertex_babyweight.ipynb
similarity index 98%
rename from notebooks/end-to-end-structured/solutions/5b_deploy_keras_vertex_babyweight.ipynb
rename to asl_core/notebooks/end-to-end-structured/solutions/5b_deploy_keras_vertex_babyweight.ipynb
index 8949186d8..2f5625a64 100644
--- a/notebooks/end-to-end-structured/solutions/5b_deploy_keras_vertex_babyweight.ipynb
+++ b/asl_core/notebooks/end-to-end-structured/solutions/5b_deploy_keras_vertex_babyweight.ipynb
@@ -77,7 +77,7 @@
"metadata": {},
"outputs": [],
"source": [
- "PROJECT = !gcloud config list --format 'value(core.project)'\n",
+ "PROJECT = !gcloud config get-value project\n",
"PROJECT = PROJECT[0]\n",
"BUCKET = PROJECT # defaults to PROJECT\n",
"REGION = \"us-central1\" # Replace with your REGION"
@@ -437,9 +437,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/end-to-end-structured/solutions/app/app.py b/asl_core/notebooks/end-to-end-structured/solutions/app/app.py
similarity index 100%
rename from notebooks/end-to-end-structured/solutions/app/app.py
rename to asl_core/notebooks/end-to-end-structured/solutions/app/app.py
diff --git a/notebooks/end-to-end-structured/solutions/app/launch.sh b/asl_core/notebooks/end-to-end-structured/solutions/app/launch.sh
similarity index 100%
rename from notebooks/end-to-end-structured/solutions/app/launch.sh
rename to asl_core/notebooks/end-to-end-structured/solutions/app/launch.sh
diff --git a/notebooks/end-to-end-structured/solutions/app/requirements.txt b/asl_core/notebooks/end-to-end-structured/solutions/app/requirements.txt
similarity index 100%
rename from notebooks/end-to-end-structured/solutions/app/requirements.txt
rename to asl_core/notebooks/end-to-end-structured/solutions/app/requirements.txt
diff --git a/notebooks/end-to-end-structured/solutions/app/templates/index.html b/asl_core/notebooks/end-to-end-structured/solutions/app/templates/index.html
similarity index 100%
rename from notebooks/end-to-end-structured/solutions/app/templates/index.html
rename to asl_core/notebooks/end-to-end-structured/solutions/app/templates/index.html
diff --git a/notebooks/end-to-end-structured/solutions/eval.csv b/asl_core/notebooks/end-to-end-structured/solutions/eval.csv
similarity index 100%
rename from notebooks/end-to-end-structured/solutions/eval.csv
rename to asl_core/notebooks/end-to-end-structured/solutions/eval.csv
diff --git a/notebooks/end-to-end-structured/solutions/test.csv b/asl_core/notebooks/end-to-end-structured/solutions/test.csv
similarity index 100%
rename from notebooks/end-to-end-structured/solutions/test.csv
rename to asl_core/notebooks/end-to-end-structured/solutions/test.csv
diff --git a/notebooks/end-to-end-structured/solutions/train.csv b/asl_core/notebooks/end-to-end-structured/solutions/train.csv
similarity index 100%
rename from notebooks/end-to-end-structured/solutions/train.csv
rename to asl_core/notebooks/end-to-end-structured/solutions/train.csv
diff --git a/notebooks/image_models/assets/diffusion_times.png b/asl_core/notebooks/image_models/assets/diffusion_times.png
similarity index 100%
rename from notebooks/image_models/assets/diffusion_times.png
rename to asl_core/notebooks/image_models/assets/diffusion_times.png
diff --git a/notebooks/image_models/assets/dreambooth_1.png b/asl_core/notebooks/image_models/assets/dreambooth_1.png
similarity index 100%
rename from notebooks/image_models/assets/dreambooth_1.png
rename to asl_core/notebooks/image_models/assets/dreambooth_1.png
diff --git a/notebooks/image_models/assets/dreambooth_2.png b/asl_core/notebooks/image_models/assets/dreambooth_2.png
similarity index 100%
rename from notebooks/image_models/assets/dreambooth_2.png
rename to asl_core/notebooks/image_models/assets/dreambooth_2.png
diff --git a/notebooks/image_models/assets/gan1.png b/asl_core/notebooks/image_models/assets/gan1.png
similarity index 100%
rename from notebooks/image_models/assets/gan1.png
rename to asl_core/notebooks/image_models/assets/gan1.png
diff --git a/notebooks/image_models/assets/gan2.png b/asl_core/notebooks/image_models/assets/gan2.png
similarity index 100%
rename from notebooks/image_models/assets/gan2.png
rename to asl_core/notebooks/image_models/assets/gan2.png
diff --git a/notebooks/image_models/assets/latent_diffusion.png b/asl_core/notebooks/image_models/assets/latent_diffusion.png
similarity index 100%
rename from notebooks/image_models/assets/latent_diffusion.png
rename to asl_core/notebooks/image_models/assets/latent_diffusion.png
diff --git a/notebooks/image_models/data/bumper.png b/asl_core/notebooks/image_models/data/bumper.png
similarity index 100%
rename from notebooks/image_models/data/bumper.png
rename to asl_core/notebooks/image_models/data/bumper.png
diff --git a/notebooks/image_models/data/engine_compartment.png b/asl_core/notebooks/image_models/data/engine_compartment.png
similarity index 100%
rename from notebooks/image_models/data/engine_compartment.png
rename to asl_core/notebooks/image_models/data/engine_compartment.png
diff --git a/notebooks/image_models/data/hood_bumper.png b/asl_core/notebooks/image_models/data/hood_bumper.png
similarity index 100%
rename from notebooks/image_models/data/hood_bumper.png
rename to asl_core/notebooks/image_models/data/hood_bumper.png
diff --git a/asl_core/notebooks/image_models/dataset_import_files/flowers.csv b/asl_core/notebooks/image_models/dataset_import_files/flowers.csv
new file mode 100644
index 000000000..2ea141f82
--- /dev/null
+++ b/asl_core/notebooks/image_models/dataset_import_files/flowers.csv
@@ -0,0 +1,3300 @@
+gs://asl-public/data/five_flowers/daisy/754296579_30a9ae018c_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/18089878729_907ed2c7cd_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/284497199_93a01f48f6.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3554992110_81d8c9b0bd_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4065883015_4bb6010cb7_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/7420699022_60fa574524_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4558536575_d43a611bd4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/7568630428_8cf0fc16ff_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/7064813645_f7f48fb527.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4933229095_f7e4218b28.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/14523675369_97c31d0b5b.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/21518663809_3d69f5b995_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/15782158700_3b9bf7d33e_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8713398906_28e59a225a_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/6770436217_281da51e49_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8754822932_948afc7cef.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/22873310415_3a5674ec10_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/5967283168_90dd4daf28_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/483444865_65962cea07_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2229906591_e953785d13.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2520369272_1dcdb5a892_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/6903831250_a2757fff82_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/22679076_bdb4c24401_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/7227973870_806d9d3e42_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/6016195304_75306bb79a.jpg,roses
+gs://asl-public/data/five_flowers/roses/18389368680_91c24a2087_z.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3991962484_085ba2da94.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4932736308_827012cff2.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4933230247_a0432f01da.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8050213579_48e1e7109f.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4500964841_b1142b50fb_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2838487505_6c3b48efa5_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/877083343_e3338c4125.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7808545612_546cfca610_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/19440660848_c789227129_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2540640433_dedd577263.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/129019877_8eea2978ca_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/18203367608_07a04e98a4_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/7132677385_bcbdcc6001.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/15202632426_d88efb321a_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/13542672763_20c3cb9272.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5020805619_6c710793f7.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20704967595_a9c9b8d431.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/9609569441_eeb8566e94.jpg,roses
+gs://asl-public/data/five_flowers/daisy/10712722853_5632165b04.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2479491210_98e41c4e7d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2481827798_6087d71134.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/18684594849_7dd3634f5e_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/13977181862_f8237b6b52.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/22686342422_c0b9e2f38e.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5088766459_f81f50e57d_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4872892690_52dc25b0b4.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2581171297_b0a249b92b_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2489638840_72ff3ee527_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3483575184_cb8d16a083_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/302782756_d35cb3e468.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2785458179_9130812eef_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2272006181_785f1be94f_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/8759177308_951790e00d_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/22183529245_ce13557515_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/9406573080_60eab9278e_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4813483281_f3707a71e7_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/6732261031_861a1026fa_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/3154932290_4bf43bd34f_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13953090784_0c7d7a904e.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5020805135_1219d7523d.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4336536446_e635f48f2e.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5206847130_ee4bf0e4de_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/17090993740_fcc8b60b81.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5626784099_b36dd3fb11_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/16656015339_2ccb7cd18d.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6606743797_c90c669757.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6606817351_10f6e43a09.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7166598930_18d8686ace_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/15922772266_1167a06620.jpg,roses
+gs://asl-public/data/five_flowers/daisy/15760153042_a2a90e9da5_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4868595281_1e58083785.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7166552648_28b6dce578.jpg,tulips
+gs://asl-public/data/five_flowers/roses/9309388105_12c0b8dd54_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/8125886145_ae99f91fd0.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5110105726_53eb7a93be_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/17295127995_62eff434fe_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4646886118_b5c5ceaf6d_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/924782410_94ed7913ca_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8915661673_9a1cdc3755_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/10386503264_e05387e1f7_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3990989735_59e2751151_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/8681746439_d6beeefbf9.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/6936380780_19c26c918a.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8979087213_28f572174c.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/6148728633_27afc47b0c_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13514131694_d91da4f4fc.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/62293290_2c463891ff_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/799952628_bf836677fa_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13529687904_3d60abb479_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/200288046_0032f322ff_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5684911529_88a7ae32ba_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/65347450_53658c63bd_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/274848710_5185cf33b1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4632235020_d00ce1e497.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/20409866779_ac473f55e0_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/15821571649_06c4b9a868_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/174131220_c853df1287.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/5434914569_e9b982fde0_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/2575272111_f04d79b9af_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5231868667_f0baa71feb_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8880158802_6e10a452c7_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/7865295712_bcc94d120c.jpg,roses
+gs://asl-public/data/five_flowers/tulips/4522153453_06437ca3af_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/17322195031_c2680809dc_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8267315764_129f2e1d77_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13176576813_50e77cc1d9.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/17080000869_a80e767f4a_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14955545254_324cd4ee75.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/9355706808_a9a723a8e8_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/7368435774_0045b9dc4e.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3491933306_43cfe2cfbe.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3074406590_91c697c805_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/3540595981_73f14d1227_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8376558865_19c5cd6fd6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/158988663_6fe055fcb4.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/7857605684_fc86440c23.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/3750771898_cfd50090ba_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3624546109_8eb98f0cdb.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/136999986_e410a68efb_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3475811950_0fb89845f5_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9216286162_6ceefdd1b4_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8628453641_6f87755815_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3356112863_75da8bca2c_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/176458518_f81d4bff8e.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/6239758929_50e5e5a476_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/12025038686_7f10811d4b_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4755705724_976621a1e7.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4085794721_7cd88e0a6c_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15274443248_76b9f3eb24.jpg,roses
+gs://asl-public/data/five_flowers/tulips/3186520634_30e1c67aa5_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4575963749_2418ff8768.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2476937534_21b285aa46_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14094114202_4c1d7f1116.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2039797043_d5b709f275_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/2627513944_b1361e60ec_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/154332674_453cea64f4.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4590703575_6371c0a186_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5994572653_ea98afa3af_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5628296138_9031791fab.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4209052442_7e754f617c_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/9404876600_04f6d37685.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4534460263_8e9611db3c_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/467770225_e3b41d4dd3_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/422094774_28acc69a8b_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4933230395_7930697335_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/459931395_24bf6531fe_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8969938579_4c2032dd96_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/10778387133_9141024b10.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/7187035716_5d0fb95c31_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/11746080_963537acdc.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/3446285408_4be9c0fded_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4746638094_f5336788a0_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/4713533500_fcc295de70_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/6606820461_952c450f90_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/14494590921_3bb1dc7b88_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/146023167_f905574d97_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5661431592_cea1108261_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/7342871880_c17fe0eb4f_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9484354480_07ff2ef0a6.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/1469549847_eac61a6802.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/17649230811_9bdbbacb8c.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7082608511_f4cf233f59_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/8853083579_dd1dfa3188.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8711277462_b43df5454b_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4933821940_38064522a8.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8791577794_7573712cb4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3950020811_dab89bebc0_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/1788484468_f73afa6c32_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/19710925313_31682fa22b_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/471298577_cc7558bcf1.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7197581386_8a51f1bb12_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/9444202147_405290415b_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4254850910_0610224342_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/18563353954_b761d97155_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/15241052342_466b38b68d.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/9019694597_2d3bbedb17.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/525780443_bba812c26a_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/20905163782_312e2c3bda_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/22679060358_561ec823ae_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/440714501_9f8268e1b0.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/9515186037_3be48fe68f.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/5139969631_743880e01d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2622697182_ea4aff29dd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8979062599_86cac547b8.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7177682195_c29265748d_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/5547758_eea9edfd54_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14164392167_650946a169_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/16702188449_3dacce90b2_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/1667199972_7ba7d999c1_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/6061175433_95fdb12f32_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2521827947_9d237779bb_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/18342918441_b1bb69a2fd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/40411019_526f3fc8d9_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/11595255065_d9550012fc.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4263272885_1a49ea5209.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/480228053_513791d474.jpg,tulips
+gs://asl-public/data/five_flowers/roses/756943228_e15a7b2318.jpg,roses
+gs://asl-public/data/five_flowers/tulips/2280950463_86510c2789_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7243174412_d3628e4cc4_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/9300754115_dd79670066_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/534547364_3f6b7279d2_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/9633056561_6f1b7e8faf_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/9293460423_7fbb1e3c32_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5067864967_19928ca94c_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14651383746_419dc73634_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4318007511_e9f4311936_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8681420404_6ae114f036_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2087981909_fd468de5c4_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/24781114_bc83aa811e_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/1879567877_8ed2a5faa7_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/9593034725_0062f0d24e_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/141652526_2be95f21c3_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3990746027_338ee436d2_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/8120563761_ed5620664f_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/5577555349_2e8490259b.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/6958243974_8851425ddb_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/21346056089_e6f8074e5f_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/8616684075_71923bb771_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2511306240_9047015f2d_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/11694025703_9a906fedc1_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/16987075_9a690a2183.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4598938531_9749b3b56a.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13471563274_471fc1db33_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5129135346_3fa8e804d8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14128839257_23def53028.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/99383371_37a5ac12a3_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/130685347_afbffe3afa_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/133858239_3eaa8a91fd_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/873660804_37f5c6a46e_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5045509402_6e052ce443.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5979111555_61b400c070_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7099259755_1c66420206_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8712244311_da8e90bf8e_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2225411981_6638c3e988.jpg,roses
+gs://asl-public/data/five_flowers/daisy/3504430338_77d6a7fab4_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/367020749_3c9a652d75.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13911047024_8966d70560_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/16152175716_55d6968e08_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/3628485766_4ff937954a_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/18599603859_f2ec616ddf_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/14084345111_8a4cb05a31.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14012247974_69ac128799.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14211880544_5d1f9d5aa8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3045046293_57f6d52065_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/4495885281_fe2a3b671d.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/5970868068_fe1c8b282e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6104713425_8a3277e34a.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8713397694_bcbcbba2c2_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/483880052_19fdb26a9f.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4544110929_a7de65d65f_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/7502389724_85b4a6c855_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/8671682526_7058143c99.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8668974855_8389ecbdca_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8717787983_c83bdf39fe_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5700781400_65761f3fce.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3084924076_4d5c5711af_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8712230357_1298b8513b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3589816063_50f8de7b64_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/921138131_9e1393eb2b_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/1445228333_59a07e0801.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/9483429732_5ae73eb672_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/301964511_fab84ea1c1.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/12024561754_ce9667e4dc_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4565139594_b28d260cb9.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/478765271_6a8ca1cfa1_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/7199968650_72afc16d31_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13509967925_eaaeefa396_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2599662355_7782218c83.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3103591125_99107c8bbe_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/9310226774_d1b8f5d9c9.jpg,daisy
+gs://asl-public/data/five_flowers/roses/172311368_49412f881b.jpg,roses
+gs://asl-public/data/five_flowers/roses/15319767030_e6c5602a77_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/7843447416_847e6ba7f4_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/14332947164_9b13513c71_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5979193298_639e877248.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4927658421_7eed83bc95_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/15219268336_f2460fca88_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3357432116_b3dce6fed3_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13888320717_d2919a879b_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7291185504_b740bbeba4_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/19425920580_cdc8f49aed_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/459633569_5ddf6bc116_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/12163418275_bd6a1edd61.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2067882323_8de6623ffd.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8502529435_c6e40d0df4.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/7141013005_d2f168c373.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/8887005939_b19e8305ee.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/17388697431_0d84c427d1_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/17122969189_0ec37cb6c9.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8032328803_30afac8b07_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/253426762_9793d43fcd.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/1140299375_3aa7024466.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/7448453384_fb9caaa9af_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/1265350143_6e2b276ec9.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/5015462205_440898fe41_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/16616096711_12375a0260_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/14510185271_b5d75dd98e_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/15122871130_6a7d0b4372_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/9831362123_5aac525a99_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2788276815_8f730bd942.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8748266132_5298a91dcf_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/8709110478_60d12efcd4_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5073473370_bdbb5a99fc.jpg,roses
+gs://asl-public/data/five_flowers/tulips/15647243236_2778501cf5_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/19178753159_a471bf4b6b.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15222804561_0fde5eb4ae_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/4550278535_dfdf7b74ef.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2453532367_fc373df4de.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/144099102_bf63a41e4f_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2600382379_5791b0b35a_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/9301891790_971dcfb35d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4117918318_3c8935289b_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/7094271655_79a6f972c1_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/14381787252_e8e12e277a_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/2408236801_f43c6bcff2.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/8632704230_ccafc5f7e2.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/16953818045_fea21c8bf8.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/15255964274_cf2ecdf702.jpg,roses
+gs://asl-public/data/five_flowers/tulips/2229804138_db9cba3443_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19437710780_c5f2156438.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/6495802659_98b57e0cca_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4933230991_d50c0f7c66.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8963359346_65ca69c59d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/13897156242_dca5d93075_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/112334842_3ecf7585dd.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/22755811033_cd17b109e0.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4806174512_e04475b766_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4632761610_768360d425.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/501987276_744448580c_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7003964080_4566470798_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/512177035_70afc925c8.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8614237582_74417799f4_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14074147406_7ab87aec79_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/11233672494_d8bf0a3dbf_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5862288632_1df5eb6dd0.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/11891885265_ccefec7284_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/13979889721_42a59ca9fa_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8708209606_d3aede4801.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16677542612_a78a8ca8b3_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/122450705_9885fff3c4_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14969295739_c132a08663_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5973491805_556bba93cc.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/17020815734_81e8db8008_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/7603036176_9e8967cd21.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5869147563_66fb88119d.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/13583238844_573df2de8e_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3533075436_0954145b9f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/15547944931_c1e095b185.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3871586333_5a708d5cf4_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4278757393_bca8415ed4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8723767157_c45bfd3ab6.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/13354458753_7b586f7c95_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/9146733107_98b15d3892_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/20078409301_aa8061bd0b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/10172567486_2748826a8b.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/22429946721_e17a12cb39_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5951665793_8ae4807cbd_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5700394524_dc6f8fa9cd_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/17433282043_441b0a07f4_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14054827391_139fb54432.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/16510864164_3afa8ac37f.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14698136411_23bdcff7bf_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/1392579828_ab5a139052.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/215798352_184d8040d1.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20481273479_d459834a3e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8642943283_47e44d049d_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/17158274118_00ec99a23c.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/15054753070_4f6ae0e763_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/15681454551_b6f73ce443_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/8719756744_34a5a83976_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8554190977_37ac747799_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/570127230_ce409f90f8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/12517756805_56b74be742.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5249566718_6109630c83_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2670304799_a3f2eef516_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/136011860_44ca0b2835_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/6934951920_d43ff8b78d.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8713390684_041148dd3e_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/5739768868_9f982684f9_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8681388520_c697dee897_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8673416556_639f5c88f1_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/1374193928_a52320eafa.jpg,daisy
+gs://asl-public/data/five_flowers/roses/12407768513_3440238148_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/353897245_5453f35a8e.jpg,roses
+gs://asl-public/data/five_flowers/roses/2331651885_619653a5d3.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2597655841_07fb2955a4.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2344751399_71620039f2_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/29972905_4cc537ff4b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/3997609936_8db20b7141_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/4797595918_79887b1229_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4691257171_23a29aaa33_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/20596941736_f2c5f496cf.jpg,roses
+gs://asl-public/data/five_flowers/roses/4979895172_ca06eba616.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/6104442744_ee2bcd32e7_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3501996215_1c6d1a3386_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14021281124_89cc388eac_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5674170543_73e3f403fb.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5835539224_75967fc400_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/16713229021_bea2533981_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/16650892835_9228a3ef67_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/54895006_55b49052dc.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4555842486_dd214a84d7_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/7454630692_ab2d67dd18_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/12949131454_4d3392f4dd_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3514340206_efb8198a80_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8740218495_23858355d8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/10391248763_1d16681106_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/7702332000_3f21ef4571_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/5795159787_ebb51a5e75.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9555824387_32b151e9b0_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20410533613_56da1cce7c.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/8740807508_0587f5b7b7.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4745991955_6804568ae0_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/6210664514_f1d211217a.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/7176729016_d73ff2211e.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/17198868382_697b23c715_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4624404489_11e10fcd33_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5810456385_b44358a0ae.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3458770076_17ed3a1225.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5927432662_3ffd2461c2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/8014734302_65c6e83bb4_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5811226952_4650ed70ae_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4746648726_e37a2de16d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/14943194730_f48b4d4547_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8677713853_1312f65e71.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2895404754_6d9f9416d7_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/6803363808_9f9ce98186_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/6954604340_d3223ed296_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7447655334_e8f805ab95_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2490828907_5094017933_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/16832961488_5f7e70eb5e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13910126337_53faf1d214_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/1392131677_116ec04751.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13923036338_1ce32c6d4f.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14110615113_bd7b3fcb84.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/5679288570_b4c52e76d5.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2449852402_45d12b9875_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2467980325_237b14c737_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/7581713708_8eae6794f2.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/17189526216_fa24dd541a_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2448812029_047d981092_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/6089825811_80f253fbe1.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8935456132_8dc4d3b679_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7164500544_332b75aa3b.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/14507818175_05219b051c_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/24459548_27a783feda.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/6163179241_f093f45d95_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4186808407_06688641e2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/6905876618_12732b74de_b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8842317179_d59cf218cb_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/16161045294_70c76ce846_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2908212142_5437fa67ff_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3254533919_cb0b8af26c.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/5110107234_12ddc0206b_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14087361621_9fefb8dbef.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/5794839_200acd910c_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15750320284_22ef21c682.jpg,roses
+gs://asl-public/data/five_flowers/daisy/158869618_f1a6704236_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/9160289562_ab2718d19b.jpg,roses
+gs://asl-public/data/five_flowers/roses/4414135084_1ac7e6cd54.jpg,roses
+gs://asl-public/data/five_flowers/daisy/3900172983_9312fdf39c_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/751941983_58e1ae3957_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/176375506_201859bb92_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9538283930_0faea083bb_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/16903172207_2cd7aca66a.jpg,roses
+gs://asl-public/data/five_flowers/daisy/2019064575_7656b9340f_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4552591312_02fe1dcc04_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3846717708_ea11383ed8.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4573204407_babff0dce4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/506659320_6fac46551e.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/14591326135_930703dbed_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/510844526_858b8fe4db.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3948347096_42261f047a_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/10555826524_423eb8bf71_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3717746329_53f515c6a6_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/468749497_951c571eff_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3052753519_d087aaeacb_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/4572955407_87f4805c7b.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13926327692_a07357ff0d.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2973256732_1926295f35.jpg,roses
+gs://asl-public/data/five_flowers/roses/4918137796_21f0922b0c_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4689061249_6498da5013.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4574447682_40dce530f1.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13531001134_72052100e1_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/6227136437_6117068599_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8817622133_a42bb90e38_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14674071872_2df55466d5_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/444963906_e41492b692.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4550805310_5f81c9ba08_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2503489175_f0848d3e8e.jpg,tulips
+gs://asl-public/data/five_flowers/roses/6864417932_36fa4ceecf_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/15275190769_0ed7bbf490.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/7790614422_4557928ab9_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/16078501836_3ac067e18a.jpg,roses
+gs://asl-public/data/five_flowers/tulips/16680930777_7e7f292fc5_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4558912791_084e440365_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/200011914_93f57ed68b.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3815322974_52c12dbde3.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/14646279002_9cdf97be97_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/16765283686_0315ae00a8.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/8174935717_d19367d502.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/15061894841_e5aca59ecd_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/3556123230_936bf084a5_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/2550860627_998a4fc4c1.jpg,roses
+gs://asl-public/data/five_flowers/roses/6036837996_7fbdcdb3c5_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/8929213942_5544191250_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/164578909_51f245d3fa_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/19280272025_57de24e940_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/15493195788_60530f2398_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7069622551_348d41c327_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4160805260_cf758daeae_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5776879272_95008399c3.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4865691548_00319261b8.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8780964418_7a01a7f48a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14085038920_2ee4ce8a8d.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13903946578_187f904c9a_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/7630517248_98fb8bee1f_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/19617501581_606be5f716_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/2265390547_2409007cef_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/5955475577_3d923874d9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/4243078361_7b92a932cd_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2553703483_558d12668c_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/19988406792_68201f76e3_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/14741907467_fab96f3b2b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4933229479_c1708bd503.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4117620896_070e5887ae_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/6105809987_8f3d7a8d67_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/9719816995_8f211abf02_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4496277750_8c34256e28.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/15761264350_4caaf080f6_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/3430229687_32645b5738.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2637883118_cf6ce37be4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3720632920_93cf1cc7f3_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4664737020_b4c61aacd3_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/2423565102_2f1a00bb1b_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/1402130395_0b89d76029.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/6198569587_23c3693328_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/14414117598_cf70df30de.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5726984343_ae124aed97.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14057246122_8598b665bd.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6994938270_bf51d0fe63.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4993492878_11fd4f5d12.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14070457521_8eb41f65fa.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2326334426_2dc74fceb1.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3451079245_2139200d66_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/10555749515_13a12a026e.jpg,daisy
+gs://asl-public/data/five_flowers/roses/2677417735_a697052d2d_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/2607130050_9c34310004.jpg,roses
+gs://asl-public/data/five_flowers/roses/15174615529_144ae28bdb_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3297108443_0393d04dfc_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8892851067_79242a7362_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3625257860_33efeef614_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/705422469_ffa28c566d.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4575042086_7674b76297_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/130733200_fbe28eea19.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/135994133_4f306fe4bf_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/15297244181_011883a631_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/295257304_de893fc94d.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/9588522189_db6166f67f.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/3285641623_da0e47f49a.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/130685040_3c2fcec63e_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14614655810_9910e6dbd6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/10437754174_22ec990b77_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/16862374316_4135908d4c_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5767676943_4f9c7323f3_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2590291468_2635d3e4e0_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/15054865768_2cc87ac9d4_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/7455236056_b6d71a8dab.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4528742654_99d233223b_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2512977446_ac498955ee.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/8543642705_b841b0e5f6.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/13095941995_9a66faa713_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5613466853_e476bb080e.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2220085701_896054d263_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4933229889_c5d9e36392.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5004121118_e9393e60d0_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/3654988152_b11178bbcb.jpg,roses
+gs://asl-public/data/five_flowers/roses/5333437251_ce0aa6925d_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/16096748028_7876887ab2.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/6038098425_b3b4fb62cc_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14149603605_eedfe9678c_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/7335886184_d06a83f640.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3393564906_f2df184b76_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/17619402434_15b2ec2d79.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/16949657389_ac0ee80fd1_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3463313493_9497aa47e5_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8757486380_90952c5377.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3683873444_be4a609c46.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/2053476785_c162a3e358.jpg,roses
+gs://asl-public/data/five_flowers/roses/15712574834_2f121c7cf9_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/14333681205_a07c9f1752_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14746916178_40403cc57e.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8710148289_6fc196a0f8_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/6145005439_ef6e07f9c6_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/821368661_4ab4343f5a.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8983268106_dc913d17d8_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8511683706_4173683d45_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14881304632_54a9dfb8be.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/4694341873_65fe187a4e_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8673416166_620fc18e2f_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/676120388_28f03069c3.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/15081164641_45a7b92b3a_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5180896559_b8cfefc21e.jpg,roses
+gs://asl-public/data/five_flowers/daisy/2454280137_e1637536ae_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/13959937305_2f5c532886_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/13887031789_97437f246b.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9432335346_e298e47713_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5139969871_c9046bdaa7_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5970301989_fe3a68aac8_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13974542496_e4b5d1c913_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/11124381625_24b17662bd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4933229357_1c5cc03f65_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/163978992_8128b49d3e_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/22274701614_901606ee34_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/14350958832_29bdd3a254.jpg,daisy
+gs://asl-public/data/five_flowers/roses/7316409504_7cf3707f8a_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/1446097778_97149b8362.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8838347159_746d14e6c1_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/5722473541_ffac1ae67e_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/478851599_25bfd70605_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14278605962_d3cce5522f.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5675705011_82729927ca_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/8038712786_5bdeed3c7f_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/141340262_ca2e576490.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/15255964454_0a64eb67fa.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5760890854_c3e009bc8a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/18760363474_a707331322_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/23414449869_ee849a80d4.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3275951182_d27921af97_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14275234071_6e6f473356.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/3502085373_edc2c36992_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/7820626738_3be6a52e4e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2521811279_1f7fc353bf_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/19437578578_6ab1b3c984.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/405035580_94b793e71d.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4940287066_385afd9c18_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/9613826015_f345354874.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/1715303025_e7065327e2.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8712243901_54d686319e_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/12406418663_af20dc225f_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8762189906_8223cef62f.jpg,tulips
+gs://asl-public/data/five_flowers/roses/16525204061_9b47be3726_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4724713781_d169f98a35.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8929523512_c87897b84e.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4755075329_1fccc69d4e.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4933230547_394f618009_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3580443099_9a6902ebd8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8708856019_f3be2353a4_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/6958343928_7e596da4ed_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/18183515403_13a9ca6d86_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/510874382_f7e3435043.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4910094611_8c7170fc95_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/13826249325_f61cb15f86_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4312181724_16dab26afb_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14487943607_651e8062a1_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6994925894_030e157fe0.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15218421476_9d5f38e732_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/4231745228_ece86330d9.jpg,roses
+gs://asl-public/data/five_flowers/daisy/11023277956_8980d53169_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/2697194548_ec8f8de97c_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/11746452_5bc1749a36.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/175686816_067a8cb4c5.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8520488975_a50d377f91.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13530690445_9f1f5cf43a_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/17199496791_3caaf5e278_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4933822422_4f54fc7cc8.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5725836812_a7d1c5540d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4267024012_295e7141a3_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/2561371688_c80a4fe957_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/18270448366_d5676dec64_z.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/1297972485_33266a18d9.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2674176237_e265ea64cc_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/27466794_57e4fe5656.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3383422012_6c9d83671f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13979840624_28466cb3ec_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/15976769174_1d50f46ca1_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/519880292_7a3a6c6b69.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3750250718_eb61146c5f.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2512148749_261fa9d156.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15030133005_9728102622_z.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/2720698862_486d3ec079_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2470874500_43d8011e75.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5572197407_a0047238a6.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/8929274876_17efc1774a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8697784345_e75913d220.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/9529916092_de70623523_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/4727955343_0bb23ac4ae.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/20344282483_05abb0b837.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8713394070_b24561b0a9.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4579128789_1561575458_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/1562198683_8cd8cb5876_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/450607536_4fd9f5d17c_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5755467567_903c31e3d0.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/17821459748_873101edd0_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5608832856_f5d49de778.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/6653567281_768a1fd160.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/18237156988_9ceb46a8de_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7465850028_cdfaae235a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/1074999133_1e4a1e042e.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13555215723_cf2c11626b_b.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13910604778_e5f4588420.jpg,tulips
+gs://asl-public/data/five_flowers/roses/6280787884_141cd7b382_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/6968202872_cfcb5b77fb.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3102535578_ec8c12a7b6_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4895719476_bd3b6bd6fd_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/6783408274_974796e92f.jpg,roses
+gs://asl-public/data/five_flowers/roses/10090824183_d02c613f10_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/8266310743_02095e782d_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/435283392_72e4c5b5d6_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5628552852_60bbe8d9b0_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/13531007054_c88deaf302_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2347579838_dd6d2aaefc_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/14048849371_ec9dbafaeb_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/2093263381_afd51358a3.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3675486971_d4c8683b54_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/215798357_3f4bfa27b7.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/6095817094_3a5b1d793d.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4242976586_607a8f9843_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/3001533700_1c62fb8b4a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4977385375_e271e282f9.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/15498482197_8878cdfb07_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/808239968_318722e4db.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/17420983523_2e32d70359.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9655029591_7a77f87500.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/14687731322_5613f76353.jpg,roses
+gs://asl-public/data/five_flowers/daisy/10993710036_2033222c91.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9448615838_04078d09bf_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20183071136_c297e74fcc_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3823142577_dd5acd5ac6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14932787983_d6e05f2434_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/1441939151_b271408c8d_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13954659583_03981dea99_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3612582808_4503fa1f8b_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5693459303_e61d9a9533.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4550784336_584d7a65de_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7162551630_3647eb9254.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4626721387_88f89d5cc9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/3025866885_22fb0b61c6_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4816636411_0135bfe2c9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/15054864508_0334b892be_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4353419275_79d3904074_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/1788133737_b1133d1aa7.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5996421299_b9bf488c1a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/15977362155_461030c196_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/5970869550_d7d9fabebd_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20972866151_e6a928b00a.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/3415176946_248afe9f32.jpg,roses
+gs://asl-public/data/five_flowers/daisy/10466558316_a7198b87e2.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5050969148_a0090f762a.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4753134939_8e87649db6.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3487229452_73e3004858.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14103897845_7986002615.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3848258315_ed2fde4fb4.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/113291410_1bdc718ed8_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/17077876795_6dd1b03f54_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/15236835789_6009b8f33d.jpg,roses
+gs://asl-public/data/five_flowers/roses/3203779656_3580151ea4_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3584414925_1e6c4b61db_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/418056361_1dfac1c151_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13976522214_ccec508fe7.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4523239455_9c31a06aaf_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5891485349_cce7b99549.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8523133474_d2c0845b54.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3268459296_a7346c6b2c.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/9595369280_dd88b61814.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/20165867412_fc45d31698_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3957488431_52a447c0e8_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4860145119_b1c3cbaa4e_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/18204150090_fb418bbddb.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/16691236594_4287cea9d6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/18354545086_693ea7bc2a.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4831577091_f56157a5d5_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8668973377_c69527db42_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/20580471306_ab5a011b15_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4871455214_8b5fb87ab6_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/15419696882_9394168a10_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/6140808687_88df0fd733.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/14471433500_cdaa22e3ea_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2995221296_a6ddaccc39.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/112951086_150a59d499_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4716316039_044e4d2d1a.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3404038663_f62cf8eba3_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/20972862281_5367f4af88.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13513616525_2ee0f049e1.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14836105101_1d07520932_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/15139657325_74031c44fc.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/142390525_5d81a3659d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/6299910262_336309ffa5_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/7267547016_c8903920bf.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2440874162_27a7030402_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14093884601_c87b5cd663_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3962240986_0661edc43a_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4505921907_21c8002fde.jpg,roses
+gs://asl-public/data/five_flowers/tulips/112428919_f0c5ad7d9d_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/22405882322_d4561f8469_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/4558025386_2c47314528.jpg,roses
+gs://asl-public/data/five_flowers/tulips/6958342976_a4a9483488_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7232035352_84a39e99ba_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/14145188939_b4de638bd3_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/1880606744_23e3dc4f6b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3909355648_42cb3a5e09_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19397467530_1e8131a7cf.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2425067141_b27043a800_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/512578026_f6e6f2ad26.jpg,roses
+gs://asl-public/data/five_flowers/daisy/14354051035_1037b30421_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/5586977262_6b24412805_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3149809654_6a4b31314d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/20410697750_c43973d1eb.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/14707111433_cce08ee007.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/2733109082_1351f6738a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2481428401_bed64dd043.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8674140377_ae7b0be523.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/1193386857_3ae53574f2_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2488902131_3417698611_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9699724719_a8439cc0fd_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/2960610406_b61930727f_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5966729883_67f4fede93.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/3742168238_d961937e68_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/9152356642_06ae73113f.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5139977283_530c508603_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4578030672_e6aefd45af.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/3433265727_0b8022e091.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14313509432_6f2343d6c8_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/2689228449_e0be72cf00_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8058286066_acdf082487_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13289268363_b9337d751e.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2697283969_c1f9cbb936.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14068378204_7b26baa30d_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/20342824594_9740b7b160.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8181940917_1ac63937d5_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/506348009_9ecff8b6ef.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2331133004_582772d58f_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/8041242566_752def876e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8719388716_1a392c4c0e_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13910678178_25e8b1a5e5.jpg,tulips
+gs://asl-public/data/five_flowers/roses/6309548569_932fee8313_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4511693548_20f9bd2b9c_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4503599544_3822e7d1be.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/8220011556_28e0cab67f.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8524505682_bda885af3a_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/12601254324_3cb62c254a_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2361075034_cf730b8682.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4893660821_eb7f02bef3_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2473825306_62fd5f8785_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/35477171_13cb52115c_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7998106328_c3953f70e9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/9350942387_5b1d043c26_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/145173479_7d04346c20.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4933822272_79af205b94.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/1667963621_c76d570af3_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8687675254_c93f50d8b0_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/3396033831_bb88d93630.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/6116210027_61923f4b64.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/18482768066_677292a64e.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/160456948_38c3817c6a_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/19697910486_0086d893a2.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/14221192676_eb8c89a7d6_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2319777940_0cc5476b0d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13910479407_936fd3122d.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/12883412424_cb5086b43f_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14646282112_447cc7d1f9.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/11870378973_2ec1919f12.jpg,daisy
+gs://asl-public/data/five_flowers/roses/9159362388_c6f4cf3812_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4489359360_09db62f825.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5644234724_cb0917ee33_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/11439894966_dca877f0cd.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/9472854850_fc9e1db673.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4980406384_791774d953.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8978962053_0727b41d26.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8523394349_61b31fdd8f_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/9467543719_c4800becbb_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3585220976_5acac92d1c.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2256230386_08b54ca760.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/9446982168_06c4d71da3_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/14107161906_5737e0e4ec.jpg,roses
+gs://asl-public/data/five_flowers/roses/9614492283_66020fb4eb_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/5433747333_869a2a172d_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14019781123_ea0f8722d4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2462476884_58c617b26a.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/16700863150_ddaa4d89b4_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2759796022_55bd47bfa2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/17175932454_c052e205c1_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/12916441224_2ed63596f8_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7308600792_27cff2f73f.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4550091966_7f3e0f8802_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/15327813273_06cdf42210.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4953240903_a121fba81f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5027895361_ace3b731e5_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8562853756_73778dac25_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2409069862_b128ee2a71.jpg,roses
+gs://asl-public/data/five_flowers/tulips/13562266594_69b807f90c.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13997641965_80d5dab542_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3338077096_3a8ed0e2bc_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/11102341464_508d558dfc_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/18996957833_0bd71fbbd4_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/6936168062_a31c28b77c_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4805544785_a63241f6d0_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/2122401867_cd86c5f114_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/17903104293_9138439e76.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8601596054_33e40c2a7a.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/486234138_688e01aa9b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/8446495985_f72d851482.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/17574213074_f5416afd84.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5388013398_09a8a0f166_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3468498624_d082f99e98.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3150964108_24dbec4b23_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3872230296_6c477309f3_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/14921668662_3ffc5b9db3_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9491955955_d0b2c83834.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8768645961_8f1e097170_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2666572212_2caca8de9f_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/5704726114_a92f753514.jpg,tulips
+gs://asl-public/data/five_flowers/roses/1469726748_f359f4a8c5.jpg,roses
+gs://asl-public/data/five_flowers/tulips/470690620_9d3a5bb239.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2641151167_3bf1349606_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/134143359_71fa8dd9a4.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3798841385_38142ea3c6_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/9175280426_40ecc395b8_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2238626027_058c404b94.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5979111199_495884b578_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/184682320_73ccf74710.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/102501987_3cdb8e5394_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5512287917_9f5d3f0f98_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15802657001_40fe77c030_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/5417115048_3b78d6c875_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/19519101829_46af0b4547_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7132482331_01769e36e9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5497730366_44d758d8f5.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/2721638730_34a9b7a78b.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/19602790836_912d38aaa8.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4442928974_9672d630b2_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/20703737132_179560d0fb.jpg,daisy
+gs://asl-public/data/five_flowers/roses/6570546331_ffb9dab0bf_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/15277801151_5ed88f40f0_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/5437996076_cf7e2ac32e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8690791226_b1f015259f_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/253622055_d72964a7fd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2963905796_227d37ff12.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15241431045_65201cf15a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/23891393761_155af6402c.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/12338444334_72fcc2fc58_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/5273722065_c85d8543c2_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/2980154410_bffd7a3452_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4757448834_a29a9538c9_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/15118243470_7e0a7f159c_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/2813658587_337eeef124_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5674125303_953b0ecf38.jpg,tulips
+gs://asl-public/data/five_flowers/roses/17449165090_dfb27af360_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/16291797949_a1b1b7c2bd_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/1396526833_fb867165be_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2514748602_343d4727c0_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/18990187093_09f2bff8fc_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/8759118120_9eac064e38_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/344318990_7be3fb0a7d.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5917253022_4e3142d48b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/112428665_d8f3632f36_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/9010116368_2f51f1e086_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4923279674_e7f8e70794_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3511776685_3635087b12_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/17346385582_7ba433dbbe.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/13675534854_03caf51644_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5955501969_e42f038a6f_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/9029756865_db8891807a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5749815755_12f9214649_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13561986193_cf645b2b9a.jpg,tulips
+gs://asl-public/data/five_flowers/roses/534228982_4afbcece9b_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4560663938_3557a1f831.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4814106562_7c3564d2d9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4497973347_57480ffee9_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/17189437699_a9171b6ae3.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8686013485_3c4dfbfd1f_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5181899042_0a6ffe0c8a_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/921984328_a60076f070_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/17167151059_a53bfe0b02.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5717319579_190e85c7d1_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/6908789145_814d448bb1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8442304572_2fdc9c7547_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/8562144481_1d629848ff.jpg,roses
+gs://asl-public/data/five_flowers/daisy/15813862117_dedcd1c56f_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3502447188_ab4a5055ac_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8484905084_6a18c62b13_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/1813435848_7852708394_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/17282288501_e8738c9cfb_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5738195260_b3fc107aa7_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/18250039435_7654bc11be_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/22506717337_0fd63e53e9.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/14889392928_9742aed45b_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2780702427_312333ef33.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8717900362_2aa508e9e5.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3265902330_d8b1e44545.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4538877108_3c793f7987_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/13491959645_2cd9df44d6_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/11746548_26b3256922_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2443921986_d4582c123a.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2473862606_291ae74885.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4858518329_7563eb0baa_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2257649769_deaf97e2c9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2271507463_15c48d41c4_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13472141763_f2517e7f0d.jpg,tulips
+gs://asl-public/data/five_flowers/roses/4360743371_6238b36d8c_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/142218310_d06005030a_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4598422221_b37313a3e3_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4644110077_ff252cd7c4.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/7066602021_2647457985_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4591323356_030d8b6967_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/144076848_57e1d662e3_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/155646858_9a8b5e8fc8.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/23286304156_3635f7de05.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8497389500_45636fdd14.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/11746276_de3dec8201.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13910737760_c71c8b6ff2.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5446666484_365f3be83a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5018120483_cc0421b176_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13979098015_e8c98fd34e_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/3282751630_45c2665034_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/19653086178_28156b7ce4_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/5574219476_1f46775487_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14058811536_f29cd7bd58_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15238348741_c2fb12ecf2_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/14093789753_f0f1acdb57.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2349640101_212c275aa7.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/15266715291_dfa3f1d49f_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5979669004_d9736206c9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7166644048_b00a14f01b.jpg,tulips
+gs://asl-public/data/five_flowers/roses/8742493689_fb852f0228_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/4684127262_6c3346188d.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5607669502_ccd2a76668_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/12557176134_ecbf15885b.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8454707381_453b4862eb_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4668543441_79040ca329_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/14907815010_bff495449f.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/6204049536_1ac4f09232_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/18215579866_94b1732f24.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6495554833_86eb8faa8e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3838274225_36010c6254_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2330343016_23acc484ee.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/16772483324_09f24813a1_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/678714585_addc9aaaef.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4278442064_a5a598524b_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/15123604714_dd034a4a3b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/17388674711_6dca8a2e8b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3476945045_97ff41e8ec_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4606893762_c2f26c7e91_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13923539227_bdab038dc8.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2256214682_130c01d9d9.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2351206867_084e57bd97.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3639009391_0f910681b7.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8720503800_cab5c62a34.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/14982802401_a3dfb22afb.jpg,roses
+gs://asl-public/data/five_flowers/roses/3072908271_08764c732a_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/18828277053_1493158b28.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/17146928665_600fa3a1f1_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/14674743211_f68b13f6d9.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3991742794_edebc6c8a0_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8681825637_837a63513a_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/15123503538_8ee984abc6.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/19426575569_4b53c0b726.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4572738670_4787a11058_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3336704121_cfeb67a7d7.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/22190242684_8c3300d4e6.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5565089564_a30c318f44.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5744236092_de84b4e38d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/13331969914_890082d898_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6958724008_12259943a7.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/10386702973_e74a34c806_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/10466290366_cc72e33532.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/9204730092_a7f2182347.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3975010332_3209f9f447_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2232289392_9a79a0c5cb_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5687705933_55a8c2dbac.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/10791227_7168491604.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/11023214096_b5b39fab08.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/164670455_29d8e02bbd_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/485415743_eeb5d7c1a5.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16680998737_6f6225fe36.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16506668270_b823935dc3.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2364976562_a184463083_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/3450822975_7e77d67636_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/15632065904_0d9caf174b.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4933228903_9ae82d0b9d.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5999024446_5721493894.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4497976955_3f8c2a21c1_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/15738649506_2b4c2fd933_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2661585172_94707236be_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4414083164_3f285f8ac5.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/3337536080_1db19964fe.jpg,daisy
+gs://asl-public/data/five_flowers/roses/537207677_f96a0507bb.jpg,roses
+gs://asl-public/data/five_flowers/daisy/6054952060_c88612f3c5_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3688128868_031e7b53e1_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9482209981_bf7bf6022b_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/18622672908_eab6dc9140_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8908097235_c3e746d36e_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/6482016439_b0d06dac04.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/8671824531_64b816949e_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/517054463_036db655a1_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5398974188_799753449c.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14084749296_6143c74c72_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2536529152_33ef3ee078_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/506350421_2ba59e568e_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4613992315_143ccc2a10_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/2183357362_4b4da4b6b5.jpg,roses
+gs://asl-public/data/five_flowers/roses/8462246855_1bdfee7478.jpg,roses
+gs://asl-public/data/five_flowers/roses/12434194695_a7c4e73c6b_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8712270665_57b5bda0a2_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/10386540696_0a95ee53a8_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3143110904_66b4851a58_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3832945398_96509d192b.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/11124324295_503f3a0804.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/8706810197_17b6c1f1e7.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/1043442695_4556c4c13d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/8619103877_d8c82c5f34_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/200557981_f800fa1af9.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6606746467_a668c8d417.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5139971615_434ff8ed8b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/486896118_bcc7b8e1d6.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4746633946_23933c0810.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14116826873_d4bab623bf_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4560613196_91a04f8dcf_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/2996573407_5e473b9359.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2612704455_efce1c2144_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/16309287412_5cc4d58bd1_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4632863567_5f9af7de97_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/16025261368_911703a536_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/15054865217_e398d0dc9f_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/9870557734_88eb3b9e3b_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/9595857626_979c45e5bf_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/3001536784_3bfd101b23_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5234278003_d827fcd73b_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/9299302012_958c70564c_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/16360180712_b72695928c_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4673984698_6ec14d5b79.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8713392604_90631fb809_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5600240736_4a90c10579_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2472641499_cbe617a93d.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8842482175_92a14b4934_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7218569994_de7045c0c0.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4638438929_2ec76083c8_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14674388855_2da18e375a_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/12891819633_e4c82b51e8.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4573822295_5c5c6a5f6a.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16717320956_d4b00807f2.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/13117907313_86c99c6441.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7193058132_36fd883048_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7068715863_a534ac7884_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14026857634_500d7b41d6_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5339004958_a0a6f385fd_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9558627290_353a14ba0b_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/2471103806_87ba53d997_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/14362539701_cf19e588ca.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/7669550908_bc5a11276f_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14127532150_112823a8f6.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/18023717391_e2c9089e10.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14093744313_b66bc95072.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/20171662239_f69b6c12bd_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2567033807_8e918c53d8_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/22325299158_6e32e599f8_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/7775145448_c42e638a6a_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/1240626292_52cd5d7fb1_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/16986144192_55e0e6c152.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/14569895116_32f0dcb0f9.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9610373158_5250bce6ac_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5487945052_bcb8e9fc8b_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/15853110333_229c439e7f.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/7510285306_ba8f80c382_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/7654774598_6b715a8d3e.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/6480809771_b1e14c5cc2_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/12282924083_fb80aa17d4_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/15243175532_ac28c48e14_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14068295074_cd8b85bffa.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/512477177_d9004cbcf1_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/112951022_4892b1348b_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2950505226_529e013bf7_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2365428551_39f83f10bf_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/7530313068_ddd2dc1f44_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/8932490012_cc08e690ba_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/495094547_fd2d999c44.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14741866338_bdc8bfc8d5_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/18901817451_43e2b45f6c.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14884028290_a1344eb446.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6606823367_e89dc52a95_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/10200780773_c6051a7d71_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5691672942_70a93d70fc.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/13652698934_d258a6ee8c.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9231555352_d2dd8f8e68_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/14070463051_86ab57ab36.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/184682506_8a9b8c662d.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/16485607329_e66d5960bc_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3491333876_e3fed43c0d.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4731069260_b270f47803_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/10094731133_94a942463c.jpg,tulips
+gs://asl-public/data/five_flowers/roses/15949087094_a8f565295c_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/3753920123_c7ebc18ee3.jpg,roses
+gs://asl-public/data/five_flowers/tulips/7247182064_f8d6759446_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5777669976_a205f61e5b.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/17862580326_293070978d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9302733302_2cb92cf275.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4721773235_429acdf496_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2513618768_ff7c004796_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/14372713423_61e2daae88.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15424480096_45bb574b33.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/7015947703_11b30c20c9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5674132053_b40a7d32ca.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5647842237_b1c5196718_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14678298676_6db8831ee6_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/15104537437_f6730b38c3_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/515112668_a49c69455a.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9056495873_66e351b17c_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7315832212_b0ceeb8de8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3264570182_c7ded528ba_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5561775629_a2b709b3a4_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/6050020905_881295ac72_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20667988875_6e73ac2879_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2556503265_63ae6b9e0e_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15011625580_7974c44bce.jpg,roses
+gs://asl-public/data/five_flowers/roses/7525783408_0999483bf4_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/6069602140_866eecf7c2_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/5998488415_a6bacd9f83.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7367491658_9eb4dc2384_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4612075317_91eefff68c_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/17161833794_e1d92259d2_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/14219214466_3ca6104eae_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/525271784_013ddccd1b_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4579079143_f65b39dd9f.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/141479422_5a6fa1fd1b_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2477231067_3aecef1bf8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/18766965343_9f42d4bedc_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14866400927_3a59899df3_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/7166618384_850905fc63_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/8667101118_87ea757b15.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/6606806621_5267acdd38.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3893436870_034b79d118_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5054771689_00dd40b971_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4675287055_5938ed62c4.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/16737503507_431768a927.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4895124535_11a2bb704c_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3485767306_6db7bdf536.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9555827829_74e6f60f1d_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6141150299_b46a64e4de.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4633323785_20676ff914_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4645101643_9c9d9df13e.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5705695593_d79286ac0d.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/2598973480_07de93e91d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8981828144_4b66b4edb6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7136973281_b2a935ce20.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2425164088_4a5d2cdf21_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3372748508_e5a4eacfcb_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/898102603_2d5152f09a.jpg,roses
+gs://asl-public/data/five_flowers/tulips/16471277547_a0a5509377_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/7481217920_6f65766a1c_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2402342888_dd65677013.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5676682203_70d797f760.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/1022552036_67d33d5bd8_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/112650879_82adc2cc04_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/515121050_dcb99890be.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2522454811_f87af57d8b.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3667366832_7a8017c528_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14262354955_cc2ab3b112_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/10828951106_c3cd47983f.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/15378782362_4161b23af7_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/12240577184_b0de0e53ea_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8713387500_6a9138b41b_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5674695558_61397a1584.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4574102507_70039c8b28.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4735314389_94fe1b2a9f_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14116780333_7836f4448c.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/147068564_32bb4350cc.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8713396140_5af8136136.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/19177263840_6a316ea639.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/17027891179_3edc08f4f6.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/40410814_fba3837226_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5955500463_6c08cb199e.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/2619000556_6634478e64_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/21347496068_f4d3339607.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/5994569021_749d5e2da3_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7950901292_2dea05f9a2_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9375675309_987d32f99e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14064731501_ea14b58161.jpg,tulips
+gs://asl-public/data/five_flowers/roses/180613732_3a7aba0b80_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/16930105456_8b826dc4a8_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4398771472_44f2a0c162_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/16837594326_1056d875a4_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/172967318_c596d082cc.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2538504987_fe524b92a8_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/7369484298_332f69bd88_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4746668678_0e2693b1b9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2578695910_5ab8ee17c1_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/10617191174_9a01753241_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/568715474_bdb64ccc32.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/9029297232_de50698e2f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/7683456068_02644b8382_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/14460081668_eda8795693_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3575811488_a31714472a.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/2421740440_f82ced8582.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14925397761_46ecfa24e0.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4897587985_f9293ea1ed.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3421027755_cdb8fef8e8_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/61242541_a04395e6bc.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5492906452_80943bfd04.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8083321316_f62ea76f72_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4574785121_5d8ec4626e.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19593576916_f5a083d7fe_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4290112545_3528055993_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4546299243_23cd58eb43.jpg,tulips
+gs://asl-public/data/five_flowers/roses/4279989256_9a48c0d194_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/7820626638_3e2d712303.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/10386525005_fd0b7d6c55_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4933824130_b99839a80d.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/12045735155_42547ce4e9_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/4608559939_3487bf3b62_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/164668737_aeab0cb55e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5654859907_c2be3b0f1e_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14067761295_7cfe6a42e9.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8688502760_1c8d6de921_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2568105249_15720d081f_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/98992760_53ed1d26a9.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/17101762155_2577a28395.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/21134000558_d7d6c9b1fe_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5110103388_78dc02558e_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3154932076_eff5c38231_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8735646181_fa9787d4e0.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/18378582936_ee7085c850.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9825716455_f12bcc8d4e_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/177851662_b2622b4238_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/22419079265_8902cddb7d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/3861452393_14d2f95157_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2503034372_db7867de51_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/452854574_59492f119a_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/6901435398_b3192ff7f8_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5231103167_a03280e9f6_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/7251352826_69b62cba2c_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/16401288243_36112bd52f_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8684925862_d736e153bf_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3529889389_ab4cb6c43b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8327657321_2cbceec396_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/340190928_d77bf4d615.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13976206001_fd1c2cbd60.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/13560152823_9da5e48c87_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14646283472_50a3ae1395.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/21522100663_455b77a90c_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5655177340_78fc36ce59_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/2491600761_7e9d6776e8_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/184683023_737fec5b18.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5109508979_68e3530791_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2617111535_54c2ac8462.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/23095658544_7226386954_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4571353297_5634177744_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8727612532_6f3d0904aa_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/107693873_86021ac4ea_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5182167964_9d1a0be0b8_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5140791232_52f2c5b41d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3523398585_376960a611_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/162362897_1d21b70621_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/7064778965_ddcc6ee9f2.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/17078716890_68e0723389_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13510057763_01b832d919.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2332478138_28f1d586e4_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/8094774544_35465c1c64.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/430785322_7ddef64c68_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4895718876_0246882882_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5665080897_0796f726c9_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5990626258_697f007308_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14671196461_b725727229_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3865206264_5d81584bba.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/142235237_da662d925c.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2938040169_eb38581359.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8686332852_c6dcb2e86b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/20456824132_b1c8fbfa41_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14925397651_97dcddc383_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6250692311_cb60c85ee9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3596902268_049e33a2cb_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/299129811_d6ebda9970.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9445830851_e9a126fd1d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3253320570_b617f7fd4b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6035460327_4bbb708eab_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/19961979110_fcd8092388_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/2979133707_84aab35b5d.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/310380634_60e6c79989.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/2427626706_ffdf697f84_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8394186551_28eed83a94_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3407482427_49d5c75291_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/7166626128_8e0983ac8e_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/181007802_7cab5ee78e_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/13290033_ebd7c7abba_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3513200808_390f1d63a7_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/14993880427_95d0f27257.jpg,roses
+gs://asl-public/data/five_flowers/roses/2960709681_e95940c0f0_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/5961803532_9368212949_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/7166570828_7c26ca5766_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/9947385346_3a8cacea02_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/15509799653_0562d4a4fa.jpg,roses
+gs://asl-public/data/five_flowers/daisy/14021430525_e06baf93a9.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2713919471_301fcc941f.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3502251824_3be758edc6_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2883115609_5a69357b5d_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5524946579_307dc74476.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2509545845_99e79cb8a2_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/12471443383_b71e7a7480_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/17862445825_f7031d6f26.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4489516263_e49fe82637_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/123128873_546b8b7355_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/15756524087_823cf86bd8_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4520582070_d14a14f038.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/17202535346_ab828e779b.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3703643767_dee82cdef9_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2573240560_ff7ffdd449.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/5740633858_8fd54c23c9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/6900157914_c3387c11d8.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14814264272_4b39a102f9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/6227136683_262c6be56b.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14122029097_3e3285ca5c_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13176521023_4d7cc74856_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3550491463_3eb092054c_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5574421625_61b1f49b3f_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3588872598_e0f9a1d2a1_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9681915384_b3b646dc92_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4582198748_20fa7caaa1.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4414081772_8a0e8a1327.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2457473644_5242844e52_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9610373748_b9cb67bd55.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8756906129_b05a1b26f2.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/1645761726_2b1be95472.jpg,roses
+gs://asl-public/data/five_flowers/roses/3179751458_9646d839f6_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/19595718862_c68896370c_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13513851673_9d813dc7b0.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13903988248_22da33f341.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8723767533_9145dec4bd_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3379332157_04724f6480.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/1776290427_9d8d5be6ac.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/15549402199_2890918ddb.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/2258973326_03c0145f15_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/8742493617_c2a9bf854f_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/6158504080_b844a9ae05.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/461632542_0387557eff.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3600510954_a51bfc5440_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6146107825_45f708ecd7_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4573886524_5161482ca7_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/151861297_55b10a03a6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7165651120_2279ebf6d1.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/15090146325_b7e1249e60.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/433837534_1dbf798b73.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/9180706736_092d43088c.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/5330608174_b49f7a4c48_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3731075939_6c92d7fe68_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/13096076565_72c2c60875_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4571993204_5b3efe0e78.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2465573725_d78caca9d4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/1485456230_58d8e45e88.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/3276552939_8c31b22d3e.jpg,roses
+gs://asl-public/data/five_flowers/roses/8692051081_dffa8709e7_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/510897767_918260db93.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7062171343_db61c92737_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/17953368844_be3d18cf30_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/12585131704_0f64b17059_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14554897292_b3e30e52f2.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/9646730031_f3d5014416_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7401173270_ebaf04c9b0_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2431737309_1468526f8b.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4933823922_911ac40b0d.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/6687138903_ff6ae12758_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/14597445311_8acb60247e.jpg,roses
+gs://asl-public/data/five_flowers/tulips/4508346090_a27b988f79_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/14600779226_7bbc288d40_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2412250315_a04171da51_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/494108764_e00178af6e.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3502974120_9f1eceaf8b_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/16157873719_bf0bdf8558_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/7295618968_c08a326cc1_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/6864242336_0d12713fe5_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2392273474_a64cef0eaf_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3601085193_de1195d3d7_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/475947979_554062a608_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/6776075110_1ea7a09dd4_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2444241718_3ca53ce921.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/21796333524_38fc8e0ab5_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4557781241_0060cbe723_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/15819121091_26a5243340_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/7419966772_d6c1c22a81.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/16975010069_7afd290657_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/2729206569_9dd2b5a3ed.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/3494252600_29f26e3ff0_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/7012364067_5ffc7654c9_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/132538272_63658146d9_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2322670828_34115a7050.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2834890466_1cf220fba1.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/8085329197_41d53a21e2_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2627815904_919373e7f5.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/4694730335_2553e77aa5_z.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/9188647508_3b56e62f69.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5642429835_a0cbf1bab7_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4955884820_7e4ce4d7e5_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5003160931_cf8cbb846f.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/6978826370_7b9aa7c7d5.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4589624702_b6baa83699_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/3502685880_f026400dce_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/490541142_c37e2b4191_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4708723476_a1b476a373.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/2535466393_6556afeb2f_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/15191613243_82ee8e0fe8.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4268817944_cdbdb226ae.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3999978867_c67c79597f_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/5109501167_2d9bbb0f27_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4644336779_acd973528c.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/144686365_d7e96941ee_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8669794378_97dda6036f_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/8718637649_87a0d85190_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/19834392829_7d697871f6.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/1285423653_18926dc2c8_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/12471290635_1f9e3aae16_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4226758402_a1b75ce3ac_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4679869990_7c5f28f2fe_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/138132145_782763b84f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5665708521_799585d229_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5089363428_2c5a1272ea.jpg,roses
+gs://asl-public/data/five_flowers/roses/9423755543_edb35141a3_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4512569988_2b3f802cc6.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/2442985637_8748180f69.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/9094631844_1a6abca29e.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/19504937128_a4ae90fcbd_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/16265876844_0a149c4f76.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4933824012_8cbfe606f6.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/23891005905_17ce9e6936.jpg,roses
+gs://asl-public/data/five_flowers/daisy/14816364517_2423021484_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/1955336401_fbb206d6ef_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/1299501272_59d9da5510_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/14001990976_bd2da42dbc.jpg,roses
+gs://asl-public/data/five_flowers/tulips/142235914_5419ff8a4a.jpg,tulips
+gs://asl-public/data/five_flowers/roses/18584002386_cec0df537d_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/2694860538_b95d60122c_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/11768468623_9399b5111b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5944315415_2be8abeb2f_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/8709535323_a6bea3e43f.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/8563099326_8be9177101.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3568114325_d6b1363497.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/18376177250_86060cbdc9.jpg,roses
+gs://asl-public/data/five_flowers/tulips/7166640338_46b15d9ec8_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/15566697073_9a214b700e_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/2863863372_605e29c03e_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/16020253176_60f2a6a5ca_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3476759348_a0d34a4b59_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3780380240_ef9ec1b737_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3447650747_8299786b80_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14087860553_bf4f8ec56d.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8935477500_89f22cca03_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/1461381091_aaaa663bbe_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/12238827553_cf427bfd51_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/14414123198_24606fb32d.jpg,roses
+gs://asl-public/data/five_flowers/daisy/294451721_5106537b34.jpg,daisy
+gs://asl-public/data/five_flowers/roses/14810868100_87eb739f26_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/4525067924_177ea3bfb4.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19064700925_b93d474e37.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/410421672_563550467c.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/6482016425_d8fab362f6.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/21349789961_18ba1af5b7_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/20754920332_53b995fc63_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4573886520_09c984ecd8_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5603625247_e4ff1828af_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/15333843782_060cef3030.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/6112510436_9fe06e695a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7166567320_0a2beb6d42.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8712263493_3db76c5f82.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5635348214_a4e2b19ffe.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3742155164_14b557a51c_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14097366955_84ef6369f2.jpg,tulips
+gs://asl-public/data/five_flowers/roses/160954292_6c2b4fda65_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/10437652486_aa86c14985.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8388497874_1fe750cc95_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/476856232_7c35952f40_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4588529727_4a79c61577.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15026703621_e15e9d55f0_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7719263062_3c8a307a5d.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15683877266_42e0fe3782_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8749577087_dc2521615f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/11296320473_1d9261ddcb.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/16711791713_e54bc9c1af_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/6655078437_759fd626fd_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/15054751430_5af76f6096_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/23659122395_3467d88c02_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/21821266773_7113d34c35_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/18828283553_e46504ae38.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3584415133_a4122ab7b9.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3558517884_0c7ca8b862_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/7166564830_8b34a3fd35_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3080880039_4f1bd592e5_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2538797744_deb53ac253.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8223949_2928d3f6f6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/184682652_c927a49226_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/15240466871_ec45b65554_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8980273068_cf7e8b880a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/6267021825_a8316e0dcc_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/9216321995_83df405ea9.jpg,roses
+gs://asl-public/data/five_flowers/roses/388405293_4db1d71f21_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/8437935944_aab997560a_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/5979668702_fdaec9e164_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/155097272_70feb13184.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6994931102_4667c0352e.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/151979452_9832f08b69.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5014137563_d03eb0ed75_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/17159349572_c0c51599f7_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/142235017_07816937c6.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/15973657966_d6f6005539_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/164670176_9f5b9c7965.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/16229215579_e7dd808e9c.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4869189730_f47c124cda_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2001380507_19488ff96a_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/12873145295_438b8197a7_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2265579414_2e00a8f265_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/16155980245_6ab8d7b888.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/13916196427_50a611008f.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/17302463621_d82be11f01_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/6985099958_5249a4688b.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3510799169_0ed6ae9669_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/22405887122_75eda1872f_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/685724528_6cd5cbe203.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8838975946_f54194894e_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/16051111039_0f0626a241_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/8707349105_6d06b543b0.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3001531316_efae24d37d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/2678588376_6ca64a4a54_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5960270643_1b8a94822e_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/164671753_ab36d9cbb7_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/319298955_0c72bd36bf.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4890424315_6a59696357_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4890268276_563f40a193.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/1775233884_12ff5a124f.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5863928177_8ae1425e76_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14244410747_22691ece4a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/43474673_7bb4465a86.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14376454225_a1de336c5b.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14068200854_5c13668df9_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/22982871191_ec61e36939_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2389720627_8923180b19.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/17244252705_328e0bcda6.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5087720485_c0914fb623.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/2940221732_3507f3e927_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5811022098_2523ca4e82.jpg,tulips
+gs://asl-public/data/five_flowers/roses/13342823005_16d3df58df_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/13976191172_6f23a0b313.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/3637371174_a8dfcc1b35.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2434178332_7fcf85aa95_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5762590366_5cf7a32b87_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/9300335851_cdf1cef7a9.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4521037085_70d5802e1d_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/6970683464_f70838ca3a_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6897671808_57230e04c5_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4565255237_9ba29c4d4e_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14886860069_b84665a073.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8168031302_6e36f39d87.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/16716172029_2166d8717f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/1314069875_da8dc023c6_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/8710109684_e2c5ef6aeb_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9610374042_bb16cded3d.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4944731313_023a0508fd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/446484749_4044affcaf_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8713407768_f880df361f.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/18001393975_2a6acaabd8.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3706420943_66f3214862_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/7004645518_ff0f862eff_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14439618952_470224b89b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/16527403771_2391f137c4_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/14264136211_9531fbc144.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/6931748252_68f06086b3.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3662701865_3ff283a33a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/15358221063_2c6e548e84.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/434146736_310a42d9cb_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14054827092_f359f5fcbd_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14235021006_dd001ea8ed_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/7510262868_cf7d6f6f25_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/16833748795_b681b2839f_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/212720516_df4965ebda_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2325232198_751645d0bb_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/2294116183_a30d2aa2c1_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16138212287_643bf336e1_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/6948277038_89d7ff42e2_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2479956481_8d1a9699be_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/13881700933_69a750d418_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3751835302_d5a03f55e8_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4581199679_867652c3f1_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4895720722_8247f2015b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5570018782_c56bee942f.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/1413979148_b40d63db90_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9558628596_722c29ec60_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3734999477_7f454081aa_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/527513005_41497ca4dc.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/7222962522_36952a67b6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/6108118824_5b0231a56d.jpg,roses
+gs://asl-public/data/five_flowers/roses/272481307_1eb47ba3e0_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/7377004908_5bc0cde347_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4932736136_0115955987.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3681233294_4f06cd8903.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5546723510_39a5a10d3a_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/9158041313_7a6a102f7a_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3483303007_42e3f90da7.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8717157979_05cbc10cc1.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/7211616670_2d49ecb3a5_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/8174935013_b16626b49b.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5797606814_ccac615312_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/2777518561_105abc8cfc_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/15381511376_fd743b7330_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2482982436_a2145359e0_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15697872479_ed48e9dd73_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/6676529655_9672b6f955_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/16074109313_2cc14c7d16.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16862351376_f0fcc6fc91_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5633266048_4f4bfb2cf1_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/6606815161_3c4372760f.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/19551343954_83bb52f310_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7808430998_31ba639031_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14368895004_c486a29c1e_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7166646966_41d83cd703.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3062794421_295f8c2c4e.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5058708968_8bdcd29e63_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14396023703_11c5dd35a9.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4881402397_1c664af2f7_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/20344366953_44fb51051b.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/284497233_c19801752c.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/13942846777_5571a6b0a1_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3939135368_0af5c4982a_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/16159487_3a6615a565_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/112651128_7b5d39a346_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8454719295_4276c0e9c5_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/16462263826_2555edeb74_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7266196114_c2a736a15a_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/16970837587_4a9d8500d7.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/9965757055_ff01b5ee6f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7132605107_f5e033d725_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/12243069253_e512464095_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/18741313803_1bbf842fc6_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/4588034197_e300b0872a_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/18111636378_856027a7b8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5957007921_62333981d2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9410186154_465642ed35.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14053292975_fdc1093571_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/159079265_d77a9ac920_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/11746367_d23a35b085_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4141147800_813f660b47.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/110147301_ad921e2828.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2387025546_6aecb1b984_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14126515096_1134fae695.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/1297092593_e573c0a3d6.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8805314187_1aed702082_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/10172379554_b296050f82_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/11642632_1e7627a2cc.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/16656127943_2f70926b6c.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6125761554_4e72819ce4_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/2807106374_f422b5f00c.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20777358950_c63ea569a1.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/7186509956_c37c02fb43_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4792826628_aa5e5a9804_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4684022752_89631bd98e_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6627521877_6e43fb3c49_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/2536282942_b5ca27577e.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/1443259657_2704fab26e_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/19915160340_ec904edbdf_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/134372449_0f7166d96c_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/5076821914_c21b58fd4c_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/19551343814_48f764535f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4851353993_2cbbbd1040_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3630246240_4fee9a33db.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/9610098411_f1613c8e14.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13530786873_0d34880300_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8838914676_8ef4db7f50_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/8241471746_5d81fdd3c0_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/16967372357_15b1b9a812_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13513644515_a51470b899.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14623719696_1bb7970208_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3457017604_90e4de7480_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/15644450971_6a28298454_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14067778605_0285b7cc3a.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5416388641_c66d52d2ff_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/1392946544_115acbb2d9.jpg,daisy
+gs://asl-public/data/five_flowers/roses/7409458444_0bfc9a0682_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/11405573_24a8a838cc_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/18843967474_9cb552716b.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2621723097_736febb4a4_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/14698531521_0c2f0c6539.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8270191872_61e47ae3b8_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/6019234426_d25ea1230a_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/23247483352_0defc7a6dc_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/138166590_47c6cb9dd0.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4683997791_56e7d3c03c_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/100080576_f52e8ee070_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/10486992895_20b344ce2d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6053739964_a1d9ab3ed1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/14613443462_d4ed356201.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15674450867_0ced942941_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/18996965033_1d92e5c99e.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3761310831_41b5eba622_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14858674096_ed0fc1a130.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5193918046_d44e4fcd75_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/4290566894_c7f061583d_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/479495978_ee22cf05be.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/695778683_890c46ebac.jpg,daisy
+gs://asl-public/data/five_flowers/roses/6879112993_5a29208438_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/16258946661_f9739cdc0a.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5435513198_90ce39f1aa_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/16241101274_334b54731e.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/7376471712_e1be793f94.jpg,roses
+gs://asl-public/data/five_flowers/roses/3554620445_082dd0bec4_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/14019883858_e5d2a0ec10_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4933229197_ff75a40d55.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/9759608055_9ab623d193.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2753166154_0cb51a127b.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8926641787_d2515dfe8f_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/44079668_34dfee3da1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8713389178_66bceb71a8_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/8645839873_0151fb92bf_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/8192234807_fed4a46f1a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5492988531_574cdc2bf0_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/4764674741_82b8f93359_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4645161319_c308fc31ef_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/8081530919_c882d46bb0_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4625255191_26e17a28c9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/8174970894_7f9a26be7e.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5665838969_fe217988b9_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/10164073235_f29931d91e.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4607183665_3472643bc8.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5607983792_f8b8766ff7.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/184682095_46f8607278.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/15186434972_e353da940a.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/7884440256_91c033732d.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6199086734_b7ddc65816_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8096324039_4db2555490.jpg,roses
+gs://asl-public/data/five_flowers/daisy/14307766919_fac3c37a6b_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2294126841_e478564e77_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/6931715360_34edc5a372_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/7304710956_015b41f802_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/175638423_058c07afb9.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/14886963928_d4856f1eb6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7469617666_0e1a014917.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5995136822_8e1eed76f5_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5952223760_85972671d6_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/11441893003_ab83672800.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/477207005_6327db8393_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/19526570282_1d1e71b0f3_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/23232710191_cc57620cd5.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2478018280_1be353ca8c_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13910131718_731353d84c_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/7176723954_e41618edc1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4932735566_2327bf319a.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7205145492_baec4dbb94.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/7288989324_c25d9febbf.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2608937632_cfd93bc7cd.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3398195641_456872b48b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2480853696_aacdbb5324.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/477316928_a70a31a704_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/16482676953_5296227d40_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2019520447_48b2354a20_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8713391394_4b679ea1e3_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5772194932_60b833091f.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2076141453_c63801962a_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/21652746_cc379e0eea_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/7166606598_5d2cd307c3.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4844697927_c70d644f40_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/16645809126_613b1e3ebe_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4482623536_b9fb5ae41f_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14728922673_99086a3818_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/1240625276_fb3bd0c7b1.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/7791014076_07a897cb85_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/455728598_c5f3e7fc71_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6606741847_f0198d83ff.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/15054750690_198b6ab0f2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9651392844_77f90589ba_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2116997627_30fed84e53_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/6207492986_0ff91f3296.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/5923649444_a823e534e9.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/17357636476_1953c07aa4_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/13900486390_5a25785645_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/19813618946_93818db7aa_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/7270523166_b62fc9e5f1_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/13946048982_4e6ec56987.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3637428148_a1dcccafa9_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/16484100863_979beacb08.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/18097401209_910a46fae1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5605093210_5fecb71c61.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/6931674908_8e93bd4554.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/16817037661_2980d823e1_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8838354855_c474fc66a3_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/6363976189_e7155e5f9c.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/20658775992_1619cd0a9b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2443192475_c64c66d9c2.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/19784656639_cd7f0a4a26_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/6250363717_17732e992e_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5110104894_a52c685516_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15839183375_49bf4f75e8_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/10443973_aeb97513fc_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/39271782_b4335d09ae_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8729501081_b993185542_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2813649953_2b0f20fe94_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13561966423_e5c641fe11.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/6931489544_2f35025f7b_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/45045005_57354ee844.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/1419608016_707b887337_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/17146644679_11aff3045c.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/18474740346_ffdaa18032.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/6606813305_c992231d29_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4151883194_e45505934d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/6060576850_984176cf4f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2535769822_513be6bbe9.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/18400014056_2e4c601ed5.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4414084638_03d2db38ae.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/2399982682_16929d1f6d_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4523862714_b41b459c88.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3922005347_7b6fb82fcd.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/40411100_7fbe10ec0f_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/6948239566_0ac0a124ee_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14078067843_3573fcfc85_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2133943140_9fc7bcc9aa.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3459922572_bc8516b5fe_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8011324555_375b7b5b0a.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4061451210_1650590c6a.jpg,roses
+gs://asl-public/data/five_flowers/roses/4504220673_af754fcb40_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/10294487385_92a0676c7d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/18245124970_e68fd3f3c3.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9240129413_f240ce7866_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8722514702_7ecc68691c.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/1244774242_25a20d99a9.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3883895985_bd20198371.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/14245834619_153624f836.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/7166539842_43b7e02883.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/18587334446_ef1021909b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2374855021_21959b40c0_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/14408977935_a397e796b8_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/485266837_671def8627.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14472246629_72373111e6_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5631861819_f0eb39a357_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3554435478_1a7ab743e9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9246304620_768d1f54d7_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5979111025_3bcae48ae6_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/450128527_fd35742d44.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/15054866658_c1a6223403_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/22244161124_53e457bb66_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4858372040_52216eb0bd.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/144040769_c5b805f868.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4407065098_ef25f1ccac_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/17199499591_67b64b21ed_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16062072523_1be3c0b61f.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8603340662_0779bd87fd.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5716633491_55e6f02645_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3909587261_f8cd3e7fe7.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/14348961225_09bd803317_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8681169825_19a21c6bf5_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8475769_3dea463364_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/7510240282_87554c7418_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3210019014_1bbd8bff20_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3451646670_3eff7094b7_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5037531593_e2daf4c7f1.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/563847503_89e9756c80.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/140951103_69847c0b7c.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3146795631_d062f233c1.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/813445367_187ecf080a_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4561670472_0451888e32_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/8644003462_2272de26eb.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/15472217046_2699b25584.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/8008258043_5457dd254b_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/16988605969_570329ff20_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/2936181186_38ff43492e.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/5973488341_50bdf6cee3_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/25360380_1a881a5648.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4675532860_890504a4a3_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/505517255_cfbb6f6394.jpg,roses
+gs://asl-public/data/five_flowers/daisy/3546455114_cd2dea5e02.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/5813495998_64be1b8ab6_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5402157745_a384f0583d_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3464015936_6845f46f64.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14373114081_7922bcf765_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4258272381_65bd4b8191_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2518321294_dde5aa7c20_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/19599413676_fc9ee2640e.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3713368809_eba7fa2fbf_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/6982913043_3b873c6a25.jpg,tulips
+gs://asl-public/data/five_flowers/roses/15094168139_8f636ffa1d_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/5666286130_1dc6f66f09_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/8348621545_8f02b82662_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3419172904_7708414ae9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14255917256_84c23c572b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8723679596_391a724d4f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8695372372_302135aeb2.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/20777375650_ef854bf645.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7196683612_6c4cf05b24.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4932143849_018486cbf7.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5628970369_54eb9ed31c_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/857698097_8068a2c135_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/137126311_debe64c6a8_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/18010259565_d6aae33ca7_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/16018886851_c32746cb72.jpg,roses
+gs://asl-public/data/five_flowers/roses/19823402005_2db025dd66_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/15306268004_4680ba95e1.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/16055807744_000bc07afc_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4895122831_83db2ba2d0_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/443600168_cb08d56511.jpg,tulips
+gs://asl-public/data/five_flowers/roses/17062080069_36ac7907d2_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/22478719251_276cb094f9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/21374127408_5ffbe87bb2.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5773652803_574b51414f_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/5110102140_787d325757_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5651310874_c8be336c2b.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/18232119726_cef27eaaac_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2351637471_5dd34fd3ac_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7243478942_30bf542a2d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/13471273823_4800ca8eec.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/18195689904_46619b7e16_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/18282528206_7fb3166041.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/16862422576_5226e8d1d0.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4333085242_bbeb3e2841_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/14163875973_467224aaf5_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8706523526_a0f161b72b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8209318399_ae72aefdb5.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2087343668_ef4fb95787_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14199664556_188b37e51e.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/18635898912_eb8e058ef0.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/458011386_ec89115a19.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6080086410_17a02dcfb8.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/2243427551_809b603992_z.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14487762578_baba13d16a_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/17280886635_e384d91300_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/1314584013_fe935fdeb1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8747223572_dcd9601e99.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5884807222_22f5326ba8_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/5673551_01d1ea993e_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3236806990_a90c7bb520_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/6299498346_b9774b6500.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/4837182901_69a6cc782b_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/1342002397_9503c97b49.jpg,daisy
+gs://asl-public/data/five_flowers/roses/1485142251_ca89254442.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/14741813010_5d44e33088_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/13235124703_a7e1266e44.jpg,roses
+gs://asl-public/data/five_flowers/roses/12450781274_eb78723921.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/8966818334_483f4489be_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/2418823693_72eec80f42_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8712268519_f4c2c39a06_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5598591979_ed9af1b3e9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3459346147_faffff51c7_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/172882635_4cc7b86731_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/9726260379_4e8ee66875_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3626132563_d955973447_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14097676864_4ca8e8b20d_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/15275478257_fbd5850708_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/14421389519_d5fd353eb4.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/146242691_44d9c9d6ce_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3621011057_0d03bd171b_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/16666836810_216f50e9c3_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14861513337_4ef0bfa40d.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2535495431_e6f950443c.jpg,roses
+gs://asl-public/data/five_flowers/roses/9298314004_c1a8146521.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5133243796_44de429de5_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13514136074_ab1b827e4f.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14171673854_1208c19be3_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5886830036_2b99899c95.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3474066174_8d3b3e8f97_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2535936698_78cc03df3f_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19617643201_9922eec796.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3499837275_5f24d2f8bf_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/754248840_95092de274.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4574451859_432c856b6e_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/7749368884_1fc58c67ff_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/1793211631_68c31a74dc.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/13967344688_aa629dcdee_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/105806915_a9c13e2106_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/19508264965_d1dfb565ea_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/298670754_f25edda891.jpg,roses
+gs://asl-public/data/five_flowers/roses/3141434519_aaa64c4f65_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3844111216_742ea491a0.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3661613900_b15ca1d35d_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/7141019507_4a44c6e888_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7950892504_33142110c2.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7280227122_7ea2bef7f4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3415180846_d7b5cced14_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/2823659190_afdabee45c.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8520482921_21dd204ebd_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19004688463_12a8423109.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5714327423_50af0cffe9.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/18238604119_a5689980ee_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/15172358234_28706749a5.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/8705462313_4458d64cd4.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8713388322_e5ae26263b_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14121915990_4b76718077_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/391477275_7c2f50a1a7_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3517492544_0fd3ed6a66_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15066430311_fb57fa92b0_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5578766623_542c91dfaa_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14087425312_2b5846b570_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/27465811_9477c9d044.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/2249756775_02e693beda_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/9164924345_6b63637acf.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5768217474_f6b1eef6d5_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13197345653_0f685b3c97_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14097745904_436c4ba1b4_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/16339359979_6d742660b8_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3496258301_ca5f168306.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/19453165201_2aa747e0bf.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/9818247_e2eac18894.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/16316557109_7fc55c1cbc_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4610125337_50798408b8_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/15002906952_cab2cb29cf.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/6994931380_a7588c1192_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/18972803569_1a0634f398_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/10437929963_bc13eebe0c.jpg,daisy
+gs://asl-public/data/five_flowers/roses/14166797345_d2ab9da518.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/10617162044_8740d4dd9f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3758221664_b19116d61f.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4396642388_3081a38875_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/9381481549_5a5d503e42_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/6325571510_7544b27e57_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9481563239_01b585b41d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8079778274_f2a400f749_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5682463466_d3e641cb8b.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/8174972548_0051c2d431.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9558630626_52a1b7d702_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4042816698_578a1d599e.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3501368412_358e144d1f.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14087326141_1906d5a373_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/19153732586_9de58c8f53_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/20182559506_40a112f762.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/10386540106_1431e73086_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/779359602_30abcbf5bb_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3500121696_5b6a69effb_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/6866250080_ae80df0cd5_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3533167406_e9f4cf10bb_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/165985535_7178ce6350.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4229503616_9b8a42123c_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2693136371_dde2570813.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/126012913_edf771c564_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4634716478_1cbcbee7ca.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14027372499_30f934d24f_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4820415253_15bc3b6833_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/14266917699_91b207888e.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2470731130_089b8514f6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2077865117_9ed85191ae_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/5543457754_89c44c88de_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/1831404161_d2df86fd70.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/18304194360_2a4a0be631_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5360769702_ec28c53b9e_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14022473102_3b24ca08cb_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5249439791_196b4e7fc7.jpg,roses
+gs://asl-public/data/five_flowers/tulips/4604238410_bcec9da4a0_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/3213012716_b4c0f7db88.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3208417632_19138d8e35_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/6473543547_4fefdbd5dc.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14491997336_36ba524713.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/20619292635_9857a12d54.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2470177960_7bd67db186_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/305160642_53cde0f44f.jpg,daisy
+gs://asl-public/data/five_flowers/roses/13279526615_a3b0059bec.jpg,roses
+gs://asl-public/data/five_flowers/daisy/2646438199_b309cffd65_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/7416083788_fcb4c4f27e_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/18406629611_4d1edcf23b_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5730908127_da871df0f8.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/303858799_942b9c09e7_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/17051448596_69348f7fce_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/7144016605_e159b6c06b_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3857059749_fe8ca621a9.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/22093190909_77223e6f53_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/7191221492_610035de7c_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8717161615_4c1e403083.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4552571121_2677bcdec3.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/16938892686_3613ea68e8_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/466486216_ab13b55763.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/215798354_429de28c2d.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4553203984_9cb9312240_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14067456066_87e15792d0.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8659691170_09db83d023.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/498159452_b71afd65ba.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3512879565_88dd8fc269_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/6136947177_47ff445eb4_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/12616825773_9aa4245b57_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2883115621_4837267ea1_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5680695867_baff72fc7c.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2862944799_45bc8e7302.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/6539831765_c21b68910e_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14397276020_49f9423614.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5719416820_3060e3c1f0.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14084211971_0f921f11fe_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4872284527_ff52128b97.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/10386525695_2c38fea555_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5673112305_02fe19297b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2649404904_b7a91991bb_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/16242239484_51286673af.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/6936225976_a91b60d8c2_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/4809566219_88f9a1aea3.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8712260079_c0ff42e0e2_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/5459481183_18d2d49e44_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/6606749757_b98a4ba403.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8738317694_eca2ce3bfc_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/10128546863_8de70c610d.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3310644753_5607eb96a4_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5537794501_a0767743fd_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/107592979_aaa9cdfe78_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2426849837_baefd9a518_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3326037909_b5ae370722_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4609166128_b7ed49b40b_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3476980444_c276bea402_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7355522_b66e5d3078_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3912497870_a2f91c3a65_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5673728_71b8cb57eb.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/5110109540_beed4ed162_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2045022175_ad087f5f60_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/5674134129_2db5136cba.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/18711159980_11d3bd5042.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5060536705_b370a5c543_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/4413509121_a62879598a.jpg,roses
+gs://asl-public/data/five_flowers/roses/6241886381_cc722785af.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/459748276_69101b0cec_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/8481979626_98c9f88848_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5069564563_ae03792c3c_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/19975899671_ebc42b7865_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/451965300_619b781dc9_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4300258119_b03f2f956e.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7368449232_c99f49b2e6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5635347336_bc1400e939_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2569516382_9fd7097b9b.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2408024540_37f0be7cc0_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/488202750_c420cbce61.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/4434592930_6610d51fca_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/14399435971_ea5868c792.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8980460785_b5e6842e59_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8724252904_db9a5104df_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5623855601_ecaebdb8fe.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4589787911_851cb80157_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8035910225_125beceb98_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/2892056920_918c52889b_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/8938566373_d129e7af75.jpg,daisy
+gs://asl-public/data/five_flowers/roses/326541992_d542103ca8_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/15951588433_c0713cbfc6_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/467702445_b8676f60fb_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/1379256773_bb2eb0d95b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/7820523050_76c8caa025.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/7538403124_f2fc48750a.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3506615859_9850830cf0.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/9048307967_40a164a459_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/7176729812_7c053921fb_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13900235284_32ce563633_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13510068773_c925c5517c.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/20773528301_008fcbc5a1_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/7055500907_dcf2bb50e0.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2951375433_ae2726d9d2_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/6994351792_343e18cbf6_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/17324469461_2b318aff8d_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9213511121_836a458021_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/17367866236_61abd4d243_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/521762040_f26f2e08dd.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3171577977_8608282f04_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/145862135_ab710de93c_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/1128626197_3f52424215_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/14167534527_781ceb1b7a_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5419629292_2f06e4b295.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/14065420729_9b388bf7cb_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5529939805_1679b014e1_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/20183028616_beb937e75c_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2494436687_775402e0aa.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8980145452_efbd6e3b04.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/18876985840_7531dc8e6a.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/6347847065_83cf87333b_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/18479635994_83f93f4120.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/12395698413_c0388278f7.jpg,roses
+gs://asl-public/data/five_flowers/daisy/9321854387_5f77c926cb_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/8882282142_9be2524d38_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3292654244_4a220ab96f_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/15029936576_8d6f96c72c_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/2059172936_032ffc12aa.jpg,roses
+gs://asl-public/data/five_flowers/daisy/286875003_f7c0e1882d.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/483886997_27ee798327.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/17994129033_bbd0acba62_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2561352120_7961d8263f.jpg,daisy
+gs://asl-public/data/five_flowers/roses/1949195327_75f76c12b1.jpg,roses
+gs://asl-public/data/five_flowers/roses/2976723295_b16ab04231.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5883162120_dc7274af76_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/193878348_43571127b9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/16449467833_d82aac5749_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/489506904_9b68ba211c.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3640845041_80a92c4205_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2254152047_d3bf8903cd_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/7147367479_f7a6ef0798.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4341530649_c17bbc5d01.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4258408909_b7cc92741c_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3455026124_d66cafb9fc.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5973935729_2868f2db1f_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7042692841_f323799c0d.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8533312924_ee09412645_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3502632842_791dd4be18_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7116950607_49b19102ba_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9485002920_59af6f4cac.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5674707464_dc18de05b1.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/17844723633_da85357fe3.jpg,tulips
+gs://asl-public/data/five_flowers/roses/4754734410_94d98463a5.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/142813254_20a7fd5fb6_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/12916017805_1cde91a891_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4155914848_3d57f50fc7.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13539404903_cd113e3e9b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19622465055_2a62ebd504_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2462379970_6bd5560f4c_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9399711558_7cb9547cd3_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8622493424_877ae35ed7.jpg,roses
+gs://asl-public/data/five_flowers/daisy/14866200659_6462c723cb_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/19435491090_7af558e17e.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/147804446_ef9244c8ce_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2477986396_19da36d557_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4042180234_64cd2859c9_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/9164900485_605aa12da8.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4861391074_c3e122dab0_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/19443726008_8c9c68efa7_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/6888894675_524a6accab_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/12202373204_34fb07205b.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/18271576032_d7e2296de4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3419166382_a5e4b8fe6d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/11881770944_22b4f2f8f6_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/17249393016_093e915012_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/151898652_b5f1c70b98_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7481215720_73e40f178f_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4588904196_3c5825c7f4.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/6187740107_9813ccc41e.jpg,tulips
+gs://asl-public/data/five_flowers/roses/4713531680_1110a2fa07_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/5674127693_1ddbd81097.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4945315538_97bdd873c4.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/10043234166_e6dd915111_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3454461550_64d6e726bf_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4604272150_0c92385530_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/1426682852_e62169221f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/15516715153_08abc9bb20_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14071516088_b526946e17_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2620243133_e801981efe_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2330339852_fbbdeb7306_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4893356345_24d67eff9f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3334350831_f8755a2095_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/3465443774_6b0c75a3b1_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/6132275522_ce46b33c33_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4601270210_60136f2b87_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/9244082319_b1f7e2d8b0_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/6044710875_0459796d1b_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/17309951996_552d632cbb_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/6255593451_b8a3aa8f7a_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5670543216_8c4cb0caa8_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15069459615_7e0fd61914_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4890786831_91bb82a9e4_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7280222348_a87725ca77.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2346726545_2ebce2b2a6.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14088017343_dd158d2eb5.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4301689054_20519e5b68.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8605564823_7a59d3d92a.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5923085891_27617463fe.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3466923719_b4b6df7f8b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/16930121391_a4092ecf00_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/14921511479_7b0a647795.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/21626652132_97e1318bb8_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2641979584_2b21c3fe29_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/18243351371_5fda92ac0a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4702438868_278b9cf41c_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/2944298800_1984bd4f8a_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4933230161_12f3ee7587.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3419176626_512811d3ff.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8667746487_781af9e615_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/22416421196_caf131c9fa_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2607132536_d95198e619_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/14469481104_d0e29f7ffd.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/10686568196_b1915544a8.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5012813078_99fb977616_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/12240165555_98625b1e88_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/7196409186_a59957ce0b_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8524505868_236f4c94b5.jpg,roses
+gs://asl-public/data/five_flowers/roses/7376473742_532364cee5_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/4625089819_55c45a189c.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3998927705_af499a4f29.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/480621885_4c8b50fa11_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5596093561_09b0301136_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8904780994_8867d64155_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/19919867648_043cf02fc3.jpg,roses
+gs://asl-public/data/five_flowers/daisy/10770585085_4742b9dac3_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/171972704_389cf7a953.jpg,daisy
+gs://asl-public/data/five_flowers/roses/8394286483_69fe04cc7f.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/14648777167_1d92d403c9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3856725141_0db85f466d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14457225751_645a3784fd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/9320934277_4fb95aef5d_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/8516036987_8a06dfe1b5_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5765646947_82e95a9cc9_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4568317687_3f89622f76.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14455605089_8bbfb41cd7_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3475870145_685a19116d.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/11465213433_847c4fa261.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/17554868955_35f48516cd_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/13561912705_e5eeb41433_z.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/8928614683_6c168edcfc.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4235259239_21f2eb4f2e.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14270573963_f122c40438.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14292205986_da230467ef.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/253586685_ee5b5f5232.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9427945592_07a2676945_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3591588855_b4fd53b000.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3516271083_fba63b5861.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9564240106_0577e919da_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8684108_a85764b22d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/19440910519_cb1162470e.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/99306615_739eb94b9e_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/12243068283_ee4c2683e2_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/2767658405_1e2043f44c_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/20685027271_0e7306e7c1_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/19865728236_a62f8f445b_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/3858508462_db2b9692d1.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/3713290261_8a66de23ab.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15859434664_67bf3ef29f.jpg,roses
+gs://asl-public/data/five_flowers/tulips/11614202956_1dcf1c96a1.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/8071646795_2fdc89ab7a_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/11834945233_a53b7a92ac_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3109712111_75cea2dee6.jpg,roses
+gs://asl-public/data/five_flowers/tulips/497305666_b5d4348826_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/113902743_8f537f769b_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13562271714_d534531374.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14404468648_37903d7025_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4546316433_202cc68c55.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8980266062_8387f6cc89.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/12471791574_bb1be83df4.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7040710179_7f86a17a3c_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/1306119996_ab8ae14d72_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/6918170172_3215766bf4_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/15516736553_b169b67195_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13979098645_50b9eebc02_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/645330051_06b192b7e1.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/15275504998_ca9eb82998.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/11545123_50a340b473_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/9431896325_23bf6e8761.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13561908485_7e4f8d508b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/15268682367_5a4512b29f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7280217714_fb9ffccf2d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/1267876087_a1b3c63dc9.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5892908233_6756199a43.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3465599902_14729e2b1b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/17066862602_7530f21efe.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/132538273_335240fe5b_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19438516548_bbaf350664.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8060338380_eb6c806624_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3365850019_8158a161a8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5293283002_9b17f085f7_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8905148527_ba9f55cd78.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2502610598_b9f1b55ebd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3665455426_9cd1c3af4a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7145978709_2d1596f462.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4846786944_2832c5c8b8.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/506660896_c903cca1f0.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/162362896_99c7d851c8_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2430566689_8543552f9b.jpg,tulips
+gs://asl-public/data/five_flowers/roses/9458445402_79e4dfa89c.jpg,roses
+gs://asl-public/data/five_flowers/roses/16643944275_3cd4cd966c.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/969913643_9d5cd2fe45_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/7285188160_49d84b95a3_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/6972675188_37f1f1d6f6.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5700466891_2bcb17fa68_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4932735362_6e1017140f.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/1240624822_4111dde542.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/17990320484_93bba345d2_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/3552074420_2a0a7166db_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/17165596357_392a12391f.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8623173256_3f0eb4c506.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/1031799732_e7f4008c03.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/17851831751_35b071f4b0.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/21402054779_759366efb0_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/17075803866_aeeded2637.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/12025042086_78bafc0eb6_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16110795216_b3e44697b4_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/12240303_80d87f77a3_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/7166554924_432aaae4b2_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/169371301_d9b91a2a42.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3581252194_8c976d333a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15072973261_73e2912ef2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/14564545365_1f1d267bf1_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/16862349256_0a1f91ab53.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/17318339476_54479b6660_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3440366251_5b9bdf27c9_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15821959372_518b9dcf57_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/10437770546_8bb6f7bdd3_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/251811158_75fa3034ff.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6229634119_af5fec0a22.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5909154147_9da14d1730_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4563059851_45a9d21a75.jpg,daisy
+gs://asl-public/data/five_flowers/roses/18220342690_f1c20134bd.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/210076535_80951bc5d5.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/6103898045_e066cdeedf_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/14087947408_9779257411_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/14573732424_1bb91e2e42_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/537625768_791e973b40.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2502613166_2c231b47cb_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/538920244_59899a78f8_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/7280221020_98b473b20d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/287233531_74d4605814_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/14805304536_c321a7b061_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/12934201824_1c8b5171fb_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/16961613890_695b36aab2_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4276898893_609d11db8b.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8701999625_8d83138124.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14110616533_e04775e7b1.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3472437817_7902b3d984_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/19756232959_17cde3b9f0_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/16283125269_4cfae953f1.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/7652532108_01ef94c476.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4418204816_018375acd0_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3655527028_0fab2b547d_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/12094442595_297494dba4_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14623720226_aeeac66e0a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/14221848160_7f0a37c395.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/17224410762_402455ed8f.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3664916269_29f07c7c7b.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/1080179756_5f05350a59.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/19440805164_920b28da61_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/145303599_2627e23815_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6141199476_9b6d383fd9.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4623843480_23e3fb8dcc_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/15042911059_b6153d94e7_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9240005603_6a9b71dcea_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/14747962886_2bff6bb323_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/3784815653_5df39aa9c2_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/3711723108_65247a3170.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5863698305_04a4277401_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/16139439153_fbdee29a10_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/9369421752_db1ab2a6a4_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/3011223301_09b4e3edb7.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5043409856_395300dbe5_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/4804011140_7defedf4b7_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/19359539074_d7e32e6616_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/22255608949_172d7c8d22_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3449794006_8c289840aa.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6208857436_14a65fe4af_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4635296297_9ce69e4a6e.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3454102259_957ecd0a9b.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/864957037_c75373d1c5.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/218630974_5646dafc63_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/9611923744_013b29e4da_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/510677438_73e4b91c95_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/17243540220_65b98eb926_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4080112931_cb20b3d51a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/3475572132_01ae28e834_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/3315973481_850d2253e9_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/3829990289_c0c3821e4d_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/9359374034_21fb12d613_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3418355347_2bdcca592a.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/2894191705_a1d2d80c80.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/2756028421_b3d5eea526_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14025589299_eac64c51af_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/11944957684_2cc806276e.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4696437766_85952d0196.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2542908888_25a1c78ff0.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5434913005_409c1e8b56_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3598615130_578ed30e5f.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/6122711533_2c219f0392_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4561871220_47f420ca59_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/12406229175_82e2ac649c_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/15052586652_56a82de133_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16282277874_b92776b194.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3568925290_faf7aec3a0.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/9976515506_d496c5e72c.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4521496161_2b41d4182e.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3998275481_651205e02d.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4914793782_d0ea760791.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/479115838_0771a6cdff.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8590442797_07fa2141c0_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/6983113346_21551e1b52_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8622237974_b362574785_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5398569540_7d134c42cb_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/3897174387_07aac6bf5f_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/15784493690_b1858cdb2b_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/15380755137_a2e67839ab_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/9517326597_5d116a0166.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4713958242_fbcfe9a61b_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/2443095419_17b920d155_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/16492248512_61a57dfec1_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/17029965300_8e755c2214_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5736328472_8f25e6f6e7.jpg,roses
+gs://asl-public/data/five_flowers/roses/16670921315_0fc48d7ab2_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/193874852_fb633d8d00_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/15054866898_60ee50ec6b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2635422362_a1bf641547_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4510350093_3700064215.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8647874151_aac8db2588_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8572847041_d0cc07861f_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/12548574923_5e90f4ceea.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/6606809995_edee55b770_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4258272073_f616d1e575_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8908062479_449200a1b4.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/22196426956_eca94f6faa_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5024965767_230f140d60_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4951581805_b049304f1b_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/23894449029_bf0f34d35d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/16237158409_01913cf918_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/510698601_9f61d6f8d8.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14761980161_2d6dbaa4bb_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/118974357_0faa23cce9_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4664767140_fe01231322_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3005677730_2662753d3f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5208680166_c4372477ef_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2927020075_54c9186797_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5718781677_d5e9267115_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/4609168052_3d4e1d3804_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14266093711_66d18a1e44_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14957470_6a8c272a87_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4191299785_a4faca9b74_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/16265883604_92be82b973.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/17276354745_2e312a72b5_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5556633113_0a04f5ed8a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5607256228_2294c201b3.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8716513637_2ba0c4e6cd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/459042023_6273adc312_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/3560426426_1c66cb8330.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5435522104_1d6a61b431_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4622115595_a0de9f2013_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/9345273630_af3550031d.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8712266605_3787e346cd_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/244074259_47ce6d3ef9.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8956863946_f96be02aae_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/6208851904_9d916ebb32_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/9599534035_ae4df582b6.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/14200639491_2a4611916d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/21657726011_2c94e341bc_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/15602874619_03fd934bed.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2596413098_7ef69b7e1d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3253243865_435c1f2c2b_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/7148085703_b9e8bcd6ca_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8733586143_3139db6e9e_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/10946896405_81d2d50941_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3238068295_b2a7b17f48_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5896354497_6a19162741.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/13910471347_30c8bf4de1_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3026375835_a20ecdd140_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4540555191_3254dc4608_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3730618647_5725c692c3_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5799616059_0ffda02e54.jpg,roses
+gs://asl-public/data/five_flowers/tulips/13910028149_6c9d5485ef.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/6884975451_c74f445d69_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/15760811380_4d686c892b_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/6529588249_d9cbe68aab_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/4657354814_f368762c53_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/17719248689_cfd5d2f228_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3562861685_8b8d747b4d.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/6931708704_fccb06fea8.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13999402743_f563f6b685_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9497774249_7f5ae70927_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/7820398908_4316bbba45.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14067476586_36bcddf111.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/130684927_a05164ba13_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2447151631_7551e6377b_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3749090865_b90f28a585_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/7012366081_019c8a17a4_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/7132676187_7a4265b16f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14202166370_e989588332.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8748402330_c00f9fbf7f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/9030467406_05e93ff171_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4933823194_33f6e32c5a.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/2625836599_03e192266f.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3456403987_5bd5fa6ece_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4676527148_d701b9202f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/420216121_3ee33723d7_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/1757822526_fe30b9b3ca_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/13264214185_d6aa79b3bd.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/8689302980_9bd2f7b9fe_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14061132852_89122de5f9_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5670916806_df4316006f_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/12471441503_d188b5f31a_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/8478248531_1a16e232b5.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/16680927427_07ca6e4552_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/2481015475_b71a12917d.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19506262462_d0945c14a6.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/6480809573_76a0074b69_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/5653364300_bc557236c7_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3699235066_fc09a02dfe_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/10993818044_4c19b86c82.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8989067485_aab399460b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14901528533_ac1ce09063.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/15005530987_e13b328047_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/1798082733_b8080b1173_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2521408074_e6f86daf21_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/6409000675_6eb6806e59.jpg,roses
+gs://asl-public/data/five_flowers/daisy/6910811638_aa6f17df23.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4356781875_92c5cd93c0.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5874818796_3efbb8769d.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/12998979765_3de89e7195_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/578938011_34918b1468.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/476857510_d2b30175de_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/19544831049_0d738d4872_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/7176736574_14446539cb_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/19613308325_a67792d889.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5430796647_f21b7b0fea.jpg,tulips
+gs://asl-public/data/five_flowers/roses/8035908422_87220425d2_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/16209331331_343c899d38.jpg,roses
+gs://asl-public/data/five_flowers/roses/3422228549_f147d6e642.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/8687729737_a7fbeded2c_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/3530495617_fd84fb321a_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5796562389_ae43c83317_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/18237215308_a158d49f28_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3021333497_b927cd8596.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7425858848_d04dab08dd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14283011_3e7452c5b2_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4633514720_22e82c5f7c_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8949720453_66e8304c30.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3530500952_9f94fb8b9c_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14487705209_ea723109e1_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16594995743_ce72c61201_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/13929462317_96342a9a44.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/8475758_4c861ab268_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4222584034_8964cbd3de.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/54377391_15648e8d18.jpg,daisy
+gs://asl-public/data/five_flowers/roses/3278709893_ba4956a572_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/3524204544_7233737b4f_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/102841525_bd6628ae3c.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5602220566_5cdde8fa6c_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14015957646_8317a0f1d9_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/15147473067_7c5498eb0e_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/13901930939_a7733c03f0_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4256169180_55df2048a0.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/9339697826_88c9c4dc50.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20407896403_a50fef58ac_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5086249859_d066b37b8a_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5794835_d15905c7c8_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/7586498522_4dcab1c8d2_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/3469112805_6cc8640236.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/16863587471_cc3a6ffb29_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7094415739_6b29e5215c_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/12764617214_12211c6a0c_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3921794817_276eb4386b.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8702982836_75222725d7.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/10094729603_eeca3f2cb6.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/7046815693_f159e96acd_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2498632196_e47a472d5a.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/2481823240_eab0d86921.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/493696003_f93ffb3abd_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/483097906_2c35054346.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/8249000137_eddfffa380_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/7270375648_79f0caef42_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/3494265422_9dba8f2191_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/9161647994_e39b65cb9c_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4522764992_e9d70b82c1_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9309473873_9d62b9082e.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9111896677_ff0b6fa6f6_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/6950609394_c53b8c6ac0_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/503770507_f397245a6a.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3749091071_c146b33c74_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/463736819_f779800165.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8223968_6b51555d2f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4804434999_bf2187e96a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/9167147034_0a66ee3616_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5110110938_9da91455c4_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/13953307149_f8de6a768c_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/21195621914_a5bdbb203d.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/6950173662_5e9473003e_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/4144275653_7c02d47d9b.jpg,daisy
+gs://asl-public/data/five_flowers/roses/2535466143_5823e48b63.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4514343281_26781484df.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5715788902_9dd2b4ef1d.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4848279231_c4960e28b2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/80846315_d997645bea_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5948835387_5a98d39eff_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/16702117379_c25bff70e9.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2551708158_1f10e81e11.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/1044296388_912143e1d4.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14014595475_5892fcda51_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/13231224664_4af5293a37.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14087792403_f34f37ba3b_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3539077354_c67aa7168d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8613502159_d9ea67ba63.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8712267391_c756f18ee7_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/2480569557_f4e1f0dcb8_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2698102820_f15445a3f7.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5061135742_2870a7b691_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/9939430464_5f5861ebab.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8712270243_8512cf4fbd.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/148698493_5710e5f472.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/2803725948_5fd1f2fc99_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/391364010_4b0942d400_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/17220096449_0e535989f0_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/18679421522_3be9879e32.jpg,daisy
+gs://asl-public/data/five_flowers/roses/1446090416_f0cad5fde4.jpg,roses
+gs://asl-public/data/five_flowers/roses/6690926183_afedba9f15_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/16098264209_38fe491093.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3594967811_697184b026_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/15452909878_0c4941f729_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3526860692_4c551191b1_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/14312910041_b747240d56_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/518256494_368a72db37.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/19442589512_e733cfea0f.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/1150395827_6f94a5c6e4_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/18582579815_4c6637e9ff_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5721768347_2ec4d2247b_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/2197754124_5c8a146761_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2161283279_02ea3ff8d4.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/1666341535_99c6f7509f_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8750288831_5e49a9f29b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8194560480_bfc1fb5801.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14925398441_107f3e0304_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/13734221225_0e04edc6b6.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/10919961_0af657c4e8.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/1217254584_4b3028b93d.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/9922116524_ab4a2533fe_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/8708143485_38d084ac8c_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/394990940_7af082cf8d_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/20871601265_daa4be4291_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9904127656_f76a5a4811_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/151385302_f8980a257f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5643666851_dc3f42399d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/909277823_e6fb8cb5c8_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/2642408410_61545fdc83_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/17781940352_a45e4289a5.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3412874275_ca78ee024d_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/13539827514_79b60b6c22_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/921252114_91e334b950.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/14144522269_bc20029375_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3991423020_9aaf2b5974_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3971662839_5cb2963b20_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/2735666555_01d53e74fe.jpg,roses
+gs://asl-public/data/five_flowers/tulips/3422915985_9bf7264d36.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2501297526_cbd66a3f7e_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/4694734757_5c563d38dd_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13509973805_bda5fa8982.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2831102668_eb65cd40b9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4082856478_741a411ebb.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/16937554595_3e1de22f9c.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2065522422_cfdd80044a_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/2333321040_3960b9d67e_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/16699732794_5bfd639cf8_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13530796853_e5993f57d6_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/8202034834_ee0ee91e04_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/265422922_bbbde781d2_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/6989946990_62c639ff16_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14078067903_92f5eb27ff.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5043225469_0aa23f3c8f_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4574737576_044403a997_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5875763050_82f32f2eed_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8981659922_7b1be892e7_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/1353748522_b9c630b162.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9460336948_6ae968be93.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/12165480946_c4a3fe182d_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/1273326361_b90ea56d0d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/402525114_eaa60c8341_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/13651218133_b6eb8e7ed2_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3533954656_79156c8473.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/15149373026_93aacc65c5.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/21728822928_9f6817325a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/9111669902_9471c3a49c_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4821232343_7e0bcfbfdf_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/3386988684_bc5a66005e.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/11023272144_fce94401f2_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8838983024_5c1a767878_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7184780734_3baab127c2_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/22385375599_1faf334f5d_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/19617425002_b914c1e2ab.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5623010186_796ca8d29a.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3410906335_37e8a24b1c_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/3894586562_5dbbdc4354_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5135131051_102d4878ca_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/8713357842_9964a93473_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/20825078671_90b0389c70_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/13530687085_9b515735ef_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14306875733_61d71c64c0_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6140892289_92805cc590.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/14845607659_1be18c5d7f.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/100930342_92e8746431_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/17165583356_38cb1f231d_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8521597402_4b6169ba05.jpg,tulips
+gs://asl-public/data/five_flowers/roses/2949945463_366bc63079_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/3627678863_557552c879_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/7820305664_82148f3bfb_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3848405800_8eea982c40.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4580206494_9386c81ed8_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/10995953955_089572caf0.jpg,tulips
+gs://asl-public/data/five_flowers/roses/16149016979_23ef42b642_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/18276105805_d31d3f7e71.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3697780051_83e50a6dd1_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/20022771089_3cc7e5086d_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/267148092_4bb874af58.jpg,daisy
+gs://asl-public/data/five_flowers/roses/21413573151_e681c6a97a.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4745985619_249078cafa_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/10777398353_5a20bb218c.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/10163955604_ae0b830975_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8797114213_103535743c_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5840476802_dfa40deb1f_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/19067907051_16d530c7d2.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8663932737_0a603ab718_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/17305246720_1866d6303b.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/10477378514_9ffbcec4cf_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/13968424321_1d89b33a9f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2619413565_61a6cd3ac9_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/13920113_f03e867ea7_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/1008566138_6927679c8a.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/22183521655_56221bf2a4_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/413815348_764ae83088.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/8234846550_fdaf326dbe.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/14221836990_90374e6b34.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/5994586159_1dd99d66b4_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5148639829_781eb7d346.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/2307673262_e1e1aefd29.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/20289938802_e16fa9f23d.jpg,daisy
+gs://asl-public/data/five_flowers/roses/9216323421_f737c1d50e.jpg,roses
+gs://asl-public/data/five_flowers/tulips/133692329_c1150ed811_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/4550117239_5907aaba4c.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/5665834973_76bd6c6523_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/4746643626_02b2d056a2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/9216286876_289a4779f7.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7082476907_99beef0dde.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4878447831_e904c60cf8_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8036594516_69a7da5f73_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/1801614110_bb9fa46830.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/5628515159_6b437ff1e5_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/17012955700_7141d29eee.jpg,tulips
+gs://asl-public/data/five_flowers/roses/15060816740_68e1b2c31b.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/2979297519_17a08b37f6_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4814515275_6e25a6c18f.jpg,daisy
+gs://asl-public/data/five_flowers/roses/1540738662_7b4152e344_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/1656856503_447e5b0f03.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/17907238905_1ae121f8d9_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8619064872_dea79a9eb9.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/8368015811_2893411cf7_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/5727534342_419604c177_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4587872443_a86c692cb8.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9206376642_8348ba5c7a.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/5007598545_90e08e81c1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/4325834819_ab56661dcc_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/315645471_dda66c6338_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5434901893_4550be3f84_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/2713683760_d98cd2a05b_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/9353111163_7a89b2df35_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/2889325612_f2fc403ff0_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4765063233_f64440c20b.jpg,roses
+gs://asl-public/data/five_flowers/roses/7302931078_30054c1970_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/4248222578_b4d5868b32.jpg,roses
+gs://asl-public/data/five_flowers/tulips/7166550328_de0d73cfa9.jpg,tulips
+gs://asl-public/data/five_flowers/roses/4723876257_d87b781986.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8689672277_b289909f97_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/15147464747_594599c855_m.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16951623209_00fb7ec1b1_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/9497774935_a7daec5433_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4281102584_c548a69b81_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5159317458_bbb22e2f65_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3505026222_c760df0035_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/17482158576_86c5ebc2f8.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/8292914969_4a76608250_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/1756973583_4aac7df00d_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/23204123212_ef32fbafbe.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6042014768_b57f0bfc79_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/9947374414_fdf1d0861c_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/4666648087_b10f376f19.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/8831808134_315aedb37b.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5970300143_36b42437de_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/197011740_21825de2bf.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6953297_8576bf4ea3.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5632774792_0fa33d17eb_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/14147016029_8d3cf2414e.jpg,daisy
+gs://asl-public/data/five_flowers/roses/16476788181_0e2ffc719a.jpg,roses
+gs://asl-public/data/five_flowers/tulips/17094167287_865840060d_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/4900231976_f8ced2b42a_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4669006062_6b3d260037_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/14485782498_fb342ec301.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3105702091_f02ce75226.jpg,tulips
+gs://asl-public/data/five_flowers/roses/5897035797_e67bf68124_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/14060367700_fe87e99b6a_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/7179487220_56e4725195_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4510938552_6f7bae172a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3104672186_5f75647448_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/8174941335_56389b53e9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5223191368_01aedb6547_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/9702378513_229a96b754_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/116343334_9cb4acdc57_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4624036600_11a4744254_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5060519573_c628547e20_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/1386449001_5d6da6bde6.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5623492051_8e5ce438bd.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3451177763_729a4d54af_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3461986955_29a1abc621.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3065719996_c16ecd5551.jpg,roses
+gs://asl-public/data/five_flowers/daisy/7630511450_02d3292e90.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/5811004432_266f0f0c6f.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/517054467_d82d323c33_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/8063844363_db3f4dea85.jpg,daisy
+gs://asl-public/data/five_flowers/roses/4363734507_5cc4ed6e01.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/5526324308_b333da0e57_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/15049902081_dd85361f8c_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/45045003_30bbd0a142_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/8014735546_3db46bb1fe_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/4610018126_21f438d2dc_m.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/4131565290_0585c4dd5a_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/17908793211_ff0f1f81d3_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/5923085671_f81dd1cf6f.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/14335561523_f847f2f4f1.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/2706304885_4916102704_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/14046760909_0c73e84a1f_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13513846963_c3d5e9fb1d_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/16143151468_4f3c033e33.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/15495578821_92c6d14252_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5332550500_ab341aefd8.jpg,roses
+gs://asl-public/data/five_flowers/roses/19566556880_476c66c5ee_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/437859108_173fb33c98.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/12584810723_c97d00fcfd.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/6596277835_9f86da54bb.jpg,daisy
+gs://asl-public/data/five_flowers/roses/2392457180_f02dab5c65.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/14829055_2a2e646a8f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/501987288_c69c4e0c90_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/7179796338_05e8b1c87b.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/9346508462_f0af3163f4.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4562516418_8ccb8c103f.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/17720403638_94cfcd8d5c_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/8642679391_0805b147cb_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/15207766_fc2f1d692c_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/5853276960_d08f90fff6.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13857267684_d2a4b2630f_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/6111589202_8b9555364c_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2634665077_597910235f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/8980164828_04fbf64f79_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3705716290_cb7d803130_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/6876631336_54bf150990.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3451637528_b245144675_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4989952542_35f2cdd5e2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6074427492_1b5bab7848_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/20622485918_90fc000c86_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/10683189_bd6e371b97.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/16819071290_471d99e166_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/9338237628_4d2547608c.jpg,roses
+gs://asl-public/data/five_flowers/roses/8063462557_e0a8bd6c64_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/14621687774_ec52811acd_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15822837396_96b392fda8_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/10994032453_ac7f8d9e2e.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/10779476016_9130714dc0.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/488849503_63a290a8c2_m.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/1064662314_c5a7891b9f_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/17135145776_4c2ec21b05_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/175106495_53ebdef092_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/17747738311_5014b1f77f.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4275776457_d04b597cfa_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/5043409092_5b12cc985a_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/9286947622_4822f4fc21.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/18999743619_cec3f39bee.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3695826945_9f374e8a00_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14651385476_7ccb20e594_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7153497513_076486e26b_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8713398614_88202e452e_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14375349004_68d893254a_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14674389605_df3c0bcfa1_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/14167543177_cd36b54ac6_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/5032376020_2ed312306c.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/5634767665_0ae724774d.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/7728953426_abd179ab63.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/1596293240_2d5b53495a_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/3510294699_bc4c72cb7d_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/7320089276_87b544e341.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/2489438981_4eb60ef98f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/5602738326_97121e007d_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/574373182_2776669a79_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4933229561_881d4673e7_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/3576488381_611f3446e0_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4932144003_cbffc89bf0.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/14154164774_3b39d36778.jpg,roses
+gs://asl-public/data/five_flowers/tulips/6998661030_46cbb7892a.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4556178143_e0d32c0a86_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3145692843_d46ba4703c.jpg,roses
+gs://asl-public/data/five_flowers/tulips/146884869_b1a8fa9c4e_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2535727910_769c020c0d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3445110406_0c1616d2e3_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/5981645737_29eceac291_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/10503217854_e66a804309.jpg,roses
+gs://asl-public/data/five_flowers/tulips/7448453762_aea8739f1b.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/19586799286_beb9d684b5.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8960904651_9a0b727258.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/2816503473_580306e772.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/17189456156_6fc1067831.jpg,tulips
+gs://asl-public/data/five_flowers/roses/17040847367_b54d05bf52.jpg,roses
+gs://asl-public/data/five_flowers/daisy/8489463746_a9839bf7e4.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14017640283_c417141832_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/2634666217_d5ef87c9f7_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/17700322054_1c4fdaa034_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/14090546015_504c8becd1.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/8712267813_f7a9be2ec5.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/1195255751_d58b3d3076.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3511104954_54eace015c_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3634244527_e72c47842c_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/5470898169_52a5ab876c_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/16677199221_eab3f22378_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4265711814_9a006ee5b8.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/721595842_bacd80a6ac.jpg,daisy
+gs://asl-public/data/five_flowers/roses/850416050_31b3ff7086.jpg,roses
+gs://asl-public/data/five_flowers/daisy/12348343085_d4c396e5b5_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15820572326_be2ea4a55c_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/10559679065_50d2b16f6d.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/16766166609_ccb8344c9f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4838669164_ffb6f67139.jpg,tulips
+gs://asl-public/data/five_flowers/roses/6209630964_e8de48fe04_m.jpg,roses
+gs://asl-public/data/five_flowers/daisy/153210866_03cc9f2f36.jpg,daisy
+gs://asl-public/data/five_flowers/roses/6969041818_a505baa68e_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/14128835667_b6a916222c.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/16904202259_8f45d045c3_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/6166888942_7058198713_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/38287568_627de6ca20.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/6799076717_575944af91_m.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/3846907701_e13b66aa87.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/14088053307_1a13a0bf91_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/9533964635_f38e6fa3c3.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/5598845098_13e8e9460f.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3951246342_930138610b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/24459750_eb49f6e4cb_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/9200211647_be34ce978b.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/8964198962_6d8593b533.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/5674167473_ac696c8989_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3098641292_76c908ba1f_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/7345657862_689366e79a.jpg,roses
+gs://asl-public/data/five_flowers/daisy/2213954589_c7da4b1486.jpg,daisy
+gs://asl-public/data/five_flowers/roses/2300959680_8d22fa5ee2.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/17077940105_d2cd7b9ec4_n.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2611119198_9d46b94392.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/10841136265_af473efc60.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/9853885425_4a82356f1d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/3196753837_411b03682d_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7205698252_b972087cc2.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/14244273988_a7484f18b7_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20406385204_469f6749e2_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4942258704_c4146b710a_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/176284193_8fa1710431_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14073608876_49db8ac97d_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/2723995667_31f32294b4.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/15054752730_fcf54d475e_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/133960364_d87f883c15_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4164845062_1fd9b3f3b4.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/2273917656_6d6c038283.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/17344936845_fec4d626b7.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2465442759_d4532a57a3.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/14402451388_56545a374a_n.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5526964611_76ef13025c_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2598486434_bf349854f2_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/17148843706_df148301ac_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/20258015499_93b9951800_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/14172324538_2147808483_n.jpg,roses
+gs://asl-public/data/five_flowers/roses/16374919860_4e445de29f_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/14460075029_5cd715bb72_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/7047408023_6e98fd1e3f.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/3696596109_4c4419128a_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/835750256_3f91a147ef_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4571923094_b9cefa9438_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5698944116_fd35fe6bea.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7247192002_39b79998f0_n.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/6140661443_bb48344226.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/17466568484_9128287148.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4440480869_632ce6aff3_n.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/8071460469_a7c2c34b97_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/9120905231_329598304e.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/16303377824_6e9128b4bd.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/425800274_27dba84fac_n.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/17147436650_c94ae24004_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13903937027_44b9f2f5b8.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/18378581986_5cd1494d08_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/1353279846_7e6b87606d.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/13472387874_d844478dbb.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4877195645_791c3a83b9_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/6198569425_e953b9e6cc_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/13648603305_1268eda8b7_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/18996760154_58d3c48604.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/2516714633_87f28f0314.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8747396730_966149e6fe_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4818994715_9d90527d18_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/12193032636_b50ae7db35_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/13910544560_9140dd547e.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/15458787091_3edc6cd1eb.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/495098110_3a4bb30042_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/23192507093_2e6ec77bef_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/4590702749_e1df8e0c1b.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/7481204112_e3c57dd40a_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/3873271620_1d9d314f01_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4134441089_c8c1e6132a.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/5644061265_e02135f028_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14053397367_75cba846eb_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4654893119_45d232016b.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/23645265812_24352ff6bf.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/12916135413_dafcf3089e_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14576445793_582aa6446b_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/4065283966_9504b98269.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2683330456_0f7bbce110_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/4933823300_39fd4420b6.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3912497888_e7a5905bc3_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/26254755_1bfc494ef1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/4292443009_3a2831b0b9_m.jpg,roses
+gs://asl-public/data/five_flowers/roses/6363951285_a802238d4e.jpg,roses
+gs://asl-public/data/five_flowers/roses/12572786553_634868f7f2_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/7410356270_9dff4d0e2e_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14024864234_713158c27f_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6400843175_ef07053f8f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/15218871222_c104032ca1.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8737699225_19e0c9f0fa_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4574736702_b15ecf97d0_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4669117051_ce61e91b76.jpg,daisy
+gs://asl-public/data/five_flowers/roses/7551637034_55ae047756_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/17066864992_1cbc4fc908.jpg,tulips
+gs://asl-public/data/five_flowers/roses/494803274_f84f21d53a.jpg,roses
+gs://asl-public/data/five_flowers/tulips/16582481123_06e8e6b966_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/3704305945_a80e60e2f6_m.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/141935731_d26d600f4f_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8713397358_0505cc0176_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/4530848609_02a1d9b791.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/8265023280_713f2c69d0_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/3311874685_7b9ef10f7e_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/8382667241_0f046cecdb_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14097111174_87a2e7e0c7_n.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/164672339_f2b5b164f6.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/21805938544_bf6bb0e4bc.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/7924174040_444d5bbb8a.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3474942718_c418dae6f1.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15312360171_57bde98799_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/4847062576_bae870479c_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/4562423077_00b16240dc_n.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/14330343061_99478302d4_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/3614805920_7a6610aa4b_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/130684941_d1abfa3be6_m.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/9242705328_eee8402a8d.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/3509307596_6cfe97867d_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3502615974_ef4bd13202_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/13472393854_b2530f7029_n.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/14093907931_dd8f642574.jpg,tulips
+gs://asl-public/data/five_flowers/roses/8775267816_726ddc6d92_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/134409839_71069a95d1_m.jpg,daisy
+gs://asl-public/data/five_flowers/roses/5731750490_ba3325b7ee_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/3446018470_0c40e73ed6_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/14076873230_d0bd53b220.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14097328354_4f1469a170.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/10555815624_dc211569b0.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/5357144886_b78f4782eb.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/5578760521_e54aca6bed_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/5881907044_92a85a05c8_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/9617087594_ec2a9b16f6.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/19691175559_ef12b8b354_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/8712282563_3819afb7bc.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/7262863194_682209e9fb.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5083072098_81587295d5.jpg,roses
+gs://asl-public/data/five_flowers/roses/6867597533_d65d1c39fb_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4657801292_73bef15031.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/2579018590_74359dcf1a_m.jpg,daisy
+gs://asl-public/data/five_flowers/sunflowers/8929288228_6795bcb1fe.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/235651658_a7b3e7cbdd.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/40410686_272bc66faf_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/15054864058_2edca122a9_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/8524505546_b242bd4928_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/2949654221_909b0c86a1_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4110787181_f73f12d107_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/4553266758_09d4dbdac9_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/20621698991_dcb323911d.jpg,sunflowers
+gs://asl-public/data/five_flowers/roses/229488796_21ac6ee16d_n.jpg,roses
+gs://asl-public/data/five_flowers/daisy/3963330924_6c6a3fa7be_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/14093565032_a8f1e349d1.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5757091018_cdfd79dfa6_m.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/6983105424_f33cc9b08d_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/3773181799_5def396456.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/674407101_57676c40fb.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/18970601002_d70bc883a9.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/4558562689_c8e2ab9f10.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/2609353769_dc3654f12f.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/17047231499_bd66c23641.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/16334786972_1b3e71cab8_m.jpg,roses
+gs://asl-public/data/five_flowers/tulips/8555123165_2fe57eff4f.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/6133988570_9dc778e622_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4895721242_89014e723c_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/5997702776_c7bc37aa6b_n.jpg,daisy
+gs://asl-public/data/five_flowers/daisy/3633489595_a037a9b7a4_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/2426847695_4b8409402e_n.jpg,tulips
+gs://asl-public/data/five_flowers/roses/14683774134_6367640585.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/4714026966_93846ddb74_m.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/854593001_c57939125f_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/5172171681_5934378f08.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/2495749544_679dc7ccef.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/23356825566_f5885875f2.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/19600096066_67dc941042.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/3292434691_392071d702_n.jpg,roses
+gs://asl-public/data/five_flowers/tulips/4395433872_e073d8c721_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/22785985545_95464115b0_m.jpg,dandelion
+gs://asl-public/data/five_flowers/sunflowers/20965412955_2c640b13bd.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/15082212714_ff87e8fcb1_m.jpg,tulips
+gs://asl-public/data/five_flowers/roses/4998708839_c53ee536a8_n.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/8719032054_9a3ce4f0ff.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/4697206799_19dd2a3193_m.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/15275144259_f9a18ec9cb.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/22203670478_9ec5c2700b_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/4633792226_80f89c89ec_m.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/15537825851_a80b6321d7_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/5223643767_d8beb7e410.jpg,sunflowers
+gs://asl-public/data/five_flowers/sunflowers/4895721788_f10208ab77_n.jpg,sunflowers
+gs://asl-public/data/five_flowers/tulips/8712269349_2b933da2b8_n.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/14002252932_64d5cbdac7.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/909609509_a05ccb8127.jpg,daisy
+gs://asl-public/data/five_flowers/roses/14414100710_753a36fce9.jpg,roses
+gs://asl-public/data/five_flowers/roses/4648680921_80dfc4f12a.jpg,roses
+gs://asl-public/data/five_flowers/roses/269037241_07fceff56a_m.jpg,roses
+gs://asl-public/data/five_flowers/dandelion/6994933428_307b092ce7_m.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/3002863623_cd83d6e634.jpg,tulips
+gs://asl-public/data/five_flowers/tulips/5552198702_35856ed8ec.jpg,tulips
+gs://asl-public/data/five_flowers/dandelion/5598014250_684c28bd5c_n.jpg,dandelion
+gs://asl-public/data/five_flowers/tulips/14068348874_7b36c99f6a.jpg,tulips
+gs://asl-public/data/five_flowers/daisy/9054268881_19792c5203_n.jpg,daisy
+gs://asl-public/data/five_flowers/tulips/4599815420_8ee42c2382.jpg,tulips
+gs://asl-public/data/five_flowers/sunflowers/4528959364_fa544b0f4e_m.jpg,sunflowers
+gs://asl-public/data/five_flowers/dandelion/8757650550_113d7af3bd.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/9262004825_710346cde9_n.jpg,dandelion
+gs://asl-public/data/five_flowers/roses/8692040971_826614516f_n.jpg,roses
+gs://asl-public/data/five_flowers/sunflowers/127192624_afa3d9cb84.jpg,sunflowers
+gs://asl-public/data/five_flowers/daisy/2057816617_18448093d0_n.jpg,daisy
+gs://asl-public/data/five_flowers/dandelion/4847150510_7a5db086fa.jpg,dandelion
+gs://asl-public/data/five_flowers/dandelion/18803577858_fd0036e1f5_m.jpg,dandelion
+gs://asl-public/data/five_flowers/daisy/20329326505_a777c71cc2.jpg,daisy
+gs://asl-public/data/five_flowers/roses/15699509054_d3e125286f_n.jpg,roses
diff --git a/notebooks/image_models/dataset_import_files/salads.csv b/asl_core/notebooks/image_models/dataset_import_files/salads.csv
similarity index 100%
rename from notebooks/image_models/dataset_import_files/salads.csv
rename to asl_core/notebooks/image_models/dataset_import_files/salads.csv
diff --git a/notebooks/image_models/dreambooth_utils/create_a100_notebook.sh b/asl_core/notebooks/image_models/dreambooth_utils/create_a100_notebook.sh
similarity index 100%
rename from notebooks/image_models/dreambooth_utils/create_a100_notebook.sh
rename to asl_core/notebooks/image_models/dreambooth_utils/create_a100_notebook.sh
diff --git a/notebooks/image_models/dreambooth_utils/prior_generator.ipynb b/asl_core/notebooks/image_models/dreambooth_utils/prior_generator.ipynb
similarity index 99%
rename from notebooks/image_models/dreambooth_utils/prior_generator.ipynb
rename to asl_core/notebooks/image_models/dreambooth_utils/prior_generator.ipynb
index db30b4586..d0b187f32 100644
--- a/notebooks/image_models/dreambooth_utils/prior_generator.ipynb
+++ b/asl_core/notebooks/image_models/dreambooth_utils/prior_generator.ipynb
@@ -2653,9 +2653,9 @@
"uri": "gcr.io/deeplearning-platform-release/tf2-gpu.2-12:m110"
},
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "ASL Core",
"language": "python",
- "name": "python3"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/1_mnist_linear_dnn.ipynb b/asl_core/notebooks/image_models/labs/1_mnist_linear_dnn.ipynb
similarity index 99%
rename from notebooks/image_models/labs/1_mnist_linear_dnn.ipynb
rename to asl_core/notebooks/image_models/labs/1_mnist_linear_dnn.ipynb
index 3d70eb134..497e1ed59 100644
--- a/notebooks/image_models/labs/1_mnist_linear_dnn.ipynb
+++ b/asl_core/notebooks/image_models/labs/1_mnist_linear_dnn.ipynb
@@ -439,9 +439,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/2_mnist_cnn.ipynb b/asl_core/notebooks/image_models/labs/2_mnist_cnn.ipynb
similarity index 99%
rename from notebooks/image_models/labs/2_mnist_cnn.ipynb
rename to asl_core/notebooks/image_models/labs/2_mnist_cnn.ipynb
index 5c9a8c52d..26c119d93 100644
--- a/notebooks/image_models/labs/2_mnist_cnn.ipynb
+++ b/asl_core/notebooks/image_models/labs/2_mnist_cnn.ipynb
@@ -503,9 +503,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/3_transfer_learning_fine_tuning.ipynb b/asl_core/notebooks/image_models/labs/3_transfer_learning_fine_tuning.ipynb
similarity index 99%
rename from notebooks/image_models/labs/3_transfer_learning_fine_tuning.ipynb
rename to asl_core/notebooks/image_models/labs/3_transfer_learning_fine_tuning.ipynb
index 4029f4bdc..bbb74c9ce 100644
--- a/notebooks/image_models/labs/3_transfer_learning_fine_tuning.ipynb
+++ b/asl_core/notebooks/image_models/labs/3_transfer_learning_fine_tuning.ipynb
@@ -665,9 +665,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/autoencoder_anomaly_detection.ipynb b/asl_core/notebooks/image_models/labs/autoencoder_anomaly_detection.ipynb
similarity index 99%
rename from notebooks/image_models/labs/autoencoder_anomaly_detection.ipynb
rename to asl_core/notebooks/image_models/labs/autoencoder_anomaly_detection.ipynb
index 2a86636bb..59b6c83c8 100644
--- a/notebooks/image_models/labs/autoencoder_anomaly_detection.ipynb
+++ b/asl_core/notebooks/image_models/labs/autoencoder_anomaly_detection.ipynb
@@ -702,9 +702,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/classification_automl_vision.ipynb b/asl_core/notebooks/image_models/labs/classification_automl_vision.ipynb
similarity index 99%
rename from notebooks/image_models/labs/classification_automl_vision.ipynb
rename to asl_core/notebooks/image_models/labs/classification_automl_vision.ipynb
index 54b250ac9..857e96c15 100644
--- a/notebooks/image_models/labs/classification_automl_vision.ipynb
+++ b/asl_core/notebooks/image_models/labs/classification_automl_vision.ipynb
@@ -564,9 +564,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/conditional_gan.ipynb b/asl_core/notebooks/image_models/labs/conditional_gan.ipynb
similarity index 99%
rename from notebooks/image_models/labs/conditional_gan.ipynb
rename to asl_core/notebooks/image_models/labs/conditional_gan.ipynb
index 04c6d9dbf..f3000fe40 100644
--- a/notebooks/image_models/labs/conditional_gan.ipynb
+++ b/asl_core/notebooks/image_models/labs/conditional_gan.ipynb
@@ -1034,9 +1034,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m133"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/deepconv_gan.ipynb b/asl_core/notebooks/image_models/labs/deepconv_gan.ipynb
similarity index 99%
rename from notebooks/image_models/labs/deepconv_gan.ipynb
rename to asl_core/notebooks/image_models/labs/deepconv_gan.ipynb
index 01795c362..afb504015 100644
--- a/notebooks/image_models/labs/deepconv_gan.ipynb
+++ b/asl_core/notebooks/image_models/labs/deepconv_gan.ipynb
@@ -851,9 +851,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m133"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/diffusion_model.ipynb b/asl_core/notebooks/image_models/labs/diffusion_model.ipynb
similarity index 99%
rename from notebooks/image_models/labs/diffusion_model.ipynb
rename to asl_core/notebooks/image_models/labs/diffusion_model.ipynb
index 7ed2ed3ff..b375f5a4b 100644
--- a/notebooks/image_models/labs/diffusion_model.ipynb
+++ b/asl_core/notebooks/image_models/labs/diffusion_model.ipynb
@@ -874,9 +874,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/object_detection_automl_vertex.ipynb b/asl_core/notebooks/image_models/labs/object_detection_automl_vertex.ipynb
similarity index 99%
rename from notebooks/image_models/labs/object_detection_automl_vertex.ipynb
rename to asl_core/notebooks/image_models/labs/object_detection_automl_vertex.ipynb
index ad1d6b497..d87203593 100644
--- a/notebooks/image_models/labs/object_detection_automl_vertex.ipynb
+++ b/asl_core/notebooks/image_models/labs/object_detection_automl_vertex.ipynb
@@ -424,9 +424,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/object_detection_od_api.ipynb b/asl_core/notebooks/image_models/labs/object_detection_od_api.ipynb
similarity index 99%
rename from notebooks/image_models/labs/object_detection_od_api.ipynb
rename to asl_core/notebooks/image_models/labs/object_detection_od_api.ipynb
index 67ae72b76..42c3b523e 100644
--- a/notebooks/image_models/labs/object_detection_od_api.ipynb
+++ b/asl_core/notebooks/image_models/labs/object_detection_od_api.ipynb
@@ -861,9 +861,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/serving.ipynb b/asl_core/notebooks/image_models/labs/serving.ipynb
similarity index 99%
rename from notebooks/image_models/labs/serving.ipynb
rename to asl_core/notebooks/image_models/labs/serving.ipynb
index c08a7f1d7..2f99b8e8e 100644
--- a/notebooks/image_models/labs/serving.ipynb
+++ b/asl_core/notebooks/image_models/labs/serving.ipynb
@@ -1049,9 +1049,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/stable_diffusion_dreambooth.ipynb b/asl_core/notebooks/image_models/labs/stable_diffusion_dreambooth.ipynb
similarity index 99%
rename from notebooks/image_models/labs/stable_diffusion_dreambooth.ipynb
rename to asl_core/notebooks/image_models/labs/stable_diffusion_dreambooth.ipynb
index 6da5855c9..3166de167 100644
--- a/notebooks/image_models/labs/stable_diffusion_dreambooth.ipynb
+++ b/asl_core/notebooks/image_models/labs/stable_diffusion_dreambooth.ipynb
@@ -1314,9 +1314,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/unet_segmentation_vertex.ipynb b/asl_core/notebooks/image_models/labs/unet_segmentation_vertex.ipynb
similarity index 99%
rename from notebooks/image_models/labs/unet_segmentation_vertex.ipynb
rename to asl_core/notebooks/image_models/labs/unet_segmentation_vertex.ipynb
index 45bfa064c..3834e1481 100644
--- a/notebooks/image_models/labs/unet_segmentation_vertex.ipynb
+++ b/asl_core/notebooks/image_models/labs/unet_segmentation_vertex.ipynb
@@ -797,9 +797,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/labs/variational_autoencoder.ipynb b/asl_core/notebooks/image_models/labs/variational_autoencoder.ipynb
similarity index 99%
rename from notebooks/image_models/labs/variational_autoencoder.ipynb
rename to asl_core/notebooks/image_models/labs/variational_autoencoder.ipynb
index 198b90876..2e72d1313 100644
--- a/notebooks/image_models/labs/variational_autoencoder.ipynb
+++ b/asl_core/notebooks/image_models/labs/variational_autoencoder.ipynb
@@ -582,9 +582,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/1_mnist_linear_dnn.ipynb b/asl_core/notebooks/image_models/solutions/1_mnist_linear_dnn.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/1_mnist_linear_dnn.ipynb
rename to asl_core/notebooks/image_models/solutions/1_mnist_linear_dnn.ipynb
index b841cd9f8..68d6f4bb3 100644
--- a/notebooks/image_models/solutions/1_mnist_linear_dnn.ipynb
+++ b/asl_core/notebooks/image_models/solutions/1_mnist_linear_dnn.ipynb
@@ -496,9 +496,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/2_mnist_cnn.ipynb b/asl_core/notebooks/image_models/solutions/2_mnist_cnn.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/2_mnist_cnn.ipynb
rename to asl_core/notebooks/image_models/solutions/2_mnist_cnn.ipynb
index 3f51de91c..33f4ddb63 100644
--- a/notebooks/image_models/solutions/2_mnist_cnn.ipynb
+++ b/asl_core/notebooks/image_models/solutions/2_mnist_cnn.ipynb
@@ -505,9 +505,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/3_transfer_learning_fine_tuning.ipynb b/asl_core/notebooks/image_models/solutions/3_transfer_learning_fine_tuning.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/3_transfer_learning_fine_tuning.ipynb
rename to asl_core/notebooks/image_models/solutions/3_transfer_learning_fine_tuning.ipynb
index 6d646c266..0dfa58608 100644
--- a/notebooks/image_models/solutions/3_transfer_learning_fine_tuning.ipynb
+++ b/asl_core/notebooks/image_models/solutions/3_transfer_learning_fine_tuning.ipynb
@@ -418,7 +418,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Finetuning MobileNet\n",
+ "## Finetuning MobileNet\n",
"Following the transfer learning step, let's see how fine-tuning works. Here we unfreeze the backbone and train with our classification head. \n",
"\n",
"Note that we **don't** set `backbone.trainable` to `False` to leave it trainable."
@@ -502,7 +502,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Learning Rate Schedule for Fine-tuning\n",
+ "## Learning Rate Schedule for Fine-tuning\n",
"\n",
"Now, let's add an additional technique for fine-tuning.\n",
"Since fine-tuning is very sensitive to the learning rate, it is important to use a carefully designed **learning rate schedule**.\n",
@@ -662,9 +662,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/autoencoder_anomaly_detection.ipynb b/asl_core/notebooks/image_models/solutions/autoencoder_anomaly_detection.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/autoencoder_anomaly_detection.ipynb
rename to asl_core/notebooks/image_models/solutions/autoencoder_anomaly_detection.ipynb
index b4d91ae3c..e0721adb7 100644
--- a/notebooks/image_models/solutions/autoencoder_anomaly_detection.ipynb
+++ b/asl_core/notebooks/image_models/solutions/autoencoder_anomaly_detection.ipynb
@@ -530,7 +530,7 @@
"outputs": [],
"source": [
"# Visualize histgram of loss value\n",
- "plt.hist(train_loss[None, :], bins=50)\n",
+ "plt.hist(train_loss, bins=50)\n",
"plt.xlabel(\"Train loss\")\n",
"plt.ylabel(\"No of examples\")\n",
"plt.show()"
@@ -568,7 +568,7 @@
"source": [
"# Visualize histgram of loss value and anomaly threshold\n",
"fig = plt.figure()\n",
- "plt.hist(train_loss[None, :], bins=50)\n",
+ "plt.hist(train_loss, bins=50)\n",
"plt.xlabel(\"Train loss\")\n",
"plt.ylabel(\"No of examples\")\n",
"plt.vlines(threshold, 0, 160, color=\"red\")\n",
@@ -796,9 +796,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/classification_automl_vision.ipynb b/asl_core/notebooks/image_models/solutions/classification_automl_vision.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/classification_automl_vision.ipynb
rename to asl_core/notebooks/image_models/solutions/classification_automl_vision.ipynb
index ae1c6e12c..fe1ff3419 100644
--- a/notebooks/image_models/solutions/classification_automl_vision.ipynb
+++ b/asl_core/notebooks/image_models/solutions/classification_automl_vision.ipynb
@@ -810,9 +810,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/conditional_gan.ipynb b/asl_core/notebooks/image_models/solutions/conditional_gan.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/conditional_gan.ipynb
rename to asl_core/notebooks/image_models/solutions/conditional_gan.ipynb
index 8ec14dcef..f8f4771e3 100644
--- a/notebooks/image_models/solutions/conditional_gan.ipynb
+++ b/asl_core/notebooks/image_models/solutions/conditional_gan.ipynb
@@ -1057,9 +1057,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m133"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/create_tfrecords/create_tfrecords.py b/asl_core/notebooks/image_models/solutions/create_tfrecords/create_tfrecords.py
similarity index 100%
rename from notebooks/image_models/solutions/create_tfrecords/create_tfrecords.py
rename to asl_core/notebooks/image_models/solutions/create_tfrecords/create_tfrecords.py
diff --git a/notebooks/image_models/solutions/create_tfrecords/requirements.txt b/asl_core/notebooks/image_models/solutions/create_tfrecords/requirements.txt
similarity index 100%
rename from notebooks/image_models/solutions/create_tfrecords/requirements.txt
rename to asl_core/notebooks/image_models/solutions/create_tfrecords/requirements.txt
diff --git a/notebooks/image_models/solutions/create_tfrecords_at_scale.ipynb b/asl_core/notebooks/image_models/solutions/create_tfrecords_at_scale.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/create_tfrecords_at_scale.ipynb
rename to asl_core/notebooks/image_models/solutions/create_tfrecords_at_scale.ipynb
index 369f06444..29574dbf3 100644
--- a/notebooks/image_models/solutions/create_tfrecords_at_scale.ipynb
+++ b/asl_core/notebooks/image_models/solutions/create_tfrecords_at_scale.ipynb
@@ -617,9 +617,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m133"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/deepconv_gan.ipynb b/asl_core/notebooks/image_models/solutions/deepconv_gan.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/deepconv_gan.ipynb
rename to asl_core/notebooks/image_models/solutions/deepconv_gan.ipynb
index 12ee8c646..13847a1da 100644
--- a/notebooks/image_models/solutions/deepconv_gan.ipynb
+++ b/asl_core/notebooks/image_models/solutions/deepconv_gan.ipynb
@@ -892,9 +892,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m133"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/diffusion_model.ipynb b/asl_core/notebooks/image_models/solutions/diffusion_model.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/diffusion_model.ipynb
rename to asl_core/notebooks/image_models/solutions/diffusion_model.ipynb
index a0a3f4d38..51d273736 100644
--- a/notebooks/image_models/solutions/diffusion_model.ipynb
+++ b/asl_core/notebooks/image_models/solutions/diffusion_model.ipynb
@@ -873,9 +873,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/dreambooth_model/Dockerfile b/asl_core/notebooks/image_models/solutions/dreambooth_model/Dockerfile
similarity index 100%
rename from notebooks/image_models/solutions/dreambooth_model/Dockerfile
rename to asl_core/notebooks/image_models/solutions/dreambooth_model/Dockerfile
diff --git a/notebooks/image_models/solutions/object_detection_automl_vertex.ipynb b/asl_core/notebooks/image_models/solutions/object_detection_automl_vertex.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/object_detection_automl_vertex.ipynb
rename to asl_core/notebooks/image_models/solutions/object_detection_automl_vertex.ipynb
index 880249de5..4e687adc6 100644
--- a/notebooks/image_models/solutions/object_detection_automl_vertex.ipynb
+++ b/asl_core/notebooks/image_models/solutions/object_detection_automl_vertex.ipynb
@@ -431,9 +431,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/object_detection_od_api.ipynb b/asl_core/notebooks/image_models/solutions/object_detection_od_api.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/object_detection_od_api.ipynb
rename to asl_core/notebooks/image_models/solutions/object_detection_od_api.ipynb
index a8db7206d..95a732c46 100644
--- a/notebooks/image_models/solutions/object_detection_od_api.ipynb
+++ b/asl_core/notebooks/image_models/solutions/object_detection_od_api.ipynb
@@ -1055,9 +1055,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/serving.ipynb b/asl_core/notebooks/image_models/solutions/serving.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/serving.ipynb
rename to asl_core/notebooks/image_models/solutions/serving.ipynb
index 04f8691af..7af519129 100644
--- a/notebooks/image_models/solutions/serving.ipynb
+++ b/asl_core/notebooks/image_models/solutions/serving.ipynb
@@ -1070,9 +1070,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/stable_diffusion_dreambooth.ipynb b/asl_core/notebooks/image_models/solutions/stable_diffusion_dreambooth.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/stable_diffusion_dreambooth.ipynb
rename to asl_core/notebooks/image_models/solutions/stable_diffusion_dreambooth.ipynb
index 6667b5452..878162f4d 100644
--- a/notebooks/image_models/solutions/stable_diffusion_dreambooth.ipynb
+++ b/asl_core/notebooks/image_models/solutions/stable_diffusion_dreambooth.ipynb
@@ -1994,9 +1994,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/tfrecords_tfdata.ipynb b/asl_core/notebooks/image_models/solutions/tfrecords_tfdata.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/tfrecords_tfdata.ipynb
rename to asl_core/notebooks/image_models/solutions/tfrecords_tfdata.ipynb
index a4aa5e278..d49c97e62 100644
--- a/notebooks/image_models/solutions/tfrecords_tfdata.ipynb
+++ b/asl_core/notebooks/image_models/solutions/tfrecords_tfdata.ipynb
@@ -551,19 +551,19 @@
"# 4 examples of data for an image classification use case\n",
"data = [\n",
" {\n",
- " \"image_uri\": \"gs://cloud-ml-data/img/flower_photos/dandelion/18089878729_907ed2c7cd_m.jpg\",\n",
+ " \"image_uri\": \"gs://asl-public/data/five_flowers/dandelion/18089878729_907ed2c7cd_m.jpg\",\n",
" \"label\": \"dandelion\",\n",
" },\n",
" {\n",
- " \"image_uri\": \"gs://cloud-ml-data/img/flower_photos/sunflowers/4933229095_f7e4218b28.jpg\",\n",
+ " \"image_uri\": \"gs://asl-public/data/five_flowers/sunflowers/4933229095_f7e4218b28.jpg\",\n",
" \"label\": \"sunflowers\",\n",
" },\n",
" {\n",
- " \"image_uri\": \"gs://cloud-ml-data/img/flower_photos/tulips/8713398906_28e59a225a_n.jpg\",\n",
+ " \"image_uri\": \"gs://asl-public/data/five_flowers/tulips/8713398906_28e59a225a_n.jpg\",\n",
" \"label\": \"tulips\",\n",
" },\n",
" {\n",
- " \"image_uri\": \"gs://cloud-ml-data/img/flower_photos/daisy/4065883015_4bb6010cb7_n.jpg\",\n",
+ " \"image_uri\": \"gs://asl-public/data/five_flowers/daisy/4065883015_4bb6010cb7_n.jpg\",\n",
" \"label\": \"daisy\",\n",
" },\n",
"]"
@@ -984,9 +984,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/unet_segmentation_vertex.ipynb b/asl_core/notebooks/image_models/solutions/unet_segmentation_vertex.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/unet_segmentation_vertex.ipynb
rename to asl_core/notebooks/image_models/solutions/unet_segmentation_vertex.ipynb
index a7b6107b1..51738e416 100644
--- a/notebooks/image_models/solutions/unet_segmentation_vertex.ipynb
+++ b/asl_core/notebooks/image_models/solutions/unet_segmentation_vertex.ipynb
@@ -863,9 +863,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/solutions/variational_autoencoder.ipynb b/asl_core/notebooks/image_models/solutions/variational_autoencoder.ipynb
similarity index 99%
rename from notebooks/image_models/solutions/variational_autoencoder.ipynb
rename to asl_core/notebooks/image_models/solutions/variational_autoencoder.ipynb
index 6abe00b1d..0d9c2acaf 100644
--- a/notebooks/image_models/solutions/variational_autoencoder.ipynb
+++ b/asl_core/notebooks/image_models/solutions/variational_autoencoder.ipynb
@@ -627,9 +627,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/image_models/test_images/salad.jpg b/asl_core/notebooks/image_models/test_images/salad.jpg
similarity index 100%
rename from notebooks/image_models/test_images/salad.jpg
rename to asl_core/notebooks/image_models/test_images/salad.jpg
diff --git a/notebooks/introduction_to_tensorflow/data/taxi-test.csv b/asl_core/notebooks/introduction_to_tensorflow/data/taxi-test.csv
similarity index 100%
rename from notebooks/introduction_to_tensorflow/data/taxi-test.csv
rename to asl_core/notebooks/introduction_to_tensorflow/data/taxi-test.csv
diff --git a/notebooks/introduction_to_tensorflow/data/taxi-train.csv b/asl_core/notebooks/introduction_to_tensorflow/data/taxi-train.csv
similarity index 100%
rename from notebooks/introduction_to_tensorflow/data/taxi-train.csv
rename to asl_core/notebooks/introduction_to_tensorflow/data/taxi-train.csv
diff --git a/notebooks/introduction_to_tensorflow/data/taxi-valid.csv b/asl_core/notebooks/introduction_to_tensorflow/data/taxi-valid.csv
similarity index 100%
rename from notebooks/introduction_to_tensorflow/data/taxi-valid.csv
rename to asl_core/notebooks/introduction_to_tensorflow/data/taxi-valid.csv
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/3-axis_block.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/3-axis_block.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/3-axis_block.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/3-axis_block.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/3-axis_front.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/3-axis_front.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/3-axis_front.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/3-axis_front.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/3-axis_numpy.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/3-axis_numpy.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/3-axis_numpy.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/3-axis_numpy.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/3-axis_stack.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/3-axis_stack.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/3-axis_stack.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/3-axis_stack.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/4-axis_block.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/4-axis_block.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/4-axis_block.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/4-axis_block.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/broadcasting.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/broadcasting.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/broadcasting.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/broadcasting.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/index1.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/index1.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/index1.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/index1.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/index2.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/index2.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/index2.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/index2.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/matrix.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/matrix.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/matrix.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/matrix.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/ragged.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/ragged.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/ragged.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/ragged.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/reshape-bad.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad2.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad2.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/reshape-bad2.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad2.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad3.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad3.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/reshape-bad3.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad3.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad4.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad4.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/reshape-bad4.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-bad4.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/reshape-before.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-before.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/reshape-before.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-before.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/reshape-good1.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-good1.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/reshape-good1.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-good1.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/reshape-good2.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-good2.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/reshape-good2.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/reshape-good2.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/scalar.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/scalar.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/scalar.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/scalar.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/shape.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/shape.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/shape.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/shape.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/shape2.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/shape2.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/shape2.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/shape2.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/sparse.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/sparse.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/sparse.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/sparse.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/string-split.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/string-split.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/string-split.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/string-split.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/strings.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/strings.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/strings.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/strings.png
diff --git a/notebooks/introduction_to_tensorflow/images/tensor/vector.png b/asl_core/notebooks/introduction_to_tensorflow/images/tensor/vector.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/images/tensor/vector.png
rename to asl_core/notebooks/introduction_to_tensorflow/images/tensor/vector.png
diff --git a/notebooks/introduction_to_tensorflow/labs/1_core_tensorflow.ipynb b/asl_core/notebooks/introduction_to_tensorflow/labs/1_core_tensorflow.ipynb
similarity index 99%
rename from notebooks/introduction_to_tensorflow/labs/1_core_tensorflow.ipynb
rename to asl_core/notebooks/introduction_to_tensorflow/labs/1_core_tensorflow.ipynb
index 692e563f1..48c7977e3 100644
--- a/notebooks/introduction_to_tensorflow/labs/1_core_tensorflow.ipynb
+++ b/asl_core/notebooks/introduction_to_tensorflow/labs/1_core_tensorflow.ipynb
@@ -751,9 +751,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/introduction_to_tensorflow/labs/2_dataset_api.ipynb b/asl_core/notebooks/introduction_to_tensorflow/labs/2_dataset_api.ipynb
similarity index 99%
rename from notebooks/introduction_to_tensorflow/labs/2_dataset_api.ipynb
rename to asl_core/notebooks/introduction_to_tensorflow/labs/2_dataset_api.ipynb
index 8f95736c4..d4b55c7de 100644
--- a/notebooks/introduction_to_tensorflow/labs/2_dataset_api.ipynb
+++ b/asl_core/notebooks/introduction_to_tensorflow/labs/2_dataset_api.ipynb
@@ -1025,9 +1025,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m134"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/introduction_to_tensorflow/labs/3_keras_sequential_api_vertex.ipynb b/asl_core/notebooks/introduction_to_tensorflow/labs/3_keras_sequential_api_vertex.ipynb
similarity index 96%
rename from notebooks/introduction_to_tensorflow/labs/3_keras_sequential_api_vertex.ipynb
rename to asl_core/notebooks/introduction_to_tensorflow/labs/3_keras_sequential_api_vertex.ipynb
index 7d6a2f89a..c532e8f40 100644
--- a/notebooks/introduction_to_tensorflow/labs/3_keras_sequential_api_vertex.ipynb
+++ b/asl_core/notebooks/introduction_to_tensorflow/labs/3_keras_sequential_api_vertex.ipynb
@@ -232,9 +232,21 @@
"metadata": {},
"outputs": [],
"source": [
- "trainds = create_dataset(pattern=\"../data/taxi-train.csv\", batch_size=32)\n",
+ "BATCH_SIZE = 64\n",
+ "NUM_TRAIN_EXAMPLES = 10000 * 10 # training dataset will repeat, wrap around\n",
+ "NUM_EVALS = 10 # how many times to evaluate\n",
+ "NUM_EVAL_EXAMPLES = 1000 # enough to get a reasonable sample\n",
"\n",
- "evalds = create_dataset(pattern=\"../data/taxi-valid.csv\", batch_size=32)"
+ "trainds = create_dataset(\n",
+ " pattern=\"../data/taxi-train.csv\", batch_size=BATCH_SIZE, mode=\"train\"\n",
+ ")\n",
+ "\n",
+ "evalds = create_dataset(\n",
+ " pattern=\"../data/taxi-valid.csv\", batch_size=BATCH_SIZE, mode=\"eval\"\n",
+ ").take(NUM_EVAL_EXAMPLES // BATCH_SIZE)\n",
+ "\n",
+ "print(f\"Training dataset object: {trainds}\")\n",
+ "print(f\"Evaluation dataset object: {evalds}\")"
]
},
{
@@ -262,6 +274,8 @@
"outputs": [],
"source": [
"%%time\n",
+ "steps_per_epoch = NUM_TRAIN_EXAMPLES // (BATCH_SIZE * NUM_EVALS)\n",
+ "\n",
"LOGDIR = \"./taxi_trained\"\n",
"history = # TODO: Your code here"
]
@@ -451,7 +465,7 @@
},
"outputs": [],
"source": [
- "PROJECT = !gcloud config list --format 'value(core.project)' 2>/dev/null\n",
+ "PROJECT = !gcloud config get-value project 2>/dev/null\n",
"PROJECT = PROJECT[0]\n",
"BUCKET = PROJECT\n",
"REGION = \"us-central1\"\n",
@@ -658,9 +672,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/introduction_to_tensorflow/labs/4_keras_functional_api.ipynb b/asl_core/notebooks/introduction_to_tensorflow/labs/4_keras_functional_api.ipynb
similarity index 99%
rename from notebooks/introduction_to_tensorflow/labs/4_keras_functional_api.ipynb
rename to asl_core/notebooks/introduction_to_tensorflow/labs/4_keras_functional_api.ipynb
index 3cc3154f3..1c7bb3201 100644
--- a/notebooks/introduction_to_tensorflow/labs/4_keras_functional_api.ipynb
+++ b/asl_core/notebooks/introduction_to_tensorflow/labs/4_keras_functional_api.ipynb
@@ -453,9 +453,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/introduction_to_tensorflow/labs/5_keras_adv_feat_eng.ipynb b/asl_core/notebooks/introduction_to_tensorflow/labs/5_keras_adv_feat_eng.ipynb
similarity index 99%
rename from notebooks/introduction_to_tensorflow/labs/5_keras_adv_feat_eng.ipynb
rename to asl_core/notebooks/introduction_to_tensorflow/labs/5_keras_adv_feat_eng.ipynb
index 2f63d2336..c8dffaf69 100644
--- a/notebooks/introduction_to_tensorflow/labs/5_keras_adv_feat_eng.ipynb
+++ b/asl_core/notebooks/introduction_to_tensorflow/labs/5_keras_adv_feat_eng.ipynb
@@ -484,9 +484,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/introduction_to_tensorflow/labs/assets/wide_deep.png b/asl_core/notebooks/introduction_to_tensorflow/labs/assets/wide_deep.png
similarity index 100%
rename from notebooks/introduction_to_tensorflow/labs/assets/wide_deep.png
rename to asl_core/notebooks/introduction_to_tensorflow/labs/assets/wide_deep.png
diff --git a/notebooks/introduction_to_tensorflow/labs/tensors-variables.ipynb b/asl_core/notebooks/introduction_to_tensorflow/labs/tensors-variables.ipynb
similarity index 99%
rename from notebooks/introduction_to_tensorflow/labs/tensors-variables.ipynb
rename to asl_core/notebooks/introduction_to_tensorflow/labs/tensors-variables.ipynb
index c0e2724d5..a40fca745 100644
--- a/notebooks/introduction_to_tensorflow/labs/tensors-variables.ipynb
+++ b/asl_core/notebooks/introduction_to_tensorflow/labs/tensors-variables.ipynb
@@ -1898,9 +1898,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/introduction_to_tensorflow/solutions/1_core_tensorflow.ipynb b/asl_core/notebooks/introduction_to_tensorflow/solutions/1_core_tensorflow.ipynb
similarity index 99%
rename from notebooks/introduction_to_tensorflow/solutions/1_core_tensorflow.ipynb
rename to asl_core/notebooks/introduction_to_tensorflow/solutions/1_core_tensorflow.ipynb
index 9a979cd9e..055ee2297 100644
--- a/notebooks/introduction_to_tensorflow/solutions/1_core_tensorflow.ipynb
+++ b/asl_core/notebooks/introduction_to_tensorflow/solutions/1_core_tensorflow.ipynb
@@ -707,9 +707,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/notebooks/introduction_to_tensorflow/solutions/2_dataset_api.ipynb b/asl_core/notebooks/introduction_to_tensorflow/solutions/2_dataset_api.ipynb
similarity index 99%
rename from notebooks/introduction_to_tensorflow/solutions/2_dataset_api.ipynb
rename to asl_core/notebooks/introduction_to_tensorflow/solutions/2_dataset_api.ipynb
index 35d82961e..bfe7685ce 100644
--- a/notebooks/introduction_to_tensorflow/solutions/2_dataset_api.ipynb
+++ b/asl_core/notebooks/introduction_to_tensorflow/solutions/2_dataset_api.ipynb
@@ -995,9 +995,9 @@
"uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m134"
},
"kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
+ "display_name": "ASL Core",
"language": "python",
- "name": "conda-base-py"
+ "name": "asl_core"
},
"language_info": {
"codemirror_mode": {
diff --git a/asl_core/notebooks/introduction_to_tensorflow/solutions/3_keras_sequential_api_vertex.ipynb b/asl_core/notebooks/introduction_to_tensorflow/solutions/3_keras_sequential_api_vertex.ipynb
new file mode 100644
index 000000000..c020f18fe
--- /dev/null
+++ b/asl_core/notebooks/introduction_to_tensorflow/solutions/3_keras_sequential_api_vertex.ipynb
@@ -0,0 +1,1191 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Introducing the Keras Sequential API"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**Learning Objectives**\n",
+ " 1. Build a DNN model using the Keras Sequential API\n",
+ " 1. Learn how to train a model with Keras\n",
+ " 1. Learn how to save/load, and deploy a Keras model on GCP\n",
+ " 1. Learn how to deploy and make predictions with the Keras model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Introduction"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The [Keras sequential API](https://keras.io/models/sequential/) allows you to create TensorFlow models layer-by-layer. This is useful for building most kinds of machine learning models but it does not allow you to create models that share layers, re-use layers or have multiple inputs or outputs. \n",
+ "\n",
+ "In this lab, we'll see how to build a simple deep neural network model using the Keras Sequential API. Once we have trained our model, we will deploy it using Vertex AI and see how to call our model for online prediction."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Start by importing the necessary libraries for this lab."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "2026-01-02 22:28:37.554047: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:477] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
+ "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
+ "E0000 00:00:1767392917.582671 58368 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
+ "E0000 00:00:1767392917.591075 58368 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
+ "2026-01-02 22:28:37.620745: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
+ "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3.12.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "import os\n",
+ "\n",
+ "os.environ[\"KERAS_BACKEND\"] = \"tensorflow\"\n",
+ "\n",
+ "import datetime\n",
+ "import shutil\n",
+ "\n",
+ "import keras\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import tensorflow as tf # Used only for tf.data loader\n",
+ "from google.cloud import aiplatform\n",
+ "from keras import Input\n",
+ "from keras.callbacks import TensorBoard\n",
+ "from keras.layers import Dense\n",
+ "from keras.metrics import RootMeanSquaredError\n",
+ "from keras.models import Sequential\n",
+ "from matplotlib import pyplot as plt\n",
+ "\n",
+ "print(keras.__version__)\n",
+ "%matplotlib inline"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Load raw data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We will use the taxifare dataset, using the CSV files that we created in the first notebook of this sequence. Those files have been saved into `../data`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "-rw-r--r-- 1 jupyter jupyter 123675 Jan 2 18:44 ../data/taxi-test.csv\n",
+ "-rw-r--r-- 1 jupyter jupyter 579140 Jan 2 18:44 ../data/taxi-train.csv\n",
+ "-rw-r--r-- 1 jupyter jupyter 399647 Jan 2 18:44 ../data/taxi-valid.csv\n"
+ ]
+ }
+ ],
+ "source": [
+ "!ls -l ../data/*.csv"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==> ../data/taxi-test.csv <==\n",
+ "fare_amount,pickup_datetime,pickuplon,pickuplat,dropofflon,dropofflat,passengers,key\n",
+ "6.0,2013-03-27 03:35:00 UTC,-73.977672,40.784052,-73.965332,40.801025,2,0\n",
+ "19.3,2012-05-10 18:43:16 UTC,-73.954366,40.778924,-74.004094,40.723104,1,1\n",
+ "7.5,2014-05-20 23:09:00 UTC,-73.999165,40.738377,-74.003473,40.723862,2,2\n",
+ "12.5,2015-02-23 19:51:31 UTC,-73.9652099609375,40.76948165893555,-73.98949432373047,40.739742279052734,1,3\n",
+ "10.9,2011-03-19 03:32:00 UTC,-73.99259,40.742957,-73.989908,40.711053,1,4\n",
+ "7.0,2012-09-18 12:51:11 UTC,-73.971195,40.751566,-73.975922,40.756361,1,5\n",
+ "19.0,2014-05-20 23:09:00 UTC,-73.998392,40.74517,-73.939845,40.74908,1,6\n",
+ "8.9,2012-07-18 08:46:08 UTC,-73.997638,40.756541,-73.973303,40.762019,1,7\n",
+ "4.5,2010-07-11 20:39:08 UTC,-73.976738,40.751321,-73.986671,40.74883,1,8\n",
+ "\n",
+ "==> ../data/taxi-train.csv <==\n",
+ "fare_amount,pickup_datetime,pickuplon,pickuplat,dropofflon,dropofflat,passengers,key\n",
+ "11.3,2011-01-28 20:42:59 UTC,-73.999022,40.739146,-73.990369,40.717866,1,0\n",
+ "7.7,2011-06-27 04:28:06 UTC,-73.987443,40.729221,-73.979013,40.758641,1,1\n",
+ "10.5,2011-04-03 00:54:53 UTC,-73.982539,40.735725,-73.954797,40.778388,1,2\n",
+ "16.2,2009-04-10 04:11:56 UTC,-74.001945,40.740505,-73.91385,40.758559,1,3\n",
+ "33.5,2014-02-24 18:22:00 UTC,-73.993372,40.753382,-73.8609,40.732897,2,4\n",
+ "6.9,2011-12-10 00:25:23 UTC,-73.996237,40.721848,-73.989416,40.718052,1,5\n",
+ "6.1,2012-09-01 14:30:19 UTC,-73.977048,40.758461,-73.984899,40.744693,2,6\n",
+ "9.5,2012-11-08 13:28:07 UTC,-73.969402,40.757545,-73.950049,40.776079,1,7\n",
+ "9.0,2014-07-15 11:37:25 UTC,-73.979318,40.760949,-73.95767,40.773724,1,8\n",
+ "\n",
+ "==> ../data/taxi-valid.csv <==\n",
+ "fare_amount,pickup_datetime,pickuplon,pickuplat,dropofflon,dropofflat,passengers,key\n",
+ "6.1,2009-07-16 17:41:00+00:00,-73.967683,40.792738,-73.968902,40.791675,2.0,unused\n",
+ "16.0,2012-12-10 21:12:00+00:00,-74.005318,40.727682,-73.970285,40.756618,3.0,unused\n",
+ "12.0,2014-02-24 20:57:00+00:00,-73.983618,40.771067,-73.943078,40.777297,1.0,unused\n",
+ "16.5,2012-03-31 23:16:00+00:00,-73.934025,40.802195,-73.94788,40.755947,5.0,unused\n",
+ "19.5,2015-05-02 11:39:19+00:00,-73.98455810546875,40.71536636352539,-73.97948455810547,40.75907897949219,1.0,unused\n",
+ "6.1,2010-06-21 15:21:11+00:00,-73.978104,40.756639,-73.991559,40.749858,1.0,unused\n",
+ "5.3,2010-06-28 08:05:20+00:00,-73.990191,40.756952,-73.97772,40.760308,1.0,unused\n",
+ "14.5,2013-03-23 20:15:50+00:00,-73.986321,40.761607,-73.954787,40.805151,1.0,unused\n",
+ "8.5,2014-02-24 20:57:00+00:00,-73.974252,40.757492,-73.985088,40.736077,3.0,unused\n"
+ ]
+ }
+ ],
+ "source": [
+ "!head ../data/taxi*.csv"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Use tf.data to read the CSV files"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We wrote these functions for reading data from the CSV files above in the [previous notebook](./2a_dataset_api.ipynb)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def parse_csv(row):\n",
+ " ds = tf.strings.split(row, \",\")\n",
+ " # Label: fare_amount\n",
+ " label = tf.strings.to_number(ds[0])\n",
+ " # Features: pickup_longitude, pickup_latitude, dropoff_longitude, dropoff_latitude\n",
+ " features = tf.strings.to_number(ds[2:6]) # use some features only\n",
+ " return features, label\n",
+ "\n",
+ "\n",
+ "def create_dataset(pattern, batch_size, mode=\"eval\"):\n",
+ " ds = tf.data.TextLineDataset(pattern).skip(1)\n",
+ " ds = ds.map(parse_csv).repeat()\n",
+ " if mode == \"train\":\n",
+ " ds = ds.shuffle(buffer_size=1000)\n",
+ " ds = ds.batch(batch_size, drop_remainder=True)\n",
+ " return ds"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Build a simple keras DNN model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Next, we create the DNN model. The Sequential model is a linear stack of layers and when building a model using the Sequential API, you configure each layer of the model in turn. Once all the layers have been added, you compile the model. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "2026-01-02 22:28:58.472644: E external/local_xla/xla/stream_executor/cuda/cuda_driver.cc:152] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Build a keras DNN model using Sequential API\n",
+ "model = Sequential(\n",
+ " [\n",
+ " Input(shape=(4,), name=\"input_layer\"),\n",
+ " Dense(units=32, activation=\"relu\", name=\"hidden_1\"),\n",
+ " Dense(units=8, activation=\"relu\", name=\"hidden_2\"),\n",
+ " Dense(units=1, activation=\"linear\", name=\"output\"),\n",
+ " ]\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Next, to prepare the model for training, you must configure the learning process. This is done using the compile method. The compile method takes three arguments:\n",
+ "\n",
+ "* An optimizer. This could be the string identifier of an existing optimizer (such as `rmsprop` or `adagrad`), or an instance of the [Optimizer class](https://keras.io/api/optimizers/).\n",
+ "* A loss function. This is the objective that the model will try to minimize. It can be the string identifier of an existing loss function from the [Losses class](https://keras.io/api/losses/) (such as `categorical_crossentropy` or `mse`), or it can be a custom objective function.\n",
+ "* A list of metrics. For any machine learning problem you will want a set of metrics to evaluate your model. A metric could be the string identifier of an existing metric or a custom metric function."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Compile the keras model\n",
+ "model.compile(optimizer=\"adam\", loss=\"mse\", metrics=[RootMeanSquaredError()])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Train the model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "To train your model, Keras provides two functions that can be used:\n",
+ " 1. `.fit()` for training a model for a fixed number of epochs (iterations on a dataset).\n",
+ " 2. `.train_on_batch()` runs a single gradient update on a single batch of data. \n",
+ " \n",
+ "The `.fit()` function works for various formats of data such as NumPy array, list of Tensors, `tf.data` datasets, and Python generators. The `.train_on_batch()` method is for more fine-grained control over training and accepts only a single batch of data.\n",
+ "\n",
+ "Our `create_dataset` function above generates batches of training examples, so we can use `.fit`. \n",
+ "\n",
+ "We start by setting up some parameters for our training job and create the datasets for the training and validation data."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Training dataset object: <_BatchDataset element_spec=(TensorSpec(shape=(64, None), dtype=tf.float32, name=None), TensorSpec(shape=(64,), dtype=tf.float32, name=None))>\n",
+ "Evaluation dataset object: <_TakeDataset element_spec=(TensorSpec(shape=(64, None), dtype=tf.float32, name=None), TensorSpec(shape=(64,), dtype=tf.float32, name=None))>\n"
+ ]
+ }
+ ],
+ "source": [
+ "BATCH_SIZE = 64\n",
+ "NUM_TRAIN_EXAMPLES = 10000 * 10 # training dataset will repeat, wrap around\n",
+ "NUM_EVALS = 10 # how many times to evaluate\n",
+ "NUM_EVAL_EXAMPLES = 1000 # enough to get a reasonable sample\n",
+ "\n",
+ "trainds = create_dataset(\n",
+ " pattern=\"../data/taxi-train.csv\", batch_size=BATCH_SIZE, mode=\"train\"\n",
+ ")\n",
+ "\n",
+ "evalds = create_dataset(\n",
+ " pattern=\"../data/taxi-valid.csv\", batch_size=BATCH_SIZE, mode=\"eval\"\n",
+ ").take(NUM_EVAL_EXAMPLES // BATCH_SIZE)\n",
+ "\n",
+ "print(f\"Training dataset object: {trainds}\")\n",
+ "print(f\"Evaluation dataset object: {evalds}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "There are various arguments you can set when calling the Keras `fit` method (see [documentation](https://keras.io/api/models/model_training_apis/#fit-method)). Key parameters include:\n",
+ "- `x`: Input data. In our case, this is `trainds`, a `tf.data.Dataset` object that yields batches of (features, labels). Keras 3 can handle `tf.data.Dataset` inputs even with non-TensorFlow backends. See the [documentation](https://keras.io/api/models/model_training_apis/#fit-method) to understand other types of input.\n",
+ "- `epochs`: The number of times to iterate over the entire training dataset. We're training for 10 epochs.\n",
+ "- `validation_data`: Data on which to evaluate the loss and any model metrics at the end of each epoch. In our case, this is `evalds`, another `tf.data.Dataset` object.\n",
+ "- `callbacks`: A list of [callbacks](https://keras.io/api/callbacks/) to apply during training. We use a `TensorBoard` callback to save logs for visualization with TensorBoard."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Epoch 1/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m2s\u001b[0m 6ms/step - loss: 110.9219 - root_mean_squared_error: 10.5319 - val_loss: 97.7370 - val_root_mean_squared_error: 9.8862\n",
+ "Epoch 2/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 7ms/step - loss: 94.2294 - root_mean_squared_error: 9.7072 - val_loss: 97.2531 - val_root_mean_squared_error: 9.8617\n",
+ "Epoch 3/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 7ms/step - loss: 100.9085 - root_mean_squared_error: 10.0453 - val_loss: 97.6741 - val_root_mean_squared_error: 9.8830\n",
+ "Epoch 4/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 7ms/step - loss: 93.8564 - root_mean_squared_error: 9.6880 - val_loss: 99.9327 - val_root_mean_squared_error: 9.9966\n",
+ "Epoch 5/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 7ms/step - loss: 94.5190 - root_mean_squared_error: 9.7221 - val_loss: 100.1020 - val_root_mean_squared_error: 10.0051\n",
+ "Epoch 6/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 6ms/step - loss: 99.3158 - root_mean_squared_error: 9.9657 - val_loss: 97.3036 - val_root_mean_squared_error: 9.8643\n",
+ "Epoch 7/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 6ms/step - loss: 91.4477 - root_mean_squared_error: 9.5628 - val_loss: 97.9108 - val_root_mean_squared_error: 9.8950\n",
+ "Epoch 8/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 6ms/step - loss: 99.4902 - root_mean_squared_error: 9.9745 - val_loss: 97.3005 - val_root_mean_squared_error: 9.8641\n",
+ "Epoch 9/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 5ms/step - loss: 96.5585 - root_mean_squared_error: 9.8264 - val_loss: 97.2585 - val_root_mean_squared_error: 9.8620\n",
+ "Epoch 10/10\n",
+ "\u001b[1m156/156\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 5ms/step - loss: 93.1937 - root_mean_squared_error: 9.6537 - val_loss: 101.6982 - val_root_mean_squared_error: 10.0846\n",
+ "CPU times: user 25.1 s, sys: 3.38 s, total: 28.5 s\n",
+ "Wall time: 11.3 s\n"
+ ]
+ }
+ ],
+ "source": [
+ "%%time\n",
+ "steps_per_epoch = NUM_TRAIN_EXAMPLES // (BATCH_SIZE * NUM_EVALS)\n",
+ "\n",
+ "LOGDIR = \"./taxi_trained\"\n",
+ "shutil.rmtree(path=LOGDIR, ignore_errors=True) # start fresh each time\n",
+ "\n",
+ "history = model.fit(\n",
+ " x=trainds,\n",
+ " steps_per_epoch=steps_per_epoch,\n",
+ " epochs=NUM_EVALS,\n",
+ " validation_data=evalds,\n",
+ " callbacks=[TensorBoard(LOGDIR)],\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### High-level model evaluation"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Once we've run data through the model, we can call `.summary()` on the model to get a high-level summary of our network. We can also plot the training and evaluation curves for the metrics we computed above. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
Model: \"sequential\"\n",
+ "\n"
+ ],
+ "text/plain": [
+ "\u001b[1mModel: \"sequential\"\u001b[0m\n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ hidden_1 (Dense) │ (None, 32) │ 160 │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ hidden_2 (Dense) │ (None, 8) │ 264 │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ output (Dense) │ (None, 1) │ 9 │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", + "\n" + ], + "text/plain": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ hidden_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m160\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ hidden_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m) │ \u001b[38;5;34m264\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ output (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m) │ \u001b[38;5;34m9\u001b[0m │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Total params: 1,301 (5.09 KB)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m1,301\u001b[0m (5.09 KB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Trainable params: 433 (1.69 KB)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m433\u001b[0m (1.69 KB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Non-trainable params: 0 (0.00 B)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Optimizer params: 868 (3.39 KB)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Optimizer params: \u001b[0m\u001b[38;5;34m868\u001b[0m (3.39 KB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Running `.fit` returns a History object which collects all the events recorded during training. Similar to Tensorboard, we can plot the training and validation curves for the model loss and rmse by accessing these elements of the History object.\n", + "\n", + "Because we haven't done any feature engineering yet, the performance might not be impressive. That's something we'll address in the next notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
Model: \"sequential\"\n",
+ "\n"
+ ],
+ "text/plain": [
+ "\u001b[1mModel: \"sequential\"\u001b[0m\n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ hidden_1 (Dense) │ (None, 32) │ 160 │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ hidden_2 (Dense) │ (None, 8) │ 264 │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ output (Dense) │ (None, 1) │ 9 │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n", + "\n" + ], + "text/plain": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n", + "│ hidden_1 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m160\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ hidden_2 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m8\u001b[0m) │ \u001b[38;5;34m264\u001b[0m │\n", + "├─────────────────────────────────┼────────────────────────┼───────────────┤\n", + "│ output (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m1\u001b[0m) │ \u001b[38;5;34m9\u001b[0m │\n", + "└─────────────────────────────────┴────────────────────────┴───────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Total params: 1,301 (5.09 KB)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m1,301\u001b[0m (5.09 KB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Trainable params: 433 (1.69 KB)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m433\u001b[0m (1.69 KB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Non-trainable params: 0 (0.00 B)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Optimizer params: 868 (3.39 KB)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Optimizer params: \u001b[0m\u001b[38;5;34m868\u001b[0m (3.39 KB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "loaded_model = keras.models.load_model(KERAS_PATH)\n", + "loaded_model.summary()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's inspect the saved_model we saved using the `saved_model cli`." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "tags": [ + "flake8-noqa-cell" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-01-02 22:29:11.957514: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:477] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", + "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", + "E0000 00:00:1767392951.982785 58952 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", + "E0000 00:00:1767392951.990303 58952 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", + "2026-01-02 22:29:16.815336: E external/local_xla/xla/stream_executor/cuda/cuda_driver.cc:152] failed call to cuInit: INTERNAL: CUDA error: Failed call to cuInit: UNKNOWN ERROR (303)\n", + "The given SavedModel SignatureDef contains the following input(s):\n", + " inputs['input_layer'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1, 4)\n", + " name: serving_default_input_layer:0\n", + "The given SavedModel SignatureDef contains the following output(s):\n", + " outputs['output_0'] tensor_info:\n", + " dtype: DT_FLOAT\n", + " shape: (-1, 1)\n", + " name: StatefulPartitionedCall_1:0\n", + "Method name is: tensorflow/serving/predict\n", + "./export/20260102222910/savedmodel\n", + "./export/20260102222910/savedmodel/variables\n", + "./export/20260102222910/savedmodel/variables/variables.index\n", + "./export/20260102222910/savedmodel/variables/variables.data-00000-of-00001\n", + "./export/20260102222910/savedmodel/assets\n", + "./export/20260102222910/savedmodel/saved_model.pb\n", + "./export/20260102222910/savedmodel/fingerprint.pb\n" + ] + } + ], + "source": [ + "!saved_model_cli show \\\n", + " --tag_set serve \\\n", + " --signature_def serving_default \\\n", + " --dir {SAVEDMODEL_PATH}\n", + "\n", + "!find {SAVEDMODEL_PATH}\n", + "os.environ['SAVEDMODEL_PATH'] = SAVEDMODEL_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploy our model to Vertex AI Prediction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we will deploy our trained model to Google Cloud's Vertex AI and see how we can make online predictions. \n", + "\n", + "First, we have to upload the model along with a serving container image. Vertex AI hosts pre-built Docker images for serving listed in [the documentation](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers).\n", + "\n", + "**Important Note:** The following steps for deploying to Vertex AI assume TensorFlow backend." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "tags": [ + "flake8-noqa-line-1", + "flake8-noqa-line-8-E501" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MODEL_DISPLAYNAME: taxifare-20260102204836\n" + ] + } + ], + "source": [ + "PROJECT = !gcloud config get-value project 2>/dev/null\n", + "PROJECT = PROJECT[0]\n", + "BUCKET = PROJECT\n", + "REGION = \"us-central1\"\n", + "MODEL_DISPLAYNAME = f\"taxifare-{TIMESTAMP}\"\n", + "\n", + "print(f\"MODEL_DISPLAYNAME: {MODEL_DISPLAYNAME}\")\n", + "\n", + "SERVING_CONTAINER_IMAGE_URI = (\n", + " \"us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-15:latest\"\n", + ")\n", + "\n", + "os.environ[\"BUCKET\"] = BUCKET\n", + "os.environ[\"REGION\"] = REGION" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "tags": [ + "flake8-noqa-cell" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bucket exists, let's not recreate it.\n" + ] + } + ], + "source": [ + "%%bash\n", + "# Create GCS bucket if it doesn't exist already...\n", + "exists=$(gsutil ls -d | grep -w gs://${BUCKET}/)\n", + "\n", + "if [ -n \"$exists\" ]; then\n", + " echo -e \"Bucket exists, let's not recreate it.\"\n", + "else\n", + " echo \"Creating a new GCS bucket.\"\n", + " gsutil mb -l ${REGION} gs://${BUCKET}\n", + " echo \"\\nHere are your current buckets:\"\n", + " gsutil ls\n", + "fi" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "tags": [ + "flake8-noqa-cell" + ] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Copying file://./export/20260102204836/savedmodel/saved_model.pb [Content-Type=application/octet-stream]...\n", + "Copying file://./export/20260102204836/savedmodel/fingerprint.pb [Content-Type=application/octet-stream]...\n", + "Copying file://./export/20260102204836/savedmodel/variables/variables.index [Content-Type=application/octet-stream]...\n", + "Copying file://./export/20260102204836/savedmodel/variables/variables.data-00000-of-00001 [Content-Type=application/octet-stream]...\n", + "/ [4 files][ 48.6 KiB/ 48.6 KiB] \n", + "Operation completed over 4 objects/48.6 KiB. \n" + ] + } + ], + "source": [ + "!gsutil cp -R $SAVEDMODEL_PATH gs://$BUCKET/$MODEL_DISPLAYNAME" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Upload the Model\n", + "\n", + "The `aiplatform.Model.upload` method registers the model with Vertex AI Model Registry, creating a discoverable and deployable model resource." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Creating Model\n", + "Create Model backing LRO: projects/237937020997/locations/us-central1/models/1733770407816724480/operations/1273904479862784\n", + "Model created. Resource name: projects/237937020997/locations/us-central1/models/1733770407816724480@1\n", + "To use this Model in another session:\n", + "model = aiplatform.Model('projects/237937020997/locations/us-central1/models/1733770407816724480@1')\n" + ] + } + ], + "source": [ + "uploaded_model = aiplatform.Model.upload(\n", + " display_name=MODEL_DISPLAYNAME,\n", + " artifact_uri=f\"gs://{BUCKET}/{MODEL_DISPLAYNAME}\",\n", + " serving_container_image_uri=SERVING_CONTAINER_IMAGE_URI,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create and Deploy to an Endpoint\n", + "\n", + "After uploading, `uploaded_model.deploy` creates an endpoint and deploys the model to it. An endpoint is a dedicated Vertex AI resource for serving predictions. Parameters include machine_type (machine resources) and accelerator_type/accelerator_count (for GPU acceleration).\n", + "\n", + "**The deployment takes around 10 minutes.**" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Creating Endpoint\n", + "Create Endpoint backing LRO: projects/237937020997/locations/us-central1/endpoints/3566093341365895168/operations/961244312551555072\n", + "Endpoint created. Resource name: projects/237937020997/locations/us-central1/endpoints/3566093341365895168\n", + "To use this Endpoint in another session:\n", + "endpoint = aiplatform.Endpoint('projects/237937020997/locations/us-central1/endpoints/3566093341365895168')\n", + "Deploying model to Endpoint : projects/237937020997/locations/us-central1/endpoints/3566093341365895168\n", + "Deploy Endpoint model backing LRO: projects/237937020997/locations/us-central1/endpoints/3566093341365895168/operations/2871192767021711360\n", + "Endpoint model deployed. Resource name: projects/237937020997/locations/us-central1/endpoints/3566093341365895168\n" + ] + } + ], + "source": [ + "MACHINE_TYPE = \"n1-standard-2\"\n", + "\n", + "endpoint = uploaded_model.deploy(\n", + " machine_type=MACHINE_TYPE,\n", + " accelerator_type=None,\n", + " accelerator_count=None,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once deployed, the model is accessible for online prediction requests. \n", + "\n", + "The key within this JSON object must match the input tensor's name in your model's serving signature. \n", + "For instance, if your model's input layer is named `'input_layer'`, your JSON input would look like `{\"input_layer\": [...]}`, and the each data point needs to be shaped in (4,). This ensures the prediction service correctly maps your input data to the expected model input." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "instances = [\n", + " {\"input_layer\": [-73.982683, 40.742104, -73.983766, 40.755174]},\n", + " {\"input_layer\": [-73.976738, 40.751321, -73.986671, 40.748831]},\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Prediction(predictions=[[1.50189006], [1.50189006]], deployed_model_id='2430113111919820800', metadata=None, model_version_id='1', model_resource_name='projects/237937020997/locations/us-central1/models/1733770407816724480', explanations=None)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "endpoint.predict(instances)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Cleanup\n", + "\n", + "When deploying a model to an endpoint for online prediction, the minimum `min-replica-count` is 1, and it is charged per node hour. So let's delete the endpoint to reduce unnecessary charges. Before we can delete the endpoint, we first undeploy all attached models... " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "endpoint.undeploy_all()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "...then delete the endpoint." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "endpoint.delete()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Copyright 2021 Google Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." + ] + } + ], + "metadata": { + "environment": { + "kernel": "asl_core", + "name": "workbench-notebooks.m139", + "type": "gcloud", + "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m139" + }, + "kernelspec": { + "display_name": "ASL Core (Local)", + "language": "python", + "name": "asl_core" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.19" + }, + "toc-autonumbering": false, + "toc-showmarkdowntxt": false + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/introduction_to_tensorflow/solutions/4_keras_functional_api.ipynb b/asl_core/notebooks/introduction_to_tensorflow/solutions/4_keras_functional_api.ipynb similarity index 99% rename from notebooks/introduction_to_tensorflow/solutions/4_keras_functional_api.ipynb rename to asl_core/notebooks/introduction_to_tensorflow/solutions/4_keras_functional_api.ipynb index 66735b2f5..4cd90f77d 100644 --- a/notebooks/introduction_to_tensorflow/solutions/4_keras_functional_api.ipynb +++ b/asl_core/notebooks/introduction_to_tensorflow/solutions/4_keras_functional_api.ipynb @@ -457,9 +457,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/introduction_to_tensorflow/solutions/5_keras_adv_feat_eng.ipynb b/asl_core/notebooks/introduction_to_tensorflow/solutions/5_keras_adv_feat_eng.ipynb similarity index 99% rename from notebooks/introduction_to_tensorflow/solutions/5_keras_adv_feat_eng.ipynb rename to asl_core/notebooks/introduction_to_tensorflow/solutions/5_keras_adv_feat_eng.ipynb index 80412d9e5..5d23aec4d 100644 --- a/notebooks/introduction_to_tensorflow/solutions/5_keras_adv_feat_eng.ipynb +++ b/asl_core/notebooks/introduction_to_tensorflow/solutions/5_keras_adv_feat_eng.ipynb @@ -500,9 +500,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/introduction_to_tensorflow/solutions/assets/wide_deep.png b/asl_core/notebooks/introduction_to_tensorflow/solutions/assets/wide_deep.png similarity index 100% rename from notebooks/introduction_to_tensorflow/solutions/assets/wide_deep.png rename to asl_core/notebooks/introduction_to_tensorflow/solutions/assets/wide_deep.png diff --git a/notebooks/introduction_to_tensorflow/solutions/tensors-variables.ipynb b/asl_core/notebooks/introduction_to_tensorflow/solutions/tensors-variables.ipynb similarity index 99% rename from notebooks/introduction_to_tensorflow/solutions/tensors-variables.ipynb rename to asl_core/notebooks/introduction_to_tensorflow/solutions/tensors-variables.ipynb index 7c939b60b..c3824350b 100644 --- a/notebooks/introduction_to_tensorflow/solutions/tensors-variables.ipynb +++ b/asl_core/notebooks/introduction_to_tensorflow/solutions/tensors-variables.ipynb @@ -2462,9 +2462,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/data/USA_Housing.csv b/asl_core/notebooks/launching_into_ml/data/USA_Housing.csv similarity index 100% rename from notebooks/launching_into_ml/data/USA_Housing.csv rename to asl_core/notebooks/launching_into_ml/data/USA_Housing.csv diff --git a/notebooks/launching_into_ml/data/advertising.csv b/asl_core/notebooks/launching_into_ml/data/advertising.csv similarity index 100% rename from notebooks/launching_into_ml/data/advertising.csv rename to asl_core/notebooks/launching_into_ml/data/advertising.csv diff --git a/notebooks/launching_into_ml/data/kyphosis.csv b/asl_core/notebooks/launching_into_ml/data/kyphosis.csv similarity index 100% rename from notebooks/launching_into_ml/data/kyphosis.csv rename to asl_core/notebooks/launching_into_ml/data/kyphosis.csv diff --git a/notebooks/launching_into_ml/labs/1_explore_data.ipynb b/asl_core/notebooks/launching_into_ml/labs/1_explore_data.ipynb similarity index 99% rename from notebooks/launching_into_ml/labs/1_explore_data.ipynb rename to asl_core/notebooks/launching_into_ml/labs/1_explore_data.ipynb index 8e6725ee1..1fdd4ff76 100644 --- a/notebooks/launching_into_ml/labs/1_explore_data.ipynb +++ b/asl_core/notebooks/launching_into_ml/labs/1_explore_data.ipynb @@ -26,7 +26,9 @@ "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", - "from google.cloud import bigquery" + "from google.cloud import bigquery\n", + "\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -667,9 +669,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/labs/2_first_model.ipynb b/asl_core/notebooks/launching_into_ml/labs/2_first_model.ipynb similarity index 99% rename from notebooks/launching_into_ml/labs/2_first_model.ipynb rename to asl_core/notebooks/launching_into_ml/labs/2_first_model.ipynb index e3c27f218..fcd4d9ae5 100644 --- a/notebooks/launching_into_ml/labs/2_first_model.ipynb +++ b/asl_core/notebooks/launching_into_ml/labs/2_first_model.ipynb @@ -45,7 +45,9 @@ "\n", "%env PROJECT=$PROJECT\n", "%env BUCKET=$BUCKET\n", - "%env REGION=$REGION" + "%env REGION=$REGION\n", + "\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -509,9 +511,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/labs/3_repeatable_splitting.ipynb b/asl_core/notebooks/launching_into_ml/labs/3_repeatable_splitting.ipynb similarity index 99% rename from notebooks/launching_into_ml/labs/3_repeatable_splitting.ipynb rename to asl_core/notebooks/launching_into_ml/labs/3_repeatable_splitting.ipynb index 8c57d2503..907669efb 100644 --- a/notebooks/launching_into_ml/labs/3_repeatable_splitting.ipynb +++ b/asl_core/notebooks/launching_into_ml/labs/3_repeatable_splitting.ipynb @@ -309,9 +309,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/labs/supplemental/decision_trees_and_random_Forests_in_Python.ipynb b/asl_core/notebooks/launching_into_ml/labs/supplemental/decision_trees_and_random_Forests_in_Python.ipynb similarity index 99% rename from notebooks/launching_into_ml/labs/supplemental/decision_trees_and_random_Forests_in_Python.ipynb rename to asl_core/notebooks/launching_into_ml/labs/supplemental/decision_trees_and_random_Forests_in_Python.ipynb index 41aba338c..7030b9c36 100644 --- a/notebooks/launching_into_ml/labs/supplemental/decision_trees_and_random_Forests_in_Python.ipynb +++ b/asl_core/notebooks/launching_into_ml/labs/supplemental/decision_trees_and_random_Forests_in_Python.ipynb @@ -469,9 +469,9 @@ "uri": "gcr.io/deeplearning-platform-release/tf2-gpu.2-5:m76" }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/labs/supplemental/improve_data_quality.ipynb b/asl_core/notebooks/launching_into_ml/labs/supplemental/improve_data_quality.ipynb similarity index 99% rename from notebooks/launching_into_ml/labs/supplemental/improve_data_quality.ipynb rename to asl_core/notebooks/launching_into_ml/labs/supplemental/improve_data_quality.ipynb index 0cb7ebb22..b40c55fd2 100644 --- a/notebooks/launching_into_ml/labs/supplemental/improve_data_quality.ipynb +++ b/asl_core/notebooks/launching_into_ml/labs/supplemental/improve_data_quality.ipynb @@ -2829,9 +2829,9 @@ "toc_visible": true }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/labs/supplemental/intro_linear_regression.ipynb b/asl_core/notebooks/launching_into_ml/labs/supplemental/intro_linear_regression.ipynb similarity index 99% rename from notebooks/launching_into_ml/labs/supplemental/intro_linear_regression.ipynb rename to asl_core/notebooks/launching_into_ml/labs/supplemental/intro_linear_regression.ipynb index f085c4640..5dd373574 100644 --- a/notebooks/launching_into_ml/labs/supplemental/intro_linear_regression.ipynb +++ b/asl_core/notebooks/launching_into_ml/labs/supplemental/intro_linear_regression.ipynb @@ -1149,9 +1149,9 @@ "toc_visible": true }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/labs/supplemental/intro_logistic_regression.ipynb b/asl_core/notebooks/launching_into_ml/labs/supplemental/intro_logistic_regression.ipynb similarity index 99% rename from notebooks/launching_into_ml/labs/supplemental/intro_logistic_regression.ipynb rename to asl_core/notebooks/launching_into_ml/labs/supplemental/intro_logistic_regression.ipynb index 6eaf9c41b..bac1e4d74 100644 --- a/notebooks/launching_into_ml/labs/supplemental/intro_logistic_regression.ipynb +++ b/asl_core/notebooks/launching_into_ml/labs/supplemental/intro_logistic_regression.ipynb @@ -912,9 +912,9 @@ "provenance": [] }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/labs/supplemental/python.BQ_explore_data.ipynb b/asl_core/notebooks/launching_into_ml/labs/supplemental/python.BQ_explore_data.ipynb similarity index 99% rename from notebooks/launching_into_ml/labs/supplemental/python.BQ_explore_data.ipynb rename to asl_core/notebooks/launching_into_ml/labs/supplemental/python.BQ_explore_data.ipynb index 4c15e6911..c490fed31 100644 --- a/notebooks/launching_into_ml/labs/supplemental/python.BQ_explore_data.ipynb +++ b/asl_core/notebooks/launching_into_ml/labs/supplemental/python.BQ_explore_data.ipynb @@ -55,7 +55,8 @@ "import seaborn as sns\n", "from google.cloud import bigquery\n", "\n", - "%matplotlib inline" + "%matplotlib inline\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -1965,9 +1966,9 @@ "uri": "gcr.io/deeplearning-platform-release/tf2-gpu.2-5:m76" }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/solutions/1_explore_data.ipynb b/asl_core/notebooks/launching_into_ml/solutions/1_explore_data.ipynb similarity index 99% rename from notebooks/launching_into_ml/solutions/1_explore_data.ipynb rename to asl_core/notebooks/launching_into_ml/solutions/1_explore_data.ipynb index 8143d1ae3..4db956251 100644 --- a/notebooks/launching_into_ml/solutions/1_explore_data.ipynb +++ b/asl_core/notebooks/launching_into_ml/solutions/1_explore_data.ipynb @@ -26,7 +26,9 @@ "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", - "from google.cloud import bigquery" + "from google.cloud import bigquery\n", + "\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -2169,9 +2171,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/solutions/2_first_model.ipynb b/asl_core/notebooks/launching_into_ml/solutions/2_first_model.ipynb similarity index 99% rename from notebooks/launching_into_ml/solutions/2_first_model.ipynb rename to asl_core/notebooks/launching_into_ml/solutions/2_first_model.ipynb index 66dd5ab6e..9576b7481 100644 --- a/notebooks/launching_into_ml/solutions/2_first_model.ipynb +++ b/asl_core/notebooks/launching_into_ml/solutions/2_first_model.ipynb @@ -55,7 +55,9 @@ "\n", "%env PROJECT=$PROJECT\n", "%env BUCKET=$BUCKET\n", - "%env REGION=$REGION" + "%env REGION=$REGION\n", + "\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -1066,9 +1068,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/solutions/3_repeatable_splitting.ipynb b/asl_core/notebooks/launching_into_ml/solutions/3_repeatable_splitting.ipynb similarity index 99% rename from notebooks/launching_into_ml/solutions/3_repeatable_splitting.ipynb rename to asl_core/notebooks/launching_into_ml/solutions/3_repeatable_splitting.ipynb index 1f40973e2..1c0d7fbce 100644 --- a/notebooks/launching_into_ml/solutions/3_repeatable_splitting.ipynb +++ b/asl_core/notebooks/launching_into_ml/solutions/3_repeatable_splitting.ipynb @@ -446,9 +446,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/solutions/kyphosis.csv b/asl_core/notebooks/launching_into_ml/solutions/kyphosis.csv similarity index 100% rename from notebooks/launching_into_ml/solutions/kyphosis.csv rename to asl_core/notebooks/launching_into_ml/solutions/kyphosis.csv diff --git a/notebooks/launching_into_ml/solutions/supplemental/basic_intro_logistic_regression.ipynb b/asl_core/notebooks/launching_into_ml/solutions/supplemental/basic_intro_logistic_regression.ipynb similarity index 99% rename from notebooks/launching_into_ml/solutions/supplemental/basic_intro_logistic_regression.ipynb rename to asl_core/notebooks/launching_into_ml/solutions/supplemental/basic_intro_logistic_regression.ipynb index 31602d349..93f59f4d6 100644 --- a/notebooks/launching_into_ml/solutions/supplemental/basic_intro_logistic_regression.ipynb +++ b/asl_core/notebooks/launching_into_ml/solutions/supplemental/basic_intro_logistic_regression.ipynb @@ -1091,9 +1091,9 @@ "uri": "gcr.io/deeplearning-platform-release/tf2-gpu.2-5:m76" }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/solutions/supplemental/decision_trees_and_random_Forests_in_Python.ipynb b/asl_core/notebooks/launching_into_ml/solutions/supplemental/decision_trees_and_random_Forests_in_Python.ipynb similarity index 99% rename from notebooks/launching_into_ml/solutions/supplemental/decision_trees_and_random_Forests_in_Python.ipynb rename to asl_core/notebooks/launching_into_ml/solutions/supplemental/decision_trees_and_random_Forests_in_Python.ipynb index 00d8eb0de..711fcbde9 100644 --- a/notebooks/launching_into_ml/solutions/supplemental/decision_trees_and_random_Forests_in_Python.ipynb +++ b/asl_core/notebooks/launching_into_ml/solutions/supplemental/decision_trees_and_random_Forests_in_Python.ipynb @@ -674,9 +674,9 @@ "uri": "gcr.io/deeplearning-platform-release/tf2-gpu.2-5:m76" }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/solutions/supplemental/improve_data_quality.ipynb b/asl_core/notebooks/launching_into_ml/solutions/supplemental/improve_data_quality.ipynb similarity index 99% rename from notebooks/launching_into_ml/solutions/supplemental/improve_data_quality.ipynb rename to asl_core/notebooks/launching_into_ml/solutions/supplemental/improve_data_quality.ipynb index 5c622d65a..aadeb6577 100644 --- a/notebooks/launching_into_ml/solutions/supplemental/improve_data_quality.ipynb +++ b/asl_core/notebooks/launching_into_ml/solutions/supplemental/improve_data_quality.ipynb @@ -2803,9 +2803,9 @@ "toc_visible": true }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/solutions/supplemental/intro_linear_regression.ipynb b/asl_core/notebooks/launching_into_ml/solutions/supplemental/intro_linear_regression.ipynb similarity index 99% rename from notebooks/launching_into_ml/solutions/supplemental/intro_linear_regression.ipynb rename to asl_core/notebooks/launching_into_ml/solutions/supplemental/intro_linear_regression.ipynb index 4dfbe0182..03f124603 100644 --- a/notebooks/launching_into_ml/solutions/supplemental/intro_linear_regression.ipynb +++ b/asl_core/notebooks/launching_into_ml/solutions/supplemental/intro_linear_regression.ipynb @@ -1119,9 +1119,9 @@ "toc_visible": true }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/solutions/supplemental/intro_logistic_regression.ipynb b/asl_core/notebooks/launching_into_ml/solutions/supplemental/intro_logistic_regression.ipynb similarity index 99% rename from notebooks/launching_into_ml/solutions/supplemental/intro_logistic_regression.ipynb rename to asl_core/notebooks/launching_into_ml/solutions/supplemental/intro_logistic_regression.ipynb index 75313ba36..762f35362 100644 --- a/notebooks/launching_into_ml/solutions/supplemental/intro_logistic_regression.ipynb +++ b/asl_core/notebooks/launching_into_ml/solutions/supplemental/intro_logistic_regression.ipynb @@ -932,9 +932,9 @@ "provenance": [] }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/launching_into_ml/solutions/supplemental/python.BQ_explore_data.ipynb b/asl_core/notebooks/launching_into_ml/solutions/supplemental/python.BQ_explore_data.ipynb similarity index 99% rename from notebooks/launching_into_ml/solutions/supplemental/python.BQ_explore_data.ipynb rename to asl_core/notebooks/launching_into_ml/solutions/supplemental/python.BQ_explore_data.ipynb index 60f924a21..130262095 100644 --- a/notebooks/launching_into_ml/solutions/supplemental/python.BQ_explore_data.ipynb +++ b/asl_core/notebooks/launching_into_ml/solutions/supplemental/python.BQ_explore_data.ipynb @@ -55,7 +55,8 @@ "import seaborn as sns\n", "from google.cloud import bigquery\n", "\n", - "%matplotlib inline" + "%matplotlib inline\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -1972,9 +1973,9 @@ "uri": "gcr.io/deeplearning-platform-release/tf2-gpu.2-5:m76" }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/multi_modal/labs/image_captioning.ipynb b/asl_core/notebooks/multi_modal/labs/image_captioning.ipynb similarity index 99% rename from notebooks/multi_modal/labs/image_captioning.ipynb rename to asl_core/notebooks/multi_modal/labs/image_captioning.ipynb index 9daeaa591..3161ddec7 100644 --- a/notebooks/multi_modal/labs/image_captioning.ipynb +++ b/asl_core/notebooks/multi_modal/labs/image_captioning.ipynb @@ -877,9 +877,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m134" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/multi_modal/sample_images/baseball.jpeg b/asl_core/notebooks/multi_modal/sample_images/baseball.jpeg similarity index 100% rename from notebooks/multi_modal/sample_images/baseball.jpeg rename to asl_core/notebooks/multi_modal/sample_images/baseball.jpeg diff --git a/notebooks/multi_modal/sample_images/surf.jpeg b/asl_core/notebooks/multi_modal/sample_images/surf.jpeg similarity index 100% rename from notebooks/multi_modal/sample_images/surf.jpeg rename to asl_core/notebooks/multi_modal/sample_images/surf.jpeg diff --git a/notebooks/multi_modal/solutions/image_captioning.ipynb b/asl_core/notebooks/multi_modal/solutions/image_captioning.ipynb similarity index 99% rename from notebooks/multi_modal/solutions/image_captioning.ipynb rename to asl_core/notebooks/multi_modal/solutions/image_captioning.ipynb index 6e9929c0e..6e39c49d1 100644 --- a/notebooks/multi_modal/solutions/image_captioning.ipynb +++ b/asl_core/notebooks/multi_modal/solutions/image_captioning.ipynb @@ -868,9 +868,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m134" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/recommendation_systems/labs/1_content_based_by_hand.ipynb b/asl_core/notebooks/recommendation_systems/labs/1_content_based_by_hand.ipynb similarity index 99% rename from notebooks/recommendation_systems/labs/1_content_based_by_hand.ipynb rename to asl_core/notebooks/recommendation_systems/labs/1_content_based_by_hand.ipynb index 65311c3e1..80a1ede44 100644 --- a/notebooks/recommendation_systems/labs/1_content_based_by_hand.ipynb +++ b/asl_core/notebooks/recommendation_systems/labs/1_content_based_by_hand.ipynb @@ -493,9 +493,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/recommendation_systems/labs/2_als_bqml.ipynb b/asl_core/notebooks/recommendation_systems/labs/2_als_bqml.ipynb similarity index 98% rename from notebooks/recommendation_systems/labs/2_als_bqml.ipynb rename to asl_core/notebooks/recommendation_systems/labs/2_als_bqml.ipynb index 8af35f133..3f321ff1d 100644 --- a/notebooks/recommendation_systems/labs/2_als_bqml.ipynb +++ b/asl_core/notebooks/recommendation_systems/labs/2_als_bqml.ipynb @@ -32,7 +32,9 @@ "PROJECT = !(gcloud config get-value core/project)\n", "PROJECT = PROJECT[0]\n", "\n", - "%env PROJECT=$PROJECT" + "%env PROJECT=$PROJECT\n", + "\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -323,9 +325,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/recommendation_systems/labs/3_als_bqml_hybrid.ipynb b/asl_core/notebooks/recommendation_systems/labs/3_als_bqml_hybrid.ipynb similarity index 99% rename from notebooks/recommendation_systems/labs/3_als_bqml_hybrid.ipynb rename to asl_core/notebooks/recommendation_systems/labs/3_als_bqml_hybrid.ipynb index 8c7978235..f0a56834e 100644 --- a/notebooks/recommendation_systems/labs/3_als_bqml_hybrid.ipynb +++ b/asl_core/notebooks/recommendation_systems/labs/3_als_bqml_hybrid.ipynb @@ -27,7 +27,9 @@ "PROJECT = !(gcloud config get-value core/project)\n", "PROJECT = PROJECT[0]\n", "\n", - "%env PROJECT=$PROJECT" + "%env PROJECT=$PROJECT\n", + "\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -488,9 +490,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/recommendation_systems/labs/tfrs_basic_retrieval.ipynb b/asl_core/notebooks/recommendation_systems/labs/tfrs_basic_retrieval.ipynb similarity index 99% rename from notebooks/recommendation_systems/labs/tfrs_basic_retrieval.ipynb rename to asl_core/notebooks/recommendation_systems/labs/tfrs_basic_retrieval.ipynb index c8d944a65..8dda5dad9 100644 --- a/notebooks/recommendation_systems/labs/tfrs_basic_retrieval.ipynb +++ b/asl_core/notebooks/recommendation_systems/labs/tfrs_basic_retrieval.ipynb @@ -1155,9 +1155,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m120" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/recommendation_systems/solutions/1_content_based_by_hand.ipynb b/asl_core/notebooks/recommendation_systems/solutions/1_content_based_by_hand.ipynb similarity index 99% rename from notebooks/recommendation_systems/solutions/1_content_based_by_hand.ipynb rename to asl_core/notebooks/recommendation_systems/solutions/1_content_based_by_hand.ipynb index 11b87c49b..6a7b882ca 100644 --- a/notebooks/recommendation_systems/solutions/1_content_based_by_hand.ipynb +++ b/asl_core/notebooks/recommendation_systems/solutions/1_content_based_by_hand.ipynb @@ -371,9 +371,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/recommendation_systems/solutions/2_als_bqml.ipynb b/asl_core/notebooks/recommendation_systems/solutions/2_als_bqml.ipynb similarity index 98% rename from notebooks/recommendation_systems/solutions/2_als_bqml.ipynb rename to asl_core/notebooks/recommendation_systems/solutions/2_als_bqml.ipynb index ae7fb4354..a3252e46f 100644 --- a/notebooks/recommendation_systems/solutions/2_als_bqml.ipynb +++ b/asl_core/notebooks/recommendation_systems/solutions/2_als_bqml.ipynb @@ -32,7 +32,9 @@ "PROJECT = !(gcloud config get-value core/project)\n", "PROJECT = PROJECT[0]\n", "\n", - "%env PROJECT=$PROJECT" + "%env PROJECT=$PROJECT\n", + "\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -328,9 +330,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/recommendation_systems/solutions/3_als_bqml_hybrid.ipynb b/asl_core/notebooks/recommendation_systems/solutions/3_als_bqml_hybrid.ipynb similarity index 99% rename from notebooks/recommendation_systems/solutions/3_als_bqml_hybrid.ipynb rename to asl_core/notebooks/recommendation_systems/solutions/3_als_bqml_hybrid.ipynb index 09fbff0cc..534e3187e 100644 --- a/notebooks/recommendation_systems/solutions/3_als_bqml_hybrid.ipynb +++ b/asl_core/notebooks/recommendation_systems/solutions/3_als_bqml_hybrid.ipynb @@ -27,7 +27,9 @@ "PROJECT = !(gcloud config get-value core/project)\n", "PROJECT = PROJECT[0]\n", "\n", - "%env PROJECT=$PROJECT" + "%env PROJECT=$PROJECT\n", + "\n", + "%load_ext google.cloud.bigquery" ] }, { @@ -505,9 +507,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/recommendation_systems/solutions/tfrs_basic_retrieval.ipynb b/asl_core/notebooks/recommendation_systems/solutions/tfrs_basic_retrieval.ipynb similarity index 99% rename from notebooks/recommendation_systems/solutions/tfrs_basic_retrieval.ipynb rename to asl_core/notebooks/recommendation_systems/solutions/tfrs_basic_retrieval.ipynb index 0f8ea306c..5457772c7 100644 --- a/notebooks/recommendation_systems/solutions/tfrs_basic_retrieval.ipynb +++ b/asl_core/notebooks/recommendation_systems/solutions/tfrs_basic_retrieval.ipynb @@ -871,9 +871,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m120" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/responsible_ai/explainable_ai/assets/flowers/flower1.jpg b/asl_core/notebooks/responsible_ai/explainable_ai/assets/flowers/flower1.jpg similarity index 100% rename from notebooks/responsible_ai/explainable_ai/assets/flowers/flower1.jpg rename to asl_core/notebooks/responsible_ai/explainable_ai/assets/flowers/flower1.jpg diff --git a/notebooks/responsible_ai/explainable_ai/assets/flowers/flower2.jpg b/asl_core/notebooks/responsible_ai/explainable_ai/assets/flowers/flower2.jpg similarity index 100% rename from notebooks/responsible_ai/explainable_ai/assets/flowers/flower2.jpg rename to asl_core/notebooks/responsible_ai/explainable_ai/assets/flowers/flower2.jpg diff --git a/notebooks/responsible_ai/explainable_ai/assets/flowers/flower3.jpg b/asl_core/notebooks/responsible_ai/explainable_ai/assets/flowers/flower3.jpg similarity index 100% rename from notebooks/responsible_ai/explainable_ai/assets/flowers/flower3.jpg rename to asl_core/notebooks/responsible_ai/explainable_ai/assets/flowers/flower3.jpg diff --git a/notebooks/responsible_ai/explainable_ai/assets/images/IG_fireboat.png b/asl_core/notebooks/responsible_ai/explainable_ai/assets/images/IG_fireboat.png similarity index 100% rename from notebooks/responsible_ai/explainable_ai/assets/images/IG_fireboat.png rename to asl_core/notebooks/responsible_ai/explainable_ai/assets/images/IG_fireboat.png diff --git a/notebooks/responsible_ai/explainable_ai/integrated_gradients.ipynb b/asl_core/notebooks/responsible_ai/explainable_ai/integrated_gradients.ipynb similarity index 99% rename from notebooks/responsible_ai/explainable_ai/integrated_gradients.ipynb rename to asl_core/notebooks/responsible_ai/explainable_ai/integrated_gradients.ipynb index 2ea2078f6..a6f68ad1f 100644 --- a/notebooks/responsible_ai/explainable_ai/integrated_gradients.ipynb +++ b/asl_core/notebooks/responsible_ai/explainable_ai/integrated_gradients.ipynb @@ -2391,9 +2391,9 @@ "uri": "gcr.io/deeplearning-platform-release/tf2-gpu.2-3:m75" }, "kernelspec": { - "display_name": "Python 3", + "display_name": "ASL Core", "language": "python", - "name": "python3" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/responsible_ai/explainable_ai/labs/xai_image_saliency.ipynb b/asl_core/notebooks/responsible_ai/explainable_ai/labs/xai_image_saliency.ipynb similarity index 99% rename from notebooks/responsible_ai/explainable_ai/labs/xai_image_saliency.ipynb rename to asl_core/notebooks/responsible_ai/explainable_ai/labs/xai_image_saliency.ipynb index cb5e0aa70..46245c75c 100644 --- a/notebooks/responsible_ai/explainable_ai/labs/xai_image_saliency.ipynb +++ b/asl_core/notebooks/responsible_ai/explainable_ai/labs/xai_image_saliency.ipynb @@ -823,9 +823,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/responsible_ai/explainable_ai/labs/xai_image_vertex.ipynb b/asl_core/notebooks/responsible_ai/explainable_ai/labs/xai_image_vertex.ipynb similarity index 99% rename from notebooks/responsible_ai/explainable_ai/labs/xai_image_vertex.ipynb rename to asl_core/notebooks/responsible_ai/explainable_ai/labs/xai_image_vertex.ipynb index 9137fda70..c33234f66 100644 --- a/notebooks/responsible_ai/explainable_ai/labs/xai_image_vertex.ipynb +++ b/asl_core/notebooks/responsible_ai/explainable_ai/labs/xai_image_vertex.ipynb @@ -993,9 +993,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m133" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/responsible_ai/explainable_ai/solutions/xai_image_saliency.ipynb b/asl_core/notebooks/responsible_ai/explainable_ai/solutions/xai_image_saliency.ipynb similarity index 99% rename from notebooks/responsible_ai/explainable_ai/solutions/xai_image_saliency.ipynb rename to asl_core/notebooks/responsible_ai/explainable_ai/solutions/xai_image_saliency.ipynb index d97d73720..898c3e2d7 100644 --- a/notebooks/responsible_ai/explainable_ai/solutions/xai_image_saliency.ipynb +++ b/asl_core/notebooks/responsible_ai/explainable_ai/solutions/xai_image_saliency.ipynb @@ -1085,9 +1085,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/responsible_ai/explainable_ai/solutions/xai_image_vertex.ipynb b/asl_core/notebooks/responsible_ai/explainable_ai/solutions/xai_image_vertex.ipynb similarity index 99% rename from notebooks/responsible_ai/explainable_ai/solutions/xai_image_vertex.ipynb rename to asl_core/notebooks/responsible_ai/explainable_ai/solutions/xai_image_vertex.ipynb index d7fcaa82a..9d9b06526 100644 --- a/notebooks/responsible_ai/explainable_ai/solutions/xai_image_vertex.ipynb +++ b/asl_core/notebooks/responsible_ai/explainable_ai/solutions/xai_image_vertex.ipynb @@ -1004,9 +1004,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/responsible_ai/explainable_ai/solutions/xai_text_with_lit.ipynb b/asl_core/notebooks/responsible_ai/explainable_ai/solutions/xai_text_with_lit.ipynb similarity index 99% rename from notebooks/responsible_ai/explainable_ai/solutions/xai_text_with_lit.ipynb rename to asl_core/notebooks/responsible_ai/explainable_ai/solutions/xai_text_with_lit.ipynb index a074e52e7..cc132c11b 100644 --- a/notebooks/responsible_ai/explainable_ai/solutions/xai_text_with_lit.ipynb +++ b/asl_core/notebooks/responsible_ai/explainable_ai/solutions/xai_text_with_lit.ipynb @@ -1398,9 +1398,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/responsible_ai/fairness/solutions/min_diff_keras.ipynb b/asl_core/notebooks/responsible_ai/fairness/solutions/min_diff_keras.ipynb similarity index 99% rename from notebooks/responsible_ai/fairness/solutions/min_diff_keras.ipynb rename to asl_core/notebooks/responsible_ai/fairness/solutions/min_diff_keras.ipynb index f349f7c63..eadc4e181 100644 --- a/notebooks/responsible_ai/fairness/solutions/min_diff_keras.ipynb +++ b/asl_core/notebooks/responsible_ai/fairness/solutions/min_diff_keras.ipynb @@ -1444,9 +1444,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/responsible_ai/privacy/solutions/privacy_dpsgd.ipynb b/asl_core/notebooks/responsible_ai/privacy/solutions/privacy_dpsgd.ipynb similarity index 99% rename from notebooks/responsible_ai/privacy/solutions/privacy_dpsgd.ipynb rename to asl_core/notebooks/responsible_ai/privacy/solutions/privacy_dpsgd.ipynb index a720ac060..5e7fb930e 100644 --- a/notebooks/responsible_ai/privacy/solutions/privacy_dpsgd.ipynb +++ b/asl_core/notebooks/responsible_ai/privacy/solutions/privacy_dpsgd.ipynb @@ -533,9 +533,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132" }, "kernelspec": { - "display_name": "TF Privacy Kernel (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-env-tf_privacy_kernel-tf_privacy_kernel" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/responsible_ai/safety/solutions/gemini_safety_ratings.ipynb b/asl_core/notebooks/responsible_ai/safety/solutions/gemini_safety_ratings.ipynb similarity index 99% rename from notebooks/responsible_ai/safety/solutions/gemini_safety_ratings.ipynb rename to asl_core/notebooks/responsible_ai/safety/solutions/gemini_safety_ratings.ipynb index f450fe1af..3292892e2 100644 --- a/notebooks/responsible_ai/safety/solutions/gemini_safety_ratings.ipynb +++ b/asl_core/notebooks/responsible_ai/safety/solutions/gemini_safety_ratings.ipynb @@ -396,9 +396,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m128" }, "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/text_models/assets/qa/Ex1.png b/asl_core/notebooks/text_models/assets/qa/Ex1.png similarity index 100% rename from notebooks/text_models/assets/qa/Ex1.png rename to asl_core/notebooks/text_models/assets/qa/Ex1.png diff --git a/notebooks/text_models/assets/qa/Ex2.png b/asl_core/notebooks/text_models/assets/qa/Ex2.png similarity index 100% rename from notebooks/text_models/assets/qa/Ex2.png rename to asl_core/notebooks/text_models/assets/qa/Ex2.png diff --git a/notebooks/text_models/assets/qa/First.png b/asl_core/notebooks/text_models/assets/qa/First.png similarity index 100% rename from notebooks/text_models/assets/qa/First.png rename to asl_core/notebooks/text_models/assets/qa/First.png diff --git a/notebooks/text_models/assets/qa/ImproveModel.png b/asl_core/notebooks/text_models/assets/qa/ImproveModel.png similarity index 100% rename from notebooks/text_models/assets/qa/ImproveModel.png rename to asl_core/notebooks/text_models/assets/qa/ImproveModel.png diff --git a/notebooks/text_models/assets/qa/QA.png b/asl_core/notebooks/text_models/assets/qa/QA.png similarity index 100% rename from notebooks/text_models/assets/qa/QA.png rename to asl_core/notebooks/text_models/assets/qa/QA.png diff --git a/notebooks/text_models/data/squad10k.csv b/asl_core/notebooks/text_models/data/squad10k.csv similarity index 100% rename from notebooks/text_models/data/squad10k.csv rename to asl_core/notebooks/text_models/data/squad10k.csv diff --git a/notebooks/text_models/data/squadlite.csv b/asl_core/notebooks/text_models/data/squadlite.csv similarity index 100% rename from notebooks/text_models/data/squadlite.csv rename to asl_core/notebooks/text_models/data/squadlite.csv diff --git a/notebooks/text_models/data/squadtest.csv b/asl_core/notebooks/text_models/data/squadtest.csv similarity index 100% rename from notebooks/text_models/data/squadtest.csv rename to asl_core/notebooks/text_models/data/squadtest.csv diff --git a/notebooks/text_models/data/squadtest1k.csv b/asl_core/notebooks/text_models/data/squadtest1k.csv similarity index 100% rename from notebooks/text_models/data/squadtest1k.csv rename to asl_core/notebooks/text_models/data/squadtest1k.csv diff --git a/notebooks/text_models/labs/assets/cooc2emb_artifacts.png b/asl_core/notebooks/text_models/labs/assets/cooc2emb_artifacts.png similarity index 100% rename from notebooks/text_models/labs/assets/cooc2emb_artifacts.png rename to asl_core/notebooks/text_models/labs/assets/cooc2emb_artifacts.png diff --git a/notebooks/text_models/labs/assets/cooc2emb_nn.png b/asl_core/notebooks/text_models/labs/assets/cooc2emb_nn.png similarity index 100% rename from notebooks/text_models/labs/assets/cooc2emb_nn.png rename to asl_core/notebooks/text_models/labs/assets/cooc2emb_nn.png diff --git a/notebooks/text_models/labs/assets/cooc2emb_tb_search.png b/asl_core/notebooks/text_models/labs/assets/cooc2emb_tb_search.png similarity index 100% rename from notebooks/text_models/labs/assets/cooc2emb_tb_search.png rename to asl_core/notebooks/text_models/labs/assets/cooc2emb_tb_search.png diff --git a/notebooks/text_models/labs/assets/crate_a_dataset_1.png b/asl_core/notebooks/text_models/labs/assets/crate_a_dataset_1.png similarity index 100% rename from notebooks/text_models/labs/assets/crate_a_dataset_1.png rename to asl_core/notebooks/text_models/labs/assets/crate_a_dataset_1.png diff --git a/notebooks/text_models/labs/assets/emb2hub_artifacts.png b/asl_core/notebooks/text_models/labs/assets/emb2hub_artifacts.png similarity index 100% rename from notebooks/text_models/labs/assets/emb2hub_artifacts.png rename to asl_core/notebooks/text_models/labs/assets/emb2hub_artifacts.png diff --git a/notebooks/text_models/labs/assets/embeddings_classifier_accuracy.png b/asl_core/notebooks/text_models/labs/assets/embeddings_classifier_accuracy.png similarity index 100% rename from notebooks/text_models/labs/assets/embeddings_classifier_accuracy.png rename to asl_core/notebooks/text_models/labs/assets/embeddings_classifier_accuracy.png diff --git a/notebooks/text_models/labs/assets/evaluate_1.png b/asl_core/notebooks/text_models/labs/assets/evaluate_1.png similarity index 100% rename from notebooks/text_models/labs/assets/evaluate_1.png rename to asl_core/notebooks/text_models/labs/assets/evaluate_1.png diff --git a/notebooks/text_models/labs/assets/get_started.png b/asl_core/notebooks/text_models/labs/assets/get_started.png similarity index 100% rename from notebooks/text_models/labs/assets/get_started.png rename to asl_core/notebooks/text_models/labs/assets/get_started.png diff --git a/notebooks/text_models/labs/assets/items_1.png b/asl_core/notebooks/text_models/labs/assets/items_1.png similarity index 100% rename from notebooks/text_models/labs/assets/items_1.png rename to asl_core/notebooks/text_models/labs/assets/items_1.png diff --git a/notebooks/text_models/labs/assets/new_dataset_1.png b/asl_core/notebooks/text_models/labs/assets/new_dataset_1.png similarity index 100% rename from notebooks/text_models/labs/assets/new_dataset_1.png rename to asl_core/notebooks/text_models/labs/assets/new_dataset_1.png diff --git a/notebooks/text_models/labs/assets/predict_with_python.png b/asl_core/notebooks/text_models/labs/assets/predict_with_python.png similarity index 100% rename from notebooks/text_models/labs/assets/predict_with_python.png rename to asl_core/notebooks/text_models/labs/assets/predict_with_python.png diff --git a/notebooks/text_models/labs/assets/processing_text_items_1.png b/asl_core/notebooks/text_models/labs/assets/processing_text_items_1.png similarity index 100% rename from notebooks/text_models/labs/assets/processing_text_items_1.png rename to asl_core/notebooks/text_models/labs/assets/processing_text_items_1.png diff --git a/notebooks/text_models/labs/assets/select_files_to_import.png b/asl_core/notebooks/text_models/labs/assets/select_files_to_import.png similarity index 100% rename from notebooks/text_models/labs/assets/select_files_to_import.png rename to asl_core/notebooks/text_models/labs/assets/select_files_to_import.png diff --git a/notebooks/text_models/labs/assets/test_use_1.png b/asl_core/notebooks/text_models/labs/assets/test_use_1.png similarity index 100% rename from notebooks/text_models/labs/assets/test_use_1.png rename to asl_core/notebooks/text_models/labs/assets/test_use_1.png diff --git a/notebooks/text_models/labs/assets/text2cooc_markdown_artifacts.png b/asl_core/notebooks/text_models/labs/assets/text2cooc_markdown_artifacts.png similarity index 100% rename from notebooks/text_models/labs/assets/text2cooc_markdown_artifacts.png rename to asl_core/notebooks/text_models/labs/assets/text2cooc_markdown_artifacts.png diff --git a/notebooks/text_models/labs/assets/text2hub_download.png b/asl_core/notebooks/text_models/labs/assets/text2hub_download.png similarity index 100% rename from notebooks/text_models/labs/assets/text2hub_download.png rename to asl_core/notebooks/text_models/labs/assets/text2hub_download.png diff --git a/notebooks/text_models/labs/assets/text2hub_experiment_list.png b/asl_core/notebooks/text_models/labs/assets/text2hub_experiment_list.png similarity index 100% rename from notebooks/text_models/labs/assets/text2hub_experiment_list.png rename to asl_core/notebooks/text_models/labs/assets/text2hub_experiment_list.png diff --git a/notebooks/text_models/labs/assets/text2hub_experiment_list1.png b/asl_core/notebooks/text_models/labs/assets/text2hub_experiment_list1.png similarity index 100% rename from notebooks/text_models/labs/assets/text2hub_experiment_list1.png rename to asl_core/notebooks/text_models/labs/assets/text2hub_experiment_list1.png diff --git a/notebooks/text_models/labs/assets/text2hub_run_creation.png b/asl_core/notebooks/text_models/labs/assets/text2hub_run_creation.png similarity index 100% rename from notebooks/text_models/labs/assets/text2hub_run_creation.png rename to asl_core/notebooks/text_models/labs/assets/text2hub_run_creation.png diff --git a/notebooks/text_models/labs/assets/text2hub_run_parameters.png b/asl_core/notebooks/text_models/labs/assets/text2hub_run_parameters.png similarity index 100% rename from notebooks/text_models/labs/assets/text2hub_run_parameters.png rename to asl_core/notebooks/text_models/labs/assets/text2hub_run_parameters.png diff --git a/notebooks/text_models/labs/assets/text2hub_run_parameters1.png b/asl_core/notebooks/text_models/labs/assets/text2hub_run_parameters1.png similarity index 100% rename from notebooks/text_models/labs/assets/text2hub_run_parameters1.png rename to asl_core/notebooks/text_models/labs/assets/text2hub_run_parameters1.png diff --git a/notebooks/text_models/labs/assets/text2hub_upload.png b/asl_core/notebooks/text_models/labs/assets/text2hub_upload.png similarity index 100% rename from notebooks/text_models/labs/assets/text2hub_upload.png rename to asl_core/notebooks/text_models/labs/assets/text2hub_upload.png diff --git a/notebooks/text_models/labs/assets/text2hub_upload1.png b/asl_core/notebooks/text_models/labs/assets/text2hub_upload1.png similarity index 100% rename from notebooks/text_models/labs/assets/text2hub_upload1.png rename to asl_core/notebooks/text_models/labs/assets/text2hub_upload1.png diff --git a/notebooks/text_models/labs/assets/train_dataset_1.png b/asl_core/notebooks/text_models/labs/assets/train_dataset_1.png similarity index 100% rename from notebooks/text_models/labs/assets/train_dataset_1.png rename to asl_core/notebooks/text_models/labs/assets/train_dataset_1.png diff --git a/notebooks/text_models/labs/assets/vertex/batch_predict_1.png b/asl_core/notebooks/text_models/labs/assets/vertex/batch_predict_1.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/batch_predict_1.png rename to asl_core/notebooks/text_models/labs/assets/vertex/batch_predict_1.png diff --git a/notebooks/text_models/labs/assets/vertex/batch_predict_2.png b/asl_core/notebooks/text_models/labs/assets/vertex/batch_predict_2.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/batch_predict_2.png rename to asl_core/notebooks/text_models/labs/assets/vertex/batch_predict_2.png diff --git a/notebooks/text_models/labs/assets/vertex/create_dataset.png b/asl_core/notebooks/text_models/labs/assets/vertex/create_dataset.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/create_dataset.png rename to asl_core/notebooks/text_models/labs/assets/vertex/create_dataset.png diff --git a/notebooks/text_models/labs/assets/vertex/deploy.png b/asl_core/notebooks/text_models/labs/assets/vertex/deploy.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/deploy.png rename to asl_core/notebooks/text_models/labs/assets/vertex/deploy.png diff --git a/notebooks/text_models/labs/assets/vertex/evaluate_1.png b/asl_core/notebooks/text_models/labs/assets/vertex/evaluate_1.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/evaluate_1.png rename to asl_core/notebooks/text_models/labs/assets/vertex/evaluate_1.png diff --git a/notebooks/text_models/labs/assets/vertex/evaluate_2.png b/asl_core/notebooks/text_models/labs/assets/vertex/evaluate_2.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/evaluate_2.png rename to asl_core/notebooks/text_models/labs/assets/vertex/evaluate_2.png diff --git a/notebooks/text_models/labs/assets/vertex/online_predict.png b/asl_core/notebooks/text_models/labs/assets/vertex/online_predict.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/online_predict.png rename to asl_core/notebooks/text_models/labs/assets/vertex/online_predict.png diff --git a/notebooks/text_models/labs/assets/vertex/select_gcs_file.png b/asl_core/notebooks/text_models/labs/assets/vertex/select_gcs_file.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/select_gcs_file.png rename to asl_core/notebooks/text_models/labs/assets/vertex/select_gcs_file.png diff --git a/notebooks/text_models/labs/assets/vertex/train_model_1.png b/asl_core/notebooks/text_models/labs/assets/vertex/train_model_1.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/train_model_1.png rename to asl_core/notebooks/text_models/labs/assets/vertex/train_model_1.png diff --git a/notebooks/text_models/labs/assets/vertex/train_model_2.png b/asl_core/notebooks/text_models/labs/assets/vertex/train_model_2.png similarity index 100% rename from notebooks/text_models/labs/assets/vertex/train_model_2.png rename to asl_core/notebooks/text_models/labs/assets/vertex/train_model_2.png diff --git a/notebooks/text_models/labs/assets/word2vec_full_softmax.png b/asl_core/notebooks/text_models/labs/assets/word2vec_full_softmax.png similarity index 100% rename from notebooks/text_models/labs/assets/word2vec_full_softmax.png rename to asl_core/notebooks/text_models/labs/assets/word2vec_full_softmax.png diff --git a/notebooks/text_models/labs/assets/word2vec_negative_sampling.png b/asl_core/notebooks/text_models/labs/assets/word2vec_negative_sampling.png similarity index 100% rename from notebooks/text_models/labs/assets/word2vec_negative_sampling.png rename to asl_core/notebooks/text_models/labs/assets/word2vec_negative_sampling.png diff --git a/notebooks/text_models/labs/assets/word2vec_skipgram.png b/asl_core/notebooks/text_models/labs/assets/word2vec_skipgram.png similarity index 100% rename from notebooks/text_models/labs/assets/word2vec_skipgram.png rename to asl_core/notebooks/text_models/labs/assets/word2vec_skipgram.png diff --git a/notebooks/text_models/labs/assets/word2vec_skipgram_objective.png b/asl_core/notebooks/text_models/labs/assets/word2vec_skipgram_objective.png similarity index 100% rename from notebooks/text_models/labs/assets/word2vec_skipgram_objective.png rename to asl_core/notebooks/text_models/labs/assets/word2vec_skipgram_objective.png diff --git a/notebooks/text_models/labs/assets/word2vec_tensorboard.png b/asl_core/notebooks/text_models/labs/assets/word2vec_tensorboard.png similarity index 100% rename from notebooks/text_models/labs/assets/word2vec_tensorboard.png rename to asl_core/notebooks/text_models/labs/assets/word2vec_tensorboard.png diff --git a/notebooks/text_models/labs/classify_text_with_bert.ipynb b/asl_core/notebooks/text_models/labs/classify_text_with_bert.ipynb similarity index 99% rename from notebooks/text_models/labs/classify_text_with_bert.ipynb rename to asl_core/notebooks/text_models/labs/classify_text_with_bert.ipynb index d23f28574..69e7bae81 100644 --- a/notebooks/text_models/labs/classify_text_with_bert.ipynb +++ b/asl_core/notebooks/text_models/labs/classify_text_with_bert.ipynb @@ -125,8 +125,8 @@ "source": [ "url = \"https://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz\"\n", "\n", - "# Set a path to a folder outside the git repo. This is important so data won't get indexed by git on Jupyter lab\n", - "path = \"/home/jupyter/\"\n", + "path = \"./bert_dataset/\"\n", + "os.makedirs(path, exist_ok=True) \n", "\n", "dataset = keras.utils.get_file(\n", " \"aclImdb_v1.tar.gz\", url, untar=True, cache_dir=path, cache_subdir=\"\"\n", @@ -859,7 +859,7 @@ "outputs": [], "source": [ "TIMESTAMP = datetime.datetime.now().strftime(\"%Y%m%d%H%M%S\")\n", - "PROJECT = !gcloud config list --format 'value(core.project)' 2>/dev/null\n", + "PROJECT = !gcloud config get-value project 2>/dev/null\n", "PROJECT = PROJECT[0]\n", "BUCKET = PROJECT\n", "REGION = \"us-central1\"\n", @@ -1066,9 +1066,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/text_models/labs/keras_for_text_classification.ipynb b/asl_core/notebooks/text_models/labs/keras_for_text_classification.ipynb similarity index 99% rename from notebooks/text_models/labs/keras_for_text_classification.ipynb rename to asl_core/notebooks/text_models/labs/keras_for_text_classification.ipynb index a8fa538ff..29f916ea9 100644 --- a/notebooks/text_models/labs/keras_for_text_classification.ipynb +++ b/asl_core/notebooks/text_models/labs/keras_for_text_classification.ipynb @@ -973,9 +973,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/text_models/labs/reusable_embeddings_vertex.ipynb b/asl_core/notebooks/text_models/labs/reusable_embeddings_vertex.ipynb similarity index 98% rename from notebooks/text_models/labs/reusable_embeddings_vertex.ipynb rename to asl_core/notebooks/text_models/labs/reusable_embeddings_vertex.ipynb index bd03d0e06..048317b2a 100644 --- a/notebooks/text_models/labs/reusable_embeddings_vertex.ipynb +++ b/asl_core/notebooks/text_models/labs/reusable_embeddings_vertex.ipynb @@ -38,6 +38,7 @@ "\n", "# Set `PATH` to include the directory containing saved_model_cli\n", "%load_ext tensorboard\n", + "%load_ext google.cloud.bigquery\n", "PATH = %env PATH\n", "%env PATH=/home/jupyter/.local/bin:{PATH}" ] @@ -507,8 +508,8 @@ "metadata": {}, "outputs": [], "source": [ - "X_train, Y_train = titles_train.values, encode_labels(sources_train)\n", - "X_valid, Y_valid = titles_valid.values, encode_labels(sources_valid)" + "X_train, Y_train = titles_train.to_numpy(), encode_labels(sources_train)\n", + "X_valid, Y_valid = titles_valid.to_numpy(), encode_labels(sources_valid)" ] }, { @@ -854,9 +855,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/text_models/labs/rnn_encoder_decoder.ipynb b/asl_core/notebooks/text_models/labs/rnn_encoder_decoder.ipynb similarity index 99% rename from notebooks/text_models/labs/rnn_encoder_decoder.ipynb rename to asl_core/notebooks/text_models/labs/rnn_encoder_decoder.ipynb index 91f68b91b..52eab0bb2 100644 --- a/notebooks/text_models/labs/rnn_encoder_decoder.ipynb +++ b/asl_core/notebooks/text_models/labs/rnn_encoder_decoder.ipynb @@ -931,9 +931,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m131" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/text_models/labs/text_generation.ipynb b/asl_core/notebooks/text_models/labs/text_generation.ipynb similarity index 99% rename from notebooks/text_models/labs/text_generation.ipynb rename to asl_core/notebooks/text_models/labs/text_generation.ipynb index 6747ef465..2129e066a 100644 --- a/notebooks/text_models/labs/text_generation.ipynb +++ b/asl_core/notebooks/text_models/labs/text_generation.ipynb @@ -1447,9 +1447,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/text_models/labs/text_generation_using_transformers.ipynb b/asl_core/notebooks/text_models/labs/text_generation_using_transformers.ipynb similarity index 99% rename from notebooks/text_models/labs/text_generation_using_transformers.ipynb rename to asl_core/notebooks/text_models/labs/text_generation_using_transformers.ipynb index 37ae79670..5beafff04 100644 --- a/notebooks/text_models/labs/text_generation_using_transformers.ipynb +++ b/asl_core/notebooks/text_models/labs/text_generation_using_transformers.ipynb @@ -747,9 +747,9 @@ "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m134" }, "kernelspec": { - "display_name": "Python 3 (ipykernel) (Local)", + "display_name": "ASL Core", "language": "python", - "name": "conda-base-py" + "name": "asl_core" }, "language_info": { "codemirror_mode": { diff --git a/notebooks/text_models/labs/word2vec.ipynb b/asl_core/notebooks/text_models/labs/word2vec.ipynb similarity index 97% rename from notebooks/text_models/labs/word2vec.ipynb rename to asl_core/notebooks/text_models/labs/word2vec.ipynb index d6fa40e30..0c2742f80 100644 --- a/notebooks/text_models/labs/word2vec.ipynb +++ b/asl_core/notebooks/text_models/labs/word2vec.ipynb @@ -190,7 +190,9 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ "import os\n", "import warnings\n", @@ -209,9 +211,7 @@ "import tensorflow as tf # Keep for tf.data pipelines\n", "import tqdm\n", "from keras import layers, ops # ops contains backend-agnostic math functions" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -222,17 +222,19 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ "print(f\"TensorFlow version: {tf.version.VERSION}\")\n", "print(f\"Keras version: {keras.__version__}\")" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ "# Change below if necessary\n", "PROJECT = !gcloud config get-value project # noqa: E999\n", @@ -246,22 +248,20 @@ "%env BUCKET=$BUCKET\n", "%env REGION=$REGION\n", "%env OUTDIR=$OUTDIR" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "XkJ5299Tek6B", "tags": [] }, + "outputs": [], "source": [ "SEED = 42\n", "AUTOTUNE = tf.data.AUTOTUNE" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -286,17 +286,17 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "bsl7jBzV6_KK", "tags": [] }, + "outputs": [], "source": [ "sentence = \"The wide road shimmered in the hot sun\"\n", "tokens = list(sentence.lower().split())\n", "print(len(tokens))" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -309,10 +309,12 @@ }, { "cell_type": "code", + "execution_count": null, "metadata": { "id": "UdYv1HJUQ8XA", "tags": [] }, + "outputs": [], "source": [ "vocab, index = {}, 1 # start indexing from 1\n", "vocab[\"
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Setup\n",
- "\n",
- "To run this lab, you may need to run the following command:\n",
- "\n",
- "```bash\n",
- "../../../scripts/setup_kubernetes_auth.sh\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create a Node.js server\n",
- "\n",
- "The file `./src/server.js` contains a simple Node.js server. Use `cat` to examine the contents of that file."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!cat ./src/server.js"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Start the server by running `node server.js` in the cell below. Open a terminal and type\n",
- "```bash\n",
- "curl http://localhost:8000\n",
- "```\n",
- "to see what the server outputs. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!node ./src/server.js"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "You should see the output `\"Hello World!\"`. Once you've verified this, interrupt the above running cell by hitting the stop button."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create and build a Docker image\n",
- "\n",
- "Now we will create a docker image called `hello_node.docker` that will do the following:\n",
- "\n",
- " 1. Start from the node image found on the Docker hub by inheriting from `node:6.9.2`\n",
- " 2. Expose port 8000\n",
- " 3. Copy the `./src/server.js` file to the image\n",
- " 4. Start the node server as we previously did manually using `CMD`\n",
- "\n",
- "**Exercise**\n",
- "\n",
- "Edit the file called called `hello_node.docker` in the `dockerfiles` folder to complete all the TODOs."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Next, build the image in your project using `docker build`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import os\n",
- "\n",
- "PROJECT_ID = \"your-gcp-project-here\" # REPLACE WITH YOUR PROJECT NAME\n",
- "ARTIFACT_REGISTRY_DIR = \"asl-artifact-repo\"\n",
- "os.environ[\"PROJECT_ID\"] = PROJECT_ID\n",
- "os.environ[\"ARTIFACT_REGISTRY_DIR\"] = ARTIFACT_REGISTRY_DIR"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "**Exercise**\n",
- "\n",
- "Use `docker build` to build the image from dockerfile you created above. Tag the image as `us-docker.pkg.dev/[PROJECT_ID]/[ARTIFACT_REGISTRY_DIR]/hello-node:v1`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "TODO: Your code goes here"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "It'll take some time to download and extract everything, but you can see the progress bars as the image builds. Once complete, test the image locally by running a Docker container as a daemon on port 8000 from your newly-created container image.\n",
- "\n",
- "**Exercise**\n",
- "\n",
- "Run the container using `docker run` on the port 8000."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "TODO: Your code goes here"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Your output should look something like this:\n",
- "```bash\n",
- "b16e5ccb74dc39b0b43a5b20df1c22ff8b41f64a43aef15e12cc9ac3b3f47cfd\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Right now, since you used the `--d` flag, the container process is running in the background. You can verify it's running using `curl` as before."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!curl http://localhost:8000"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now, stop running the container. Get the container id using `docker ps` and then terminate using `docker stop`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!docker ps"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# your container id will be different\n",
- "!docker stop b16e5ccb74dc"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now that the image is working as intended, push it to the Google Artifact Registry, a private repository for your Docker images, accessible from your Google Cloud projects. First, configure docker using your local config file. The initial push may take a few minutes to complete. You'll see the progress bars as it builds."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin https://us-docker.pkg.dev"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "**Exercise**\n",
- "\n",
- "Push the `hello-node:v1` image to your Cloud Artifact Registry."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "TODO: Your code goes here"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The container image will be listed in your Console. Select `Navigation` > `Artifact Registry`."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create a cluster on GKE\n",
- "\n",
- "Now you're ready to create your Kubernetes Engine cluster. A cluster consists of a Kubernetes master API server hosted by Google and a set of worker nodes. The worker nodes are Compute Engine virtual machines.\n",
- "\n",
- "Create a cluster with two n1-standard-1 nodes (this will take a few minutes to complete). You can safely ignore warnings that come up when the cluster builds.\n",
- "\n",
- "**Note**: You can also create this cluster through the Console by opening the Navigation menu and selecting `Kubernetes Engine` > `Kubernetes clusters` > `Create cluster`."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "**Exercise** \n",
- "\n",
- "Create a GKE cluster in your project using `gcloud container clusters create`. Your cluster should\n",
- " 1. be named `hello-world`\n",
- " 2. have two nodes\n",
- " 3. consist of `n1-standard-1` machines"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "TODO: Your code goes here"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create a pod\n",
- "\n",
- "A Kubernetes pod is a group of containers tied together for administration and networking purposes. It can contain single or multiple containers. Here you'll use one container built with your `Node.js` image stored in your private Artifact Registry. It will serve content on port 8000.\n",
- "\n",
- "**Exercise**\n",
- "\n",
- "Create a pod with the `kubectl create` command. You should \n",
- " 1. name your deployment `hello-node`\n",
- " 2. be based on the image you created above called `us-docker.pkg.dev/[PROJECT_ID]/[ARTIFACT_REGISTRY_DIR]/hello-node:v1`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "TODO: Your code goes here"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "As you can see, you've created a deployment object. Deployments are the recommended way to create and scale pods. Here, a new deployment manages a single pod replica running the `hello-node:v1` image.\n",
- "\n",
- "View the deployment using `kubectl get`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!kubectl get deployments"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Similarly, view the pods created by the deployment by also using `kubectl get`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!kubectl get pods"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Here are some other good kubectl commands you should know. They won't change the state of the cluster. Others can be found [here](https://kubernetes.io/docs/reference/kubectl/overview/).\n",
- " * `kubectl cluster-info`\n",
- " * `kubectl config view`\n",
- " * `kubectl get events`\n",
- " * `kubectl logs
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Roll out an upgrade to your service\n",
- "At some point the application that you've deployed to production will require bug fixes or additional features. Kubernetes helps you deploy a new version to production without impacting your users.\n",
- "\n",
- "First, modify the application by opening `server.js` so that the response is \n",
- "```bash\n",
- "response.end(\"Hello Kubernetes World!\");\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now you can build and publish a new container image to the registry with an incremented tag (`v2` in this case).\n",
- "\n",
- "**Note**: Building and pushing this updated image should be quicker since caching is being taken advantage of."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "**Exercise**\n",
- "\n",
- "Build and push the updated image using the `hello_node.docker` file. Tag the updated image as `us-docker.pkg.dev/[PROJECT_ID]/[ARTIFACT_REGISTRY_DIR]/hello-node:v2`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "TODO: Your code goes here\n",
- "TODO: Your code goes here"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Kubernetes will smoothly update your replication controller to the new version of the application. In order to change the image label for your running container, you will edit the existing `hello-node` deployment and change the image from `us-docker.pkg.dev/[PROJECT_ID]/[ARTIFACT_REGISTRY_DIR]/hello-node:v1` to `us-docker.pkg.dev/[PROJECT_ID]/[ARTIFACT_REGISTRY_DIR]/hello-node:v2`.\n",
- "\n",
- "To do this, use the `kubectl edit` command. It opens a text editor displaying the full deployment yaml configuration. It isn't necessary to understand the full yaml config right now, just understand that by updating the `spec.template.spec.containers.image` field in the config you are telling the deployment to update the pods with the new image."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Open a terminal and run the following command:\n",
- "\n",
- "```bash \n",
- "kubectl edit deployment hello-node\n",
- "```\n",
- "\n",
- "Look for `Spec` > `containers` > `image` and change the version number to `v2`. This is the output you should see:\n",
- "\n",
- "```bash\n",
- "deployment.extensions/hello-node edited\n",
- "```\n",
- "\n",
- "New pods will be created with the new image and the old pods will be deleted. Run `kubectl get deployments` to confirm. \n",
- "\n",
- "**Note**: You may need to rerun the above command as it provisions machines."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!kubectl get deployments"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "While this is happening, the users of your services shouldn't see any interruption. After a little while they'll start accessing the new version of your application. You can find more details on rolling updates in this documentation.\n",
- "\n",
- "Hopefully with these deployment, scaling, and updated features, once you've set up your Kubernetes Engine cluster, you'll agree that Kubernetes will help you focus on the application rather than the infrastructure."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Cleanup\n",
- "\n",
- "Delete the cluster using `gcloud` to free up those resources. Use the `--quiet` flag if you are executing this in a notebook. Deleting the cluster can take a few minutes. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!gcloud container clusters --quiet delete hello-world"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Copyright 2020 Google LLC Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
- ]
- }
- ],
- "metadata": {
- "environment": {
- "kernel": "conda-base-py",
- "name": "workbench-notebooks.m121",
- "type": "gcloud",
- "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
- },
- "kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
- "language": "python",
- "name": "conda-base-py"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.14"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/notebooks/docker_and_kubernetes/solutions/2_intro_k8s.ipynb b/notebooks/docker_and_kubernetes/solutions/2_intro_k8s.ipynb
deleted file mode 100644
index 739fe70e6..000000000
--- a/notebooks/docker_and_kubernetes/solutions/2_intro_k8s.ipynb
+++ /dev/null
@@ -1,276 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Introduction to Kubernetes"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "**Learning Objectives**\n",
- " * Create GKE cluster from command line\n",
- " * Deploy an application to your cluster\n",
- " * Cleanup, delete the cluster "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Overview\n",
- "Kubernetes is an open source project (available on [kubernetes.io](kubernetes.io)) which can run on many different environments, from laptops to high-availability multi-node clusters; from public clouds to on-premise deployments; from virtual machines to bare metal.\n",
- "\n",
- "The goal of this lab is to provide a short introduction to Kubernetes (k8s) and some basic functionality."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Setup\n",
- "\n",
- "To run this lab, you may need to run the following command:\n",
- "\n",
- "```bash\n",
- "../../../scripts/setup_kubernetes_auth.sh\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create a GKE cluster\n",
- "\n",
- "A cluster consists of at least one cluster master machine and multiple worker machines called nodes. Nodes are Compute Engine virtual machine (VM) instances that run the Kubernetes processes necessary to make them part of the cluster.\n",
- "\n",
- "**Note**: Cluster names must start with a letter and end with an alphanumeric, and cannot be longer than 40 characters.\n",
- "\n",
- "We'll call our cluster `asl-cluster`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import os\n",
- "\n",
- "CLUSTER_NAME = \"asl-cluster\"\n",
- "ZONE = \"us-central1-a\"\n",
- "\n",
- "os.environ[\"CLUSTER_NAME\"] = CLUSTER_NAME\n",
- "os.environ[\"ZONE\"] = ZONE"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We'll set our default compute zone to `us-central1-a` and use `gcloud container clusters create ...` to create the GKE cluster. Let's first look at all the clusters we currently have. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!gcloud container clusters list"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Then we'll use `gcloud container clusters create` to create a new cluster using the `CLUSTER_NAME` we set above. This takes a few minutes..."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "gcloud config set compute/zone ${ZONE}\n",
- "gcloud container clusters create ${CLUSTER_NAME}"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now when we list our clusters again, we should see the cluster we created. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!gcloud container clusters list"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Get authentication credentials and deploy an application\n",
- "\n",
- "After creating your cluster, you need authentication credentials to interact with it. Use `get-credentials` to authenticate the cluster."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "gcloud container clusters get-credentials ${CLUSTER_NAME}"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "You can now deploy a containerized application to the cluster. For this lab, you'll run `hello-app` in your cluster.\n",
- "\n",
- "GKE uses Kubernetes objects to create and manage your cluster's resources. Kubernetes provides the [Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) object for deploying stateless applications like web servers. [Service](https://kubernetes.io/docs/concepts/services-networking/service/) objects define rules and load balancing for accessing your application from the internet."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Use the `kubectl create` command to create a new Deployment `hello-server` from the `hello-app` container image. The `--image` flag to specify a container image to deploy. The `kubectl create` command pulls the example image from an Artifact Registry bucket. Here, use [us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0](https://us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0) to indicate the specific image version to pull. If a version is not specified, the latest version is used."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!kubectl create deployment hello-server --image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "This Kubernetes command creates a Deployment object that represents `hello-server`. To create a Kubernetes Service, which is a Kubernetes resource that lets you expose your application to external traffic, run the `kubectl expose` command. \n",
- "\n",
- "In this command, \n",
- " * `--port` specifies the port that the container exposes.\n",
- " * `type=\"LoadBalancer\"` creates a Compute Engine load balancer for your container."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!kubectl expose deployment hello-server --type=LoadBalancer --port 8080"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Use the `kubectl get service` command to inspect the `hello-server` Service.\n",
- "\n",
- "**Note**: It might take a minute for an external IP address to be generated. Run the previous command again if the `EXTERNAL-IP` column for `hello-server` status is pending."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!kubectl get service"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "You can now view the application from your web browser, open a new tab and enter the following address, replacing `EXTERNAL IP` with the EXTERNAL-IP for `hello-server`:\n",
- "\n",
- "```bash\n",
- "http://[EXTERNAL_IP]:8080\n",
- "```\n",
- "\n",
- "You should see a simple page which displays\n",
- "\n",
- "```bash\n",
- "Hello, world!\n",
- "Version: 1.0.0\n",
- "Hostname: hello-server-5bfd595c65-7jqkn\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Cleanup\n",
- "\n",
- "Delete the cluster using `gcloud` to free up those resources. Use the `--quiet` flag if you are executing this in a notebook. Deleting the cluster can take a few minutes. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "gcloud container clusters --quiet delete ${CLUSTER_NAME}"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Copyright 2020 Google LLC Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
- ]
- }
- ],
- "metadata": {
- "environment": {
- "kernel": "conda-base-py",
- "name": "workbench-notebooks.m121",
- "type": "gcloud",
- "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
- },
- "kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
- "language": "python",
- "name": "conda-base-py"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.14"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/notebooks/docker_and_kubernetes/solutions/3_k8s_hello_node.ipynb b/notebooks/docker_and_kubernetes/solutions/3_k8s_hello_node.ipynb
deleted file mode 100644
index 5031f423c..000000000
--- a/notebooks/docker_and_kubernetes/solutions/3_k8s_hello_node.ipynb
+++ /dev/null
@@ -1,602 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Hello Node Kubernetes\n",
- "\n",
- "**Learning Objectives**\n",
- " * Create a Node.js server\n",
- " * Create a Docker container image\n",
- " * Create a container cluster and a Kubernetes pod\n",
- " * Scale up your services"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Overview\n",
- "\n",
- "The goal of this hands-on lab is for you to turn code that you have developed into a replicated application running on Kubernetes, which is running on Kubernetes Engine. For this lab the code will be a simple Hello World node.js app.\n",
- "\n",
- "Here's a diagram of the various parts in play in this lab, to help you understand how the pieces fit together with one another. Use this as a reference as you progress through the lab; it should all make sense by the time you get to the end (but feel free to ignore this for now).\n",
- "\n",
- "
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Setup\n",
- "\n",
- "To run this lab, you may need to run the following command:\n",
- "\n",
- "```bash\n",
- "../../../scripts/setup_kubernetes_auth.sh\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create a Node.js server\n",
- "\n",
- "The file `./src/server.js` contains a simple Node.js server. Use `cat` to examine the contents of that file."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!cat ./src/server.js"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Start the server by running `node server.js` in the cell below. Open a terminal and type\n",
- "```bash\n",
- "curl http://localhost:8000\n",
- "```\n",
- "to see what the server outputs. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!node ./src/server.js"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "You should see the output `\"Hello World!\"`. Once you've verified this, interrupt the above running cell by hitting the stop button."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create and build a Docker image\n",
- "\n",
- "Now we will create a docker image called `hello_node.docker` that will do the following:\n",
- "\n",
- " 1. Start from the node image found on the Docker hub by inheriting from `node:6.9.2`\n",
- " 2. Expose port 8000\n",
- " 3. Copy the `./src/server.js` file to the image\n",
- " 4. Start the node server as we previously did manually\n",
- "\n",
- "Save your Dockerfile in the folder labeled `dockerfiles`. Your finished Dockerfile should look something like this\n",
- "\n",
- "\n",
- "```bash\n",
- "FROM node:6.9.2\n",
- "\n",
- "EXPOSE 8000\n",
- "\n",
- "COPY ./src/server.js .\n",
- "\n",
- "CMD node server.js\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Next, build the image in your project using `docker build`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import os\n",
- "\n",
- "PROJECT_ID = \"qwiklabs-asl-02-3975462eb556\" # REPLACE WITH YOUR PROJECT NAME\n",
- "ARTIFACT_REGISTRY_DIR = \"asl-artifact-repo\"\n",
- "os.environ[\"PROJECT_ID\"] = PROJECT_ID\n",
- "os.environ[\"ARTIFACT_REGISTRY_DIR\"] = ARTIFACT_REGISTRY_DIR"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "docker build -f dockerfiles/hello_node.docker -t us-docker.pkg.dev/${PROJECT_ID}/${ARTIFACT_REGISTRY_DIR}/hello-node:v1 ."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "It'll take some time to download and extract everything, but you can see the progress bars as the image builds. Once complete, test the image locally by running a Docker container as a daemon on port 8000 from your newly-created container image.\n",
- "\n",
- "Run the container using `docker run`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "docker run -d -p 8000:8000 us-docker.pkg.dev/${PROJECT_ID}/${ARTIFACT_REGISTRY_DIR}/hello-node:v1"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Your output should look something like this:\n",
- "```bash\n",
- "b16e5ccb74dc39b0b43a5b20df1c22ff8b41f64a43aef15e12cc9ac3b3f47cfd\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Right now, since you used the `--d` flag, the container process is running in the background. You can verify it's running using `curl` as before."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!curl http://localhost:8000"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now, stop running the container. Get the container id using `docker ps` and then terminate using `docker stop`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!docker ps"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# your container id will be different\n",
- "!docker stop 2760d59ec659"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now that the image is working as intended, push it to the Google Artifact Registry, a private repository for your Docker images, accessible from your Google Cloud projects. First, configure docker using your local config file. The initial push may take a few minutes to complete. You'll see the progress bars as it builds."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin https://us-docker.pkg.dev"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "docker push us-docker.pkg.dev/${PROJECT_ID}/${ARTIFACT_REGISTRY_DIR}/hello-node:v1"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The container image will be listed in your Console. Select `Navigation` > `Artifact Registry`."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create a cluster on GKE\n",
- "\n",
- "Now you're ready to create your Kubernetes Engine cluster. A cluster consists of a Kubernetes master API server hosted by Google and a set of worker nodes. The worker nodes are Compute Engine virtual machines.\n",
- "\n",
- "Create a cluster with two n1-standard-1 nodes (this will take a few minutes to complete). You can safely ignore warnings that come up when the cluster builds.\n",
- "\n",
- "**Note**: You can also create this cluster through the Console by opening the Navigation menu and selecting `Kubernetes Engine` > `Kubernetes clusters` > `Create cluster`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!gcloud container clusters create hello-world \\\n",
- " --num-nodes 2 \\\n",
- " --machine-type n1-standard-1 \\\n",
- " --zone us-central1-a"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create a pod\n",
- "\n",
- "A Kubernetes pod is a group of containers tied together for administration and networking purposes. It can contain single or multiple containers. Here you'll use one container built with your `Node.js` image stored in your private Artifact Registry. It will serve content on port 8000.\n",
- "\n",
- "Create a pod with the `kubectl run` command."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "%%bash\n",
- "kubectl create deployment hello-node \\\n",
- " --image=us-docker.pkg.dev/${PROJECT_ID}/${ARTIFACT_REGISTRY_DIR}/hello-node:v1"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "As you can see, you've created a deployment object. Deployments are the recommended way to create and scale pods. Here, a new deployment manages a single pod replica running the `hello-node:v1` image.\n",
- "\n",
- "View the deployment using `kubectl get`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!kubectl get deployments"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Similarly, view the pods created by the deployment by also using `kubectl get`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!kubectl get pods"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Here are some other good kubectl commands you should know. They won't change the state of the cluster. Others can be found [here](https://kubernetes.io/docs/reference/kubectl/overview/).\n",
- " * `kubectl cluster-info`\n",
- " * `kubectl config view`\n",
- " * `kubectl get events`\n",
- " * `kubectl logs
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Roll out an upgrade to your service\n",
- "At some point the application that you've deployed to production will require bug fixes or additional features. Kubernetes helps you deploy a new version to production without impacting your users.\n",
- "\n",
- "First, modify the application by opening `server.js` so that the response is \n",
- "```bash\n",
- "response.end(\"Hello Kubernetes World!\");\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now you can build and publish a new container image to the registry with an incremented tag (`v2` in this case).\n",
- "\n",
- "**Note**: Building and pushing this updated image should be quicker since caching is being taken advantage of."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "%%bash\n",
- "docker build -f dockerfiles/hello_node.docker -t us-docker.pkg.dev/${PROJECT_ID}/${ARTIFACT_REGISTRY_DIR}/hello-node:v2 .\n",
- "docker push us-docker.pkg.dev/${PROJECT_ID}/${ARTIFACT_REGISTRY_DIR}/hello-node:v2"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Kubernetes will smoothly update your replication controller to the new version of the application. In order to change the image label for your running container, you will edit the existing `hello-node` deployment and change the image from `us-docker.pkg.dev/[PROJECT_ID]/[ARTIFACT_REGISTRY_DIR]/hello-node:v1` to `us-docker.pkg.dev/[PROJECT_ID]/[ARTIFACT_REGISTRY_DIR]/hello-node:v2`.\n",
- "\n",
- "To do this, use the `kubectl edit` command. It opens a text editor displaying the full deployment yaml configuration. It isn't necessary to understand the full yaml config right now, just understand that by updating the `spec.template.spec.containers.image` field in the config you are telling the deployment to update the pods with the new image."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Open a terminal and run the following command:\n",
- "\n",
- "```bash \n",
- "kubectl edit deployment hello-node\n",
- "```\n",
- "\n",
- "Look for `Spec` > `containers` > `image` and change the version number to `v2`. This is the output you should see:\n",
- "\n",
- "```bash\n",
- "deployment.extensions/hello-node edited\n",
- "```\n",
- "\n",
- "New pods will be created with the new image and the old pods will be deleted. Run `kubectl get deployments` to confirm. \n",
- "\n",
- "**Note**: You may need to rerun the above command as it provisions machines."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!kubectl get deployments"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "While this is happening, the users of your services shouldn't see any interruption. After a little while they'll start accessing the new version of your application. You can find more details on rolling updates in this documentation.\n",
- "\n",
- "Hopefully with these deployment, scaling, and updated features, once you've set up your Kubernetes Engine cluster, you'll agree that Kubernetes will help you focus on the application rather than the infrastructure."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Cleanup\n",
- "\n",
- "Delete the cluster using `gcloud` to free up those resources. Use the `--quiet` flag if you are executing this in a notebook. Deleting the cluster can take a few minutes. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!gcloud container clusters --quiet delete hello-world"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Copyright 2020 Google LLC Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
- ]
- }
- ],
- "metadata": {
- "environment": {
- "kernel": "conda-base-py",
- "name": "workbench-notebooks.m121",
- "type": "gcloud",
- "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m121"
- },
- "kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
- "language": "python",
- "name": "conda-base-py"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.14"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/notebooks/image_models/dataset_import_files/flowers.csv b/notebooks/image_models/dataset_import_files/flowers.csv
deleted file mode 100644
index 698dfdcbc..000000000
--- a/notebooks/image_models/dataset_import_files/flowers.csv
+++ /dev/null
@@ -1,3300 +0,0 @@
-gs://cloud-ml-data/img/flower_photos/daisy/754296579_30a9ae018c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/18089878729_907ed2c7cd_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/284497199_93a01f48f6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3554992110_81d8c9b0bd_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4065883015_4bb6010cb7_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/7420699022_60fa574524_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4558536575_d43a611bd4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/7568630428_8cf0fc16ff_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/7064813645_f7f48fb527.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933229095_f7e4218b28.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/14523675369_97c31d0b5b.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/21518663809_3d69f5b995_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/15782158700_3b9bf7d33e_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8713398906_28e59a225a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/6770436217_281da51e49_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8754822932_948afc7cef.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/22873310415_3a5674ec10_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/5967283168_90dd4daf28_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/483444865_65962cea07_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2229906591_e953785d13.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2520369272_1dcdb5a892_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/6903831250_a2757fff82_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/22679076_bdb4c24401_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/7227973870_806d9d3e42_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/6016195304_75306bb79a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/18389368680_91c24a2087_z.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3991962484_085ba2da94.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4932736308_827012cff2.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933230247_a0432f01da.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8050213579_48e1e7109f.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4500964841_b1142b50fb_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2838487505_6c3b48efa5_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/877083343_e3338c4125.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7808545612_546cfca610_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/19440660848_c789227129_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2540640433_dedd577263.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/129019877_8eea2978ca_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/18203367608_07a04e98a4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/7132677385_bcbdcc6001.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/15202632426_d88efb321a_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/13542672763_20c3cb9272.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5020805619_6c710793f7.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20704967595_a9c9b8d431.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/9609569441_eeb8566e94.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/10712722853_5632165b04.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2479491210_98e41c4e7d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2481827798_6087d71134.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/18684594849_7dd3634f5e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/13977181862_f8237b6b52.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/22686342422_c0b9e2f38e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5088766459_f81f50e57d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4872892690_52dc25b0b4.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2581171297_b0a249b92b_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2489638840_72ff3ee527_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3483575184_cb8d16a083_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/302782756_d35cb3e468.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2785458179_9130812eef_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2272006181_785f1be94f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/8759177308_951790e00d_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/22183529245_ce13557515_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/9406573080_60eab9278e_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4813483281_f3707a71e7_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/6732261031_861a1026fa_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/3154932290_4bf43bd34f_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13953090784_0c7d7a904e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5020805135_1219d7523d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4336536446_e635f48f2e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5206847130_ee4bf0e4de_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/17090993740_fcc8b60b81.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5626784099_b36dd3fb11_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/16656015339_2ccb7cd18d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606743797_c90c669757.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606817351_10f6e43a09.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7166598930_18d8686ace_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/15922772266_1167a06620.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/15760153042_a2a90e9da5_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4868595281_1e58083785.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7166552648_28b6dce578.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/9309388105_12c0b8dd54_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/8125886145_ae99f91fd0.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5110105726_53eb7a93be_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/17295127995_62eff434fe_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4646886118_b5c5ceaf6d_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/924782410_94ed7913ca_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8915661673_9a1cdc3755_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/10386503264_e05387e1f7_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3990989735_59e2751151_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/8681746439_d6beeefbf9.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/6936380780_19c26c918a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8979087213_28f572174c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/6148728633_27afc47b0c_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13514131694_d91da4f4fc.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/62293290_2c463891ff_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/799952628_bf836677fa_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13529687904_3d60abb479_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/200288046_0032f322ff_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5684911529_88a7ae32ba_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/65347450_53658c63bd_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/274848710_5185cf33b1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4632235020_d00ce1e497.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/20409866779_ac473f55e0_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/15821571649_06c4b9a868_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/174131220_c853df1287.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/5434914569_e9b982fde0_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/2575272111_f04d79b9af_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5231868667_f0baa71feb_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8880158802_6e10a452c7_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/7865295712_bcc94d120c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/4522153453_06437ca3af_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/17322195031_c2680809dc_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8267315764_129f2e1d77_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13176576813_50e77cc1d9.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/17080000869_a80e767f4a_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14955545254_324cd4ee75.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/9355706808_a9a723a8e8_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/7368435774_0045b9dc4e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3491933306_43cfe2cfbe.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3074406590_91c697c805_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/3540595981_73f14d1227_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8376558865_19c5cd6fd6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/158988663_6fe055fcb4.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/7857605684_fc86440c23.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/3750771898_cfd50090ba_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3624546109_8eb98f0cdb.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/136999986_e410a68efb_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3475811950_0fb89845f5_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9216286162_6ceefdd1b4_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8628453641_6f87755815_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3356112863_75da8bca2c_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/176458518_f81d4bff8e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/6239758929_50e5e5a476_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/12025038686_7f10811d4b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4755705724_976621a1e7.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4085794721_7cd88e0a6c_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15274443248_76b9f3eb24.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/3186520634_30e1c67aa5_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4575963749_2418ff8768.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2476937534_21b285aa46_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14094114202_4c1d7f1116.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2039797043_d5b709f275_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/2627513944_b1361e60ec_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/154332674_453cea64f4.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4590703575_6371c0a186_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5994572653_ea98afa3af_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5628296138_9031791fab.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4209052442_7e754f617c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/9404876600_04f6d37685.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4534460263_8e9611db3c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/467770225_e3b41d4dd3_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/422094774_28acc69a8b_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933230395_7930697335_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/459931395_24bf6531fe_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8969938579_4c2032dd96_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/10778387133_9141024b10.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/7187035716_5d0fb95c31_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/11746080_963537acdc.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/3446285408_4be9c0fded_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4746638094_f5336788a0_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/4713533500_fcc295de70_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606820461_952c450f90_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/14494590921_3bb1dc7b88_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/146023167_f905574d97_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5661431592_cea1108261_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/7342871880_c17fe0eb4f_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9484354480_07ff2ef0a6.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/1469549847_eac61a6802.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/17649230811_9bdbbacb8c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7082608511_f4cf233f59_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/8853083579_dd1dfa3188.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8711277462_b43df5454b_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933821940_38064522a8.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8791577794_7573712cb4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3950020811_dab89bebc0_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/1788484468_f73afa6c32_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/19710925313_31682fa22b_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/471298577_cc7558bcf1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7197581386_8a51f1bb12_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/9444202147_405290415b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4254850910_0610224342_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/18563353954_b761d97155_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/15241052342_466b38b68d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/9019694597_2d3bbedb17.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/525780443_bba812c26a_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/20905163782_312e2c3bda_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/22679060358_561ec823ae_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/440714501_9f8268e1b0.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/9515186037_3be48fe68f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/5139969631_743880e01d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2622697182_ea4aff29dd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8979062599_86cac547b8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7177682195_c29265748d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/5547758_eea9edfd54_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14164392167_650946a169_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/16702188449_3dacce90b2_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/1667199972_7ba7d999c1_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/6061175433_95fdb12f32_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2521827947_9d237779bb_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/18342918441_b1bb69a2fd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/40411019_526f3fc8d9_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/11595255065_d9550012fc.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4263272885_1a49ea5209.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/480228053_513791d474.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/756943228_e15a7b2318.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/2280950463_86510c2789_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7243174412_d3628e4cc4_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/9300754115_dd79670066_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/534547364_3f6b7279d2_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/9633056561_6f1b7e8faf_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/9293460423_7fbb1e3c32_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5067864967_19928ca94c_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14651383746_419dc73634_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4318007511_e9f4311936_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8681420404_6ae114f036_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2087981909_fd468de5c4_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/24781114_bc83aa811e_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/1879567877_8ed2a5faa7_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/9593034725_0062f0d24e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/141652526_2be95f21c3_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3990746027_338ee436d2_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/8120563761_ed5620664f_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/5577555349_2e8490259b.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/6958243974_8851425ddb_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/21346056089_e6f8074e5f_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/8616684075_71923bb771_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2511306240_9047015f2d_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/11694025703_9a906fedc1_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/16987075_9a690a2183.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4598938531_9749b3b56a.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13471563274_471fc1db33_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5129135346_3fa8e804d8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14128839257_23def53028.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/99383371_37a5ac12a3_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/130685347_afbffe3afa_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/133858239_3eaa8a91fd_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/873660804_37f5c6a46e_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5045509402_6e052ce443.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5979111555_61b400c070_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7099259755_1c66420206_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8712244311_da8e90bf8e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2225411981_6638c3e988.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/3504430338_77d6a7fab4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/367020749_3c9a652d75.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13911047024_8966d70560_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/16152175716_55d6968e08_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/3628485766_4ff937954a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/18599603859_f2ec616ddf_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/14084345111_8a4cb05a31.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14012247974_69ac128799.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14211880544_5d1f9d5aa8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3045046293_57f6d52065_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4495885281_fe2a3b671d.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/5970868068_fe1c8b282e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6104713425_8a3277e34a.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8713397694_bcbcbba2c2_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/483880052_19fdb26a9f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4544110929_a7de65d65f_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/7502389724_85b4a6c855_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/8671682526_7058143c99.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8668974855_8389ecbdca_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8717787983_c83bdf39fe_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5700781400_65761f3fce.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3084924076_4d5c5711af_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8712230357_1298b8513b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3589816063_50f8de7b64_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/921138131_9e1393eb2b_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/1445228333_59a07e0801.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/9483429732_5ae73eb672_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/301964511_fab84ea1c1.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/12024561754_ce9667e4dc_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4565139594_b28d260cb9.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/478765271_6a8ca1cfa1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/7199968650_72afc16d31_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13509967925_eaaeefa396_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2599662355_7782218c83.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3103591125_99107c8bbe_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/9310226774_d1b8f5d9c9.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/172311368_49412f881b.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/15319767030_e6c5602a77_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/7843447416_847e6ba7f4_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/14332947164_9b13513c71_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5979193298_639e877248.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4927658421_7eed83bc95_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/15219268336_f2460fca88_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3357432116_b3dce6fed3_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13888320717_d2919a879b_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7291185504_b740bbeba4_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/19425920580_cdc8f49aed_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/459633569_5ddf6bc116_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/12163418275_bd6a1edd61.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2067882323_8de6623ffd.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8502529435_c6e40d0df4.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/7141013005_d2f168c373.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/8887005939_b19e8305ee.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/17388697431_0d84c427d1_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/17122969189_0ec37cb6c9.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8032328803_30afac8b07_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/253426762_9793d43fcd.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/1140299375_3aa7024466.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/7448453384_fb9caaa9af_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/1265350143_6e2b276ec9.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/5015462205_440898fe41_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/16616096711_12375a0260_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/14510185271_b5d75dd98e_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/15122871130_6a7d0b4372_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/9831362123_5aac525a99_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2788276815_8f730bd942.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8748266132_5298a91dcf_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/8709110478_60d12efcd4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5073473370_bdbb5a99fc.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/15647243236_2778501cf5_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/19178753159_a471bf4b6b.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15222804561_0fde5eb4ae_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/4550278535_dfdf7b74ef.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2453532367_fc373df4de.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/144099102_bf63a41e4f_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2600382379_5791b0b35a_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/9301891790_971dcfb35d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4117918318_3c8935289b_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/7094271655_79a6f972c1_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/14381787252_e8e12e277a_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2408236801_f43c6bcff2.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/8632704230_ccafc5f7e2.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/16953818045_fea21c8bf8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/15255964274_cf2ecdf702.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/2229804138_db9cba3443_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19437710780_c5f2156438.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/6495802659_98b57e0cca_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933230991_d50c0f7c66.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8963359346_65ca69c59d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/13897156242_dca5d93075_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/112334842_3ecf7585dd.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/22755811033_cd17b109e0.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4806174512_e04475b766_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4632761610_768360d425.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/501987276_744448580c_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7003964080_4566470798_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/512177035_70afc925c8.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8614237582_74417799f4_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14074147406_7ab87aec79_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/11233672494_d8bf0a3dbf_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5862288632_1df5eb6dd0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/11891885265_ccefec7284_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/13979889721_42a59ca9fa_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8708209606_d3aede4801.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16677542612_a78a8ca8b3_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/122450705_9885fff3c4_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14969295739_c132a08663_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5973491805_556bba93cc.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/17020815734_81e8db8008_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/7603036176_9e8967cd21.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5869147563_66fb88119d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/13583238844_573df2de8e_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3533075436_0954145b9f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/15547944931_c1e095b185.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3871586333_5a708d5cf4_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4278757393_bca8415ed4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8723767157_c45bfd3ab6.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/13354458753_7b586f7c95_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/9146733107_98b15d3892_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/20078409301_aa8061bd0b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/10172567486_2748826a8b.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/22429946721_e17a12cb39_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5951665793_8ae4807cbd_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5700394524_dc6f8fa9cd_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/17433282043_441b0a07f4_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14054827391_139fb54432.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/16510864164_3afa8ac37f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14698136411_23bdcff7bf_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/1392579828_ab5a139052.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/215798352_184d8040d1.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20481273479_d459834a3e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8642943283_47e44d049d_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/17158274118_00ec99a23c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054753070_4f6ae0e763_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/15681454551_b6f73ce443_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/8719756744_34a5a83976_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8554190977_37ac747799_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/570127230_ce409f90f8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/12517756805_56b74be742.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5249566718_6109630c83_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2670304799_a3f2eef516_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/136011860_44ca0b2835_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/6934951920_d43ff8b78d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8713390684_041148dd3e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/5739768868_9f982684f9_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8681388520_c697dee897_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8673416556_639f5c88f1_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/1374193928_a52320eafa.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/12407768513_3440238148_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/353897245_5453f35a8e.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2331651885_619653a5d3.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2597655841_07fb2955a4.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2344751399_71620039f2_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/29972905_4cc537ff4b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/3997609936_8db20b7141_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4797595918_79887b1229_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4691257171_23a29aaa33_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/20596941736_f2c5f496cf.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4979895172_ca06eba616.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/6104442744_ee2bcd32e7_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3501996215_1c6d1a3386_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14021281124_89cc388eac_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5674170543_73e3f403fb.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5835539224_75967fc400_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/16713229021_bea2533981_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/16650892835_9228a3ef67_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/54895006_55b49052dc.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4555842486_dd214a84d7_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/7454630692_ab2d67dd18_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/12949131454_4d3392f4dd_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3514340206_efb8198a80_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8740218495_23858355d8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/10391248763_1d16681106_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/7702332000_3f21ef4571_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/5795159787_ebb51a5e75.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9555824387_32b151e9b0_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20410533613_56da1cce7c.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/8740807508_0587f5b7b7.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4745991955_6804568ae0_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/6210664514_f1d211217a.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/7176729016_d73ff2211e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/17198868382_697b23c715_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4624404489_11e10fcd33_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5810456385_b44358a0ae.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3458770076_17ed3a1225.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5927432662_3ffd2461c2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/8014734302_65c6e83bb4_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5811226952_4650ed70ae_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4746648726_e37a2de16d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/14943194730_f48b4d4547_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8677713853_1312f65e71.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2895404754_6d9f9416d7_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/6803363808_9f9ce98186_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/6954604340_d3223ed296_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7447655334_e8f805ab95_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2490828907_5094017933_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/16832961488_5f7e70eb5e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13910126337_53faf1d214_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/1392131677_116ec04751.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13923036338_1ce32c6d4f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14110615113_bd7b3fcb84.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/5679288570_b4c52e76d5.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2449852402_45d12b9875_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2467980325_237b14c737_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/7581713708_8eae6794f2.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/17189526216_fa24dd541a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2448812029_047d981092_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/6089825811_80f253fbe1.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8935456132_8dc4d3b679_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7164500544_332b75aa3b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/14507818175_05219b051c_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/24459548_27a783feda.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/6163179241_f093f45d95_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4186808407_06688641e2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/6905876618_12732b74de_b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8842317179_d59cf218cb_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/16161045294_70c76ce846_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2908212142_5437fa67ff_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3254533919_cb0b8af26c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/5110107234_12ddc0206b_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14087361621_9fefb8dbef.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/5794839_200acd910c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15750320284_22ef21c682.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/158869618_f1a6704236_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/9160289562_ab2718d19b.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4414135084_1ac7e6cd54.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/3900172983_9312fdf39c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/751941983_58e1ae3957_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/176375506_201859bb92_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9538283930_0faea083bb_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/16903172207_2cd7aca66a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/2019064575_7656b9340f_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4552591312_02fe1dcc04_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3846717708_ea11383ed8.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4573204407_babff0dce4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/506659320_6fac46551e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/14591326135_930703dbed_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/510844526_858b8fe4db.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3948347096_42261f047a_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/10555826524_423eb8bf71_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3717746329_53f515c6a6_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/468749497_951c571eff_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3052753519_d087aaeacb_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/4572955407_87f4805c7b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13926327692_a07357ff0d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2973256732_1926295f35.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4918137796_21f0922b0c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4689061249_6498da5013.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4574447682_40dce530f1.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13531001134_72052100e1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/6227136437_6117068599_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8817622133_a42bb90e38_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14674071872_2df55466d5_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/444963906_e41492b692.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4550805310_5f81c9ba08_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2503489175_f0848d3e8e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/6864417932_36fa4ceecf_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/15275190769_0ed7bbf490.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/7790614422_4557928ab9_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/16078501836_3ac067e18a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/16680930777_7e7f292fc5_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4558912791_084e440365_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/200011914_93f57ed68b.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3815322974_52c12dbde3.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/14646279002_9cdf97be97_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/16765283686_0315ae00a8.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/8174935717_d19367d502.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/15061894841_e5aca59ecd_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3556123230_936bf084a5_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2550860627_998a4fc4c1.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/6036837996_7fbdcdb3c5_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/8929213942_5544191250_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/164578909_51f245d3fa_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/19280272025_57de24e940_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/15493195788_60530f2398_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7069622551_348d41c327_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4160805260_cf758daeae_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5776879272_95008399c3.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4865691548_00319261b8.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8780964418_7a01a7f48a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14085038920_2ee4ce8a8d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13903946578_187f904c9a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/7630517248_98fb8bee1f_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/19617501581_606be5f716_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/2265390547_2409007cef_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/5955475577_3d923874d9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/4243078361_7b92a932cd_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2553703483_558d12668c_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/19988406792_68201f76e3_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/14741907467_fab96f3b2b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933229479_c1708bd503.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4117620896_070e5887ae_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/6105809987_8f3d7a8d67_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/9719816995_8f211abf02_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4496277750_8c34256e28.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/15761264350_4caaf080f6_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/3430229687_32645b5738.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2637883118_cf6ce37be4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3720632920_93cf1cc7f3_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4664737020_b4c61aacd3_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/2423565102_2f1a00bb1b_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/1402130395_0b89d76029.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/6198569587_23c3693328_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/14414117598_cf70df30de.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5726984343_ae124aed97.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14057246122_8598b665bd.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6994938270_bf51d0fe63.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4993492878_11fd4f5d12.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14070457521_8eb41f65fa.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2326334426_2dc74fceb1.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3451079245_2139200d66_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/10555749515_13a12a026e.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/2677417735_a697052d2d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2607130050_9c34310004.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/15174615529_144ae28bdb_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3297108443_0393d04dfc_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8892851067_79242a7362_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3625257860_33efeef614_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/705422469_ffa28c566d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4575042086_7674b76297_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/130733200_fbe28eea19.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/135994133_4f306fe4bf_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/15297244181_011883a631_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/295257304_de893fc94d.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/9588522189_db6166f67f.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/3285641623_da0e47f49a.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/130685040_3c2fcec63e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14614655810_9910e6dbd6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/10437754174_22ec990b77_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/16862374316_4135908d4c_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5767676943_4f9c7323f3_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2590291468_2635d3e4e0_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054865768_2cc87ac9d4_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/7455236056_b6d71a8dab.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4528742654_99d233223b_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2512977446_ac498955ee.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/8543642705_b841b0e5f6.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/13095941995_9a66faa713_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5613466853_e476bb080e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2220085701_896054d263_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933229889_c5d9e36392.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5004121118_e9393e60d0_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/3654988152_b11178bbcb.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/5333437251_ce0aa6925d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/16096748028_7876887ab2.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/6038098425_b3b4fb62cc_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14149603605_eedfe9678c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/7335886184_d06a83f640.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3393564906_f2df184b76_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/17619402434_15b2ec2d79.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/16949657389_ac0ee80fd1_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3463313493_9497aa47e5_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8757486380_90952c5377.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3683873444_be4a609c46.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/2053476785_c162a3e358.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/15712574834_2f121c7cf9_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/14333681205_a07c9f1752_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14746916178_40403cc57e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8710148289_6fc196a0f8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/6145005439_ef6e07f9c6_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/821368661_4ab4343f5a.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8983268106_dc913d17d8_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8511683706_4173683d45_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14881304632_54a9dfb8be.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/4694341873_65fe187a4e_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8673416166_620fc18e2f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/676120388_28f03069c3.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/15081164641_45a7b92b3a_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5180896559_b8cfefc21e.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/2454280137_e1637536ae_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/13959937305_2f5c532886_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/13887031789_97437f246b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9432335346_e298e47713_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5139969871_c9046bdaa7_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5970301989_fe3a68aac8_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13974542496_e4b5d1c913_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/11124381625_24b17662bd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933229357_1c5cc03f65_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/163978992_8128b49d3e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/22274701614_901606ee34_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/14350958832_29bdd3a254.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/7316409504_7cf3707f8a_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/1446097778_97149b8362.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8838347159_746d14e6c1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/5722473541_ffac1ae67e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/478851599_25bfd70605_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14278605962_d3cce5522f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5675705011_82729927ca_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/8038712786_5bdeed3c7f_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/141340262_ca2e576490.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/15255964454_0a64eb67fa.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5760890854_c3e009bc8a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/18760363474_a707331322_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/23414449869_ee849a80d4.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3275951182_d27921af97_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14275234071_6e6f473356.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/3502085373_edc2c36992_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/7820626738_3be6a52e4e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2521811279_1f7fc353bf_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/19437578578_6ab1b3c984.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/405035580_94b793e71d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4940287066_385afd9c18_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/9613826015_f345354874.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/1715303025_e7065327e2.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8712243901_54d686319e_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/12406418663_af20dc225f_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8762189906_8223cef62f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/16525204061_9b47be3726_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4724713781_d169f98a35.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8929523512_c87897b84e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4755075329_1fccc69d4e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933230547_394f618009_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3580443099_9a6902ebd8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8708856019_f3be2353a4_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/6958343928_7e596da4ed_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/18183515403_13a9ca6d86_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/510874382_f7e3435043.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4910094611_8c7170fc95_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/13826249325_f61cb15f86_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4312181724_16dab26afb_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14487943607_651e8062a1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6994925894_030e157fe0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15218421476_9d5f38e732_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/4231745228_ece86330d9.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/11023277956_8980d53169_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/2697194548_ec8f8de97c_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/11746452_5bc1749a36.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/175686816_067a8cb4c5.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8520488975_a50d377f91.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13530690445_9f1f5cf43a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/17199496791_3caaf5e278_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933822422_4f54fc7cc8.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5725836812_a7d1c5540d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4267024012_295e7141a3_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/2561371688_c80a4fe957_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/18270448366_d5676dec64_z.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/1297972485_33266a18d9.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2674176237_e265ea64cc_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/27466794_57e4fe5656.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3383422012_6c9d83671f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13979840624_28466cb3ec_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/15976769174_1d50f46ca1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/519880292_7a3a6c6b69.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3750250718_eb61146c5f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2512148749_261fa9d156.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15030133005_9728102622_z.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/2720698862_486d3ec079_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2470874500_43d8011e75.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5572197407_a0047238a6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/8929274876_17efc1774a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8697784345_e75913d220.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/9529916092_de70623523_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/4727955343_0bb23ac4ae.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/20344282483_05abb0b837.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8713394070_b24561b0a9.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4579128789_1561575458_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/1562198683_8cd8cb5876_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/450607536_4fd9f5d17c_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5755467567_903c31e3d0.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/17821459748_873101edd0_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5608832856_f5d49de778.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/6653567281_768a1fd160.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/18237156988_9ceb46a8de_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7465850028_cdfaae235a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/1074999133_1e4a1e042e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13555215723_cf2c11626b_b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13910604778_e5f4588420.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/6280787884_141cd7b382_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/6968202872_cfcb5b77fb.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3102535578_ec8c12a7b6_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4895719476_bd3b6bd6fd_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/6783408274_974796e92f.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/10090824183_d02c613f10_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/8266310743_02095e782d_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/435283392_72e4c5b5d6_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5628552852_60bbe8d9b0_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/13531007054_c88deaf302_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2347579838_dd6d2aaefc_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/14048849371_ec9dbafaeb_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/2093263381_afd51358a3.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3675486971_d4c8683b54_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/215798357_3f4bfa27b7.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/6095817094_3a5b1d793d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4242976586_607a8f9843_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/3001533700_1c62fb8b4a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4977385375_e271e282f9.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/15498482197_8878cdfb07_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/808239968_318722e4db.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/17420983523_2e32d70359.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9655029591_7a77f87500.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/14687731322_5613f76353.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/10993710036_2033222c91.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9448615838_04078d09bf_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20183071136_c297e74fcc_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3823142577_dd5acd5ac6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14932787983_d6e05f2434_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/1441939151_b271408c8d_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13954659583_03981dea99_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3612582808_4503fa1f8b_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5693459303_e61d9a9533.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4550784336_584d7a65de_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7162551630_3647eb9254.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4626721387_88f89d5cc9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/3025866885_22fb0b61c6_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4816636411_0135bfe2c9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054864508_0334b892be_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4353419275_79d3904074_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/1788133737_b1133d1aa7.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5996421299_b9bf488c1a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/15977362155_461030c196_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/5970869550_d7d9fabebd_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20972866151_e6a928b00a.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/3415176946_248afe9f32.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/10466558316_a7198b87e2.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5050969148_a0090f762a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4753134939_8e87649db6.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3487229452_73e3004858.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14103897845_7986002615.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3848258315_ed2fde4fb4.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/113291410_1bdc718ed8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/17077876795_6dd1b03f54_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/15236835789_6009b8f33d.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3203779656_3580151ea4_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3584414925_1e6c4b61db_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/418056361_1dfac1c151_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13976522214_ccec508fe7.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4523239455_9c31a06aaf_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5891485349_cce7b99549.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8523133474_d2c0845b54.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3268459296_a7346c6b2c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/9595369280_dd88b61814.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/20165867412_fc45d31698_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3957488431_52a447c0e8_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4860145119_b1c3cbaa4e_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/18204150090_fb418bbddb.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/16691236594_4287cea9d6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/18354545086_693ea7bc2a.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4831577091_f56157a5d5_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8668973377_c69527db42_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/20580471306_ab5a011b15_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4871455214_8b5fb87ab6_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/15419696882_9394168a10_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/6140808687_88df0fd733.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/14471433500_cdaa22e3ea_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2995221296_a6ddaccc39.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/112951086_150a59d499_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4716316039_044e4d2d1a.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3404038663_f62cf8eba3_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/20972862281_5367f4af88.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13513616525_2ee0f049e1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14836105101_1d07520932_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/15139657325_74031c44fc.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/142390525_5d81a3659d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/6299910262_336309ffa5_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/7267547016_c8903920bf.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2440874162_27a7030402_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14093884601_c87b5cd663_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3962240986_0661edc43a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4505921907_21c8002fde.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/112428919_f0c5ad7d9d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/22405882322_d4561f8469_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/4558025386_2c47314528.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/6958342976_a4a9483488_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7232035352_84a39e99ba_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/14145188939_b4de638bd3_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/1880606744_23e3dc4f6b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3909355648_42cb3a5e09_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19397467530_1e8131a7cf.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2425067141_b27043a800_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/512578026_f6e6f2ad26.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/14354051035_1037b30421_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/5586977262_6b24412805_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3149809654_6a4b31314d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/20410697750_c43973d1eb.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/14707111433_cce08ee007.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/2733109082_1351f6738a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2481428401_bed64dd043.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8674140377_ae7b0be523.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/1193386857_3ae53574f2_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2488902131_3417698611_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9699724719_a8439cc0fd_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/2960610406_b61930727f_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5966729883_67f4fede93.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/3742168238_d961937e68_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/9152356642_06ae73113f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5139977283_530c508603_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4578030672_e6aefd45af.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/3433265727_0b8022e091.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14313509432_6f2343d6c8_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/2689228449_e0be72cf00_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8058286066_acdf082487_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13289268363_b9337d751e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2697283969_c1f9cbb936.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14068378204_7b26baa30d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/20342824594_9740b7b160.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8181940917_1ac63937d5_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/506348009_9ecff8b6ef.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2331133004_582772d58f_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/8041242566_752def876e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8719388716_1a392c4c0e_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13910678178_25e8b1a5e5.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/6309548569_932fee8313_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4511693548_20f9bd2b9c_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4503599544_3822e7d1be.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/8220011556_28e0cab67f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8524505682_bda885af3a_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/12601254324_3cb62c254a_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2361075034_cf730b8682.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4893660821_eb7f02bef3_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2473825306_62fd5f8785_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/35477171_13cb52115c_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7998106328_c3953f70e9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/9350942387_5b1d043c26_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/145173479_7d04346c20.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933822272_79af205b94.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/1667963621_c76d570af3_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8687675254_c93f50d8b0_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/3396033831_bb88d93630.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/6116210027_61923f4b64.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/18482768066_677292a64e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/160456948_38c3817c6a_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/19697910486_0086d893a2.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/14221192676_eb8c89a7d6_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2319777940_0cc5476b0d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13910479407_936fd3122d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/12883412424_cb5086b43f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14646282112_447cc7d1f9.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/11870378973_2ec1919f12.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/9159362388_c6f4cf3812_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4489359360_09db62f825.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5644234724_cb0917ee33_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/11439894966_dca877f0cd.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/9472854850_fc9e1db673.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4980406384_791774d953.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8978962053_0727b41d26.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8523394349_61b31fdd8f_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/9467543719_c4800becbb_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3585220976_5acac92d1c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2256230386_08b54ca760.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/9446982168_06c4d71da3_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/14107161906_5737e0e4ec.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/9614492283_66020fb4eb_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/5433747333_869a2a172d_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14019781123_ea0f8722d4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2462476884_58c617b26a.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/16700863150_ddaa4d89b4_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2759796022_55bd47bfa2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/17175932454_c052e205c1_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/12916441224_2ed63596f8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7308600792_27cff2f73f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4550091966_7f3e0f8802_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/15327813273_06cdf42210.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4953240903_a121fba81f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5027895361_ace3b731e5_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8562853756_73778dac25_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2409069862_b128ee2a71.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/13562266594_69b807f90c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13997641965_80d5dab542_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3338077096_3a8ed0e2bc_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/11102341464_508d558dfc_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/18996957833_0bd71fbbd4_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/6936168062_a31c28b77c_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4805544785_a63241f6d0_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/2122401867_cd86c5f114_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/17903104293_9138439e76.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8601596054_33e40c2a7a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/486234138_688e01aa9b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/8446495985_f72d851482.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/17574213074_f5416afd84.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5388013398_09a8a0f166_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3468498624_d082f99e98.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3150964108_24dbec4b23_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3872230296_6c477309f3_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/14921668662_3ffc5b9db3_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9491955955_d0b2c83834.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8768645961_8f1e097170_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2666572212_2caca8de9f_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/5704726114_a92f753514.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/1469726748_f359f4a8c5.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/470690620_9d3a5bb239.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2641151167_3bf1349606_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/134143359_71fa8dd9a4.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3798841385_38142ea3c6_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/9175280426_40ecc395b8_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2238626027_058c404b94.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5979111199_495884b578_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/184682320_73ccf74710.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/102501987_3cdb8e5394_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5512287917_9f5d3f0f98_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15802657001_40fe77c030_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/5417115048_3b78d6c875_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/19519101829_46af0b4547_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7132482331_01769e36e9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5497730366_44d758d8f5.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/2721638730_34a9b7a78b.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/19602790836_912d38aaa8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4442928974_9672d630b2_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/20703737132_179560d0fb.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/6570546331_ffb9dab0bf_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/15277801151_5ed88f40f0_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/5437996076_cf7e2ac32e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8690791226_b1f015259f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/253622055_d72964a7fd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2963905796_227d37ff12.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15241431045_65201cf15a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/23891393761_155af6402c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/12338444334_72fcc2fc58_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/5273722065_c85d8543c2_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/2980154410_bffd7a3452_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4757448834_a29a9538c9_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/15118243470_7e0a7f159c_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/2813658587_337eeef124_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5674125303_953b0ecf38.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/17449165090_dfb27af360_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/16291797949_a1b1b7c2bd_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/1396526833_fb867165be_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2514748602_343d4727c0_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/18990187093_09f2bff8fc_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/8759118120_9eac064e38_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/344318990_7be3fb0a7d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5917253022_4e3142d48b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/112428665_d8f3632f36_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/9010116368_2f51f1e086_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4923279674_e7f8e70794_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3511776685_3635087b12_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/17346385582_7ba433dbbe.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/13675534854_03caf51644_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5955501969_e42f038a6f_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/9029756865_db8891807a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5749815755_12f9214649_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13561986193_cf645b2b9a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/534228982_4afbcece9b_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4560663938_3557a1f831.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4814106562_7c3564d2d9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4497973347_57480ffee9_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/17189437699_a9171b6ae3.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8686013485_3c4dfbfd1f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5181899042_0a6ffe0c8a_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/921984328_a60076f070_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/17167151059_a53bfe0b02.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5717319579_190e85c7d1_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/6908789145_814d448bb1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8442304572_2fdc9c7547_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/8562144481_1d629848ff.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/15813862117_dedcd1c56f_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3502447188_ab4a5055ac_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8484905084_6a18c62b13_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/1813435848_7852708394_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/17282288501_e8738c9cfb_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5738195260_b3fc107aa7_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/18250039435_7654bc11be_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/22506717337_0fd63e53e9.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/14889392928_9742aed45b_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2780702427_312333ef33.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8717900362_2aa508e9e5.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3265902330_d8b1e44545.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4538877108_3c793f7987_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/13491959645_2cd9df44d6_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/11746548_26b3256922_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2443921986_d4582c123a.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2473862606_291ae74885.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4858518329_7563eb0baa_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2257649769_deaf97e2c9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2271507463_15c48d41c4_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13472141763_f2517e7f0d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/4360743371_6238b36d8c_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/142218310_d06005030a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4598422221_b37313a3e3_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4644110077_ff252cd7c4.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/7066602021_2647457985_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4591323356_030d8b6967_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/144076848_57e1d662e3_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/155646858_9a8b5e8fc8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/23286304156_3635f7de05.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8497389500_45636fdd14.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/11746276_de3dec8201.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13910737760_c71c8b6ff2.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5446666484_365f3be83a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5018120483_cc0421b176_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13979098015_e8c98fd34e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/3282751630_45c2665034_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/19653086178_28156b7ce4_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/5574219476_1f46775487_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14058811536_f29cd7bd58_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15238348741_c2fb12ecf2_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/14093789753_f0f1acdb57.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2349640101_212c275aa7.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/15266715291_dfa3f1d49f_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5979669004_d9736206c9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7166644048_b00a14f01b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/8742493689_fb852f0228_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4684127262_6c3346188d.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5607669502_ccd2a76668_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/12557176134_ecbf15885b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8454707381_453b4862eb_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4668543441_79040ca329_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/14907815010_bff495449f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/6204049536_1ac4f09232_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/18215579866_94b1732f24.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6495554833_86eb8faa8e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3838274225_36010c6254_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2330343016_23acc484ee.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/16772483324_09f24813a1_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/678714585_addc9aaaef.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4278442064_a5a598524b_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/15123604714_dd034a4a3b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/17388674711_6dca8a2e8b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3476945045_97ff41e8ec_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4606893762_c2f26c7e91_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13923539227_bdab038dc8.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2256214682_130c01d9d9.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2351206867_084e57bd97.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3639009391_0f910681b7.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8720503800_cab5c62a34.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/14982802401_a3dfb22afb.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3072908271_08764c732a_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/18828277053_1493158b28.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/17146928665_600fa3a1f1_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/14674743211_f68b13f6d9.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3991742794_edebc6c8a0_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8681825637_837a63513a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/15123503538_8ee984abc6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/19426575569_4b53c0b726.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4572738670_4787a11058_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3336704121_cfeb67a7d7.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/22190242684_8c3300d4e6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5565089564_a30c318f44.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5744236092_de84b4e38d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/13331969914_890082d898_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6958724008_12259943a7.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/10386702973_e74a34c806_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/10466290366_cc72e33532.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/9204730092_a7f2182347.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3975010332_3209f9f447_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2232289392_9a79a0c5cb_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5687705933_55a8c2dbac.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/10791227_7168491604.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/11023214096_b5b39fab08.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/164670455_29d8e02bbd_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/485415743_eeb5d7c1a5.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16680998737_6f6225fe36.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16506668270_b823935dc3.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2364976562_a184463083_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/3450822975_7e77d67636_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/15632065904_0d9caf174b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933228903_9ae82d0b9d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5999024446_5721493894.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4497976955_3f8c2a21c1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/15738649506_2b4c2fd933_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2661585172_94707236be_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4414083164_3f285f8ac5.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/3337536080_1db19964fe.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/537207677_f96a0507bb.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/6054952060_c88612f3c5_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3688128868_031e7b53e1_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9482209981_bf7bf6022b_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/18622672908_eab6dc9140_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8908097235_c3e746d36e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/6482016439_b0d06dac04.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/8671824531_64b816949e_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/517054463_036db655a1_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5398974188_799753449c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14084749296_6143c74c72_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2536529152_33ef3ee078_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/506350421_2ba59e568e_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4613992315_143ccc2a10_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/2183357362_4b4da4b6b5.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/8462246855_1bdfee7478.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/12434194695_a7c4e73c6b_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8712270665_57b5bda0a2_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/10386540696_0a95ee53a8_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3143110904_66b4851a58_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3832945398_96509d192b.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/11124324295_503f3a0804.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/8706810197_17b6c1f1e7.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/1043442695_4556c4c13d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/8619103877_d8c82c5f34_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/200557981_f800fa1af9.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606746467_a668c8d417.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5139971615_434ff8ed8b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/486896118_bcc7b8e1d6.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4746633946_23933c0810.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14116826873_d4bab623bf_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4560613196_91a04f8dcf_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/2996573407_5e473b9359.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2612704455_efce1c2144_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/16309287412_5cc4d58bd1_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4632863567_5f9af7de97_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/16025261368_911703a536_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054865217_e398d0dc9f_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/9870557734_88eb3b9e3b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/9595857626_979c45e5bf_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/3001536784_3bfd101b23_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5234278003_d827fcd73b_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/9299302012_958c70564c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/16360180712_b72695928c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4673984698_6ec14d5b79.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8713392604_90631fb809_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5600240736_4a90c10579_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2472641499_cbe617a93d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8842482175_92a14b4934_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7218569994_de7045c0c0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4638438929_2ec76083c8_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14674388855_2da18e375a_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/12891819633_e4c82b51e8.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4573822295_5c5c6a5f6a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16717320956_d4b00807f2.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/13117907313_86c99c6441.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7193058132_36fd883048_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7068715863_a534ac7884_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14026857634_500d7b41d6_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5339004958_a0a6f385fd_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9558627290_353a14ba0b_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/2471103806_87ba53d997_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/14362539701_cf19e588ca.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/7669550908_bc5a11276f_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14127532150_112823a8f6.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/18023717391_e2c9089e10.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14093744313_b66bc95072.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/20171662239_f69b6c12bd_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2567033807_8e918c53d8_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/22325299158_6e32e599f8_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/7775145448_c42e638a6a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/1240626292_52cd5d7fb1_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/16986144192_55e0e6c152.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/14569895116_32f0dcb0f9.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9610373158_5250bce6ac_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5487945052_bcb8e9fc8b_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/15853110333_229c439e7f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/7510285306_ba8f80c382_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/7654774598_6b715a8d3e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/6480809771_b1e14c5cc2_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/12282924083_fb80aa17d4_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/15243175532_ac28c48e14_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14068295074_cd8b85bffa.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/512477177_d9004cbcf1_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/112951022_4892b1348b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2950505226_529e013bf7_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2365428551_39f83f10bf_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/7530313068_ddd2dc1f44_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/8932490012_cc08e690ba_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/495094547_fd2d999c44.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14741866338_bdc8bfc8d5_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/18901817451_43e2b45f6c.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14884028290_a1344eb446.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606823367_e89dc52a95_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/10200780773_c6051a7d71_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5691672942_70a93d70fc.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/13652698934_d258a6ee8c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9231555352_d2dd8f8e68_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/14070463051_86ab57ab36.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/184682506_8a9b8c662d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/16485607329_e66d5960bc_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3491333876_e3fed43c0d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4731069260_b270f47803_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/10094731133_94a942463c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/15949087094_a8f565295c_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3753920123_c7ebc18ee3.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/7247182064_f8d6759446_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5777669976_a205f61e5b.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/17862580326_293070978d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9302733302_2cb92cf275.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4721773235_429acdf496_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2513618768_ff7c004796_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/14372713423_61e2daae88.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15424480096_45bb574b33.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/7015947703_11b30c20c9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5674132053_b40a7d32ca.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5647842237_b1c5196718_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14678298676_6db8831ee6_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/15104537437_f6730b38c3_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/515112668_a49c69455a.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9056495873_66e351b17c_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7315832212_b0ceeb8de8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3264570182_c7ded528ba_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5561775629_a2b709b3a4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/6050020905_881295ac72_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20667988875_6e73ac2879_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2556503265_63ae6b9e0e_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15011625580_7974c44bce.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/7525783408_0999483bf4_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/6069602140_866eecf7c2_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/5998488415_a6bacd9f83.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7367491658_9eb4dc2384_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4612075317_91eefff68c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/17161833794_e1d92259d2_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/14219214466_3ca6104eae_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/525271784_013ddccd1b_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4579079143_f65b39dd9f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/141479422_5a6fa1fd1b_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2477231067_3aecef1bf8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/18766965343_9f42d4bedc_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14866400927_3a59899df3_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/7166618384_850905fc63_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/8667101118_87ea757b15.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606806621_5267acdd38.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3893436870_034b79d118_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5054771689_00dd40b971_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4675287055_5938ed62c4.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/16737503507_431768a927.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4895124535_11a2bb704c_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3485767306_6db7bdf536.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9555827829_74e6f60f1d_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6141150299_b46a64e4de.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4633323785_20676ff914_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4645101643_9c9d9df13e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5705695593_d79286ac0d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/2598973480_07de93e91d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8981828144_4b66b4edb6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7136973281_b2a935ce20.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2425164088_4a5d2cdf21_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3372748508_e5a4eacfcb_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/898102603_2d5152f09a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/16471277547_a0a5509377_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/7481217920_6f65766a1c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2402342888_dd65677013.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5676682203_70d797f760.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/1022552036_67d33d5bd8_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/112650879_82adc2cc04_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/515121050_dcb99890be.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2522454811_f87af57d8b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3667366832_7a8017c528_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14262354955_cc2ab3b112_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/10828951106_c3cd47983f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/15378782362_4161b23af7_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/12240577184_b0de0e53ea_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8713387500_6a9138b41b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5674695558_61397a1584.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4574102507_70039c8b28.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4735314389_94fe1b2a9f_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14116780333_7836f4448c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/147068564_32bb4350cc.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8713396140_5af8136136.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/19177263840_6a316ea639.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/17027891179_3edc08f4f6.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/40410814_fba3837226_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5955500463_6c08cb199e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/2619000556_6634478e64_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/21347496068_f4d3339607.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/5994569021_749d5e2da3_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7950901292_2dea05f9a2_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9375675309_987d32f99e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14064731501_ea14b58161.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/180613732_3a7aba0b80_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/16930105456_8b826dc4a8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4398771472_44f2a0c162_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/16837594326_1056d875a4_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/172967318_c596d082cc.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2538504987_fe524b92a8_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/7369484298_332f69bd88_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4746668678_0e2693b1b9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2578695910_5ab8ee17c1_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/10617191174_9a01753241_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/568715474_bdb64ccc32.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/9029297232_de50698e2f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/7683456068_02644b8382_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/14460081668_eda8795693_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3575811488_a31714472a.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/2421740440_f82ced8582.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14925397761_46ecfa24e0.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4897587985_f9293ea1ed.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3421027755_cdb8fef8e8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/61242541_a04395e6bc.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5492906452_80943bfd04.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8083321316_f62ea76f72_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4574785121_5d8ec4626e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19593576916_f5a083d7fe_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4290112545_3528055993_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4546299243_23cd58eb43.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/4279989256_9a48c0d194_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/7820626638_3e2d712303.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/10386525005_fd0b7d6c55_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933824130_b99839a80d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/12045735155_42547ce4e9_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4608559939_3487bf3b62_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/164668737_aeab0cb55e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5654859907_c2be3b0f1e_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14067761295_7cfe6a42e9.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8688502760_1c8d6de921_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2568105249_15720d081f_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/98992760_53ed1d26a9.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/17101762155_2577a28395.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/21134000558_d7d6c9b1fe_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5110103388_78dc02558e_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3154932076_eff5c38231_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8735646181_fa9787d4e0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/18378582936_ee7085c850.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9825716455_f12bcc8d4e_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/177851662_b2622b4238_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/22419079265_8902cddb7d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/3861452393_14d2f95157_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2503034372_db7867de51_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/452854574_59492f119a_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/6901435398_b3192ff7f8_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5231103167_a03280e9f6_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/7251352826_69b62cba2c_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/16401288243_36112bd52f_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8684925862_d736e153bf_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3529889389_ab4cb6c43b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8327657321_2cbceec396_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/340190928_d77bf4d615.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13976206001_fd1c2cbd60.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/13560152823_9da5e48c87_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14646283472_50a3ae1395.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/21522100663_455b77a90c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5655177340_78fc36ce59_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/2491600761_7e9d6776e8_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/184683023_737fec5b18.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5109508979_68e3530791_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2617111535_54c2ac8462.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/23095658544_7226386954_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4571353297_5634177744_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8727612532_6f3d0904aa_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/107693873_86021ac4ea_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5182167964_9d1a0be0b8_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5140791232_52f2c5b41d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3523398585_376960a611_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/162362897_1d21b70621_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/7064778965_ddcc6ee9f2.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/17078716890_68e0723389_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13510057763_01b832d919.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2332478138_28f1d586e4_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/8094774544_35465c1c64.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/430785322_7ddef64c68_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4895718876_0246882882_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5665080897_0796f726c9_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5990626258_697f007308_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14671196461_b725727229_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3865206264_5d81584bba.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/142235237_da662d925c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2938040169_eb38581359.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8686332852_c6dcb2e86b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/20456824132_b1c8fbfa41_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14925397651_97dcddc383_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6250692311_cb60c85ee9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3596902268_049e33a2cb_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/299129811_d6ebda9970.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9445830851_e9a126fd1d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3253320570_b617f7fd4b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6035460327_4bbb708eab_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/19961979110_fcd8092388_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/2979133707_84aab35b5d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/310380634_60e6c79989.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/2427626706_ffdf697f84_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8394186551_28eed83a94_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3407482427_49d5c75291_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/7166626128_8e0983ac8e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/181007802_7cab5ee78e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/13290033_ebd7c7abba_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3513200808_390f1d63a7_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/14993880427_95d0f27257.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2960709681_e95940c0f0_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/5961803532_9368212949_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/7166570828_7c26ca5766_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/9947385346_3a8cacea02_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/15509799653_0562d4a4fa.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/14021430525_e06baf93a9.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2713919471_301fcc941f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3502251824_3be758edc6_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2883115609_5a69357b5d_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5524946579_307dc74476.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2509545845_99e79cb8a2_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/12471443383_b71e7a7480_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/17862445825_f7031d6f26.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4489516263_e49fe82637_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/123128873_546b8b7355_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/15756524087_823cf86bd8_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4520582070_d14a14f038.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/17202535346_ab828e779b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3703643767_dee82cdef9_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2573240560_ff7ffdd449.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/5740633858_8fd54c23c9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/6900157914_c3387c11d8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14814264272_4b39a102f9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/6227136683_262c6be56b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14122029097_3e3285ca5c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13176521023_4d7cc74856_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3550491463_3eb092054c_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5574421625_61b1f49b3f_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3588872598_e0f9a1d2a1_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9681915384_b3b646dc92_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4582198748_20fa7caaa1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4414081772_8a0e8a1327.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2457473644_5242844e52_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9610373748_b9cb67bd55.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8756906129_b05a1b26f2.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/1645761726_2b1be95472.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3179751458_9646d839f6_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/19595718862_c68896370c_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13513851673_9d813dc7b0.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13903988248_22da33f341.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8723767533_9145dec4bd_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3379332157_04724f6480.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/1776290427_9d8d5be6ac.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/15549402199_2890918ddb.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/2258973326_03c0145f15_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/8742493617_c2a9bf854f_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/6158504080_b844a9ae05.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/461632542_0387557eff.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3600510954_a51bfc5440_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6146107825_45f708ecd7_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4573886524_5161482ca7_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/151861297_55b10a03a6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7165651120_2279ebf6d1.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/15090146325_b7e1249e60.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/433837534_1dbf798b73.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/9180706736_092d43088c.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/5330608174_b49f7a4c48_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3731075939_6c92d7fe68_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/13096076565_72c2c60875_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4571993204_5b3efe0e78.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2465573725_d78caca9d4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/1485456230_58d8e45e88.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/3276552939_8c31b22d3e.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/8692051081_dffa8709e7_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/510897767_918260db93.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7062171343_db61c92737_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/17953368844_be3d18cf30_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/12585131704_0f64b17059_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14554897292_b3e30e52f2.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/9646730031_f3d5014416_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7401173270_ebaf04c9b0_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2431737309_1468526f8b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933823922_911ac40b0d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/6687138903_ff6ae12758_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/14597445311_8acb60247e.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/4508346090_a27b988f79_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/14600779226_7bbc288d40_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2412250315_a04171da51_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/494108764_e00178af6e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3502974120_9f1eceaf8b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/16157873719_bf0bdf8558_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/7295618968_c08a326cc1_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/6864242336_0d12713fe5_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2392273474_a64cef0eaf_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3601085193_de1195d3d7_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/475947979_554062a608_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/6776075110_1ea7a09dd4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2444241718_3ca53ce921.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/21796333524_38fc8e0ab5_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4557781241_0060cbe723_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/15819121091_26a5243340_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/7419966772_d6c1c22a81.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/16975010069_7afd290657_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/2729206569_9dd2b5a3ed.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/3494252600_29f26e3ff0_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/7012364067_5ffc7654c9_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/132538272_63658146d9_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2322670828_34115a7050.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2834890466_1cf220fba1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/8085329197_41d53a21e2_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2627815904_919373e7f5.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/4694730335_2553e77aa5_z.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/9188647508_3b56e62f69.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5642429835_a0cbf1bab7_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4955884820_7e4ce4d7e5_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5003160931_cf8cbb846f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/6978826370_7b9aa7c7d5.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4589624702_b6baa83699_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/3502685880_f026400dce_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/490541142_c37e2b4191_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4708723476_a1b476a373.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/2535466393_6556afeb2f_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/15191613243_82ee8e0fe8.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4268817944_cdbdb226ae.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3999978867_c67c79597f_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/5109501167_2d9bbb0f27_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4644336779_acd973528c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/144686365_d7e96941ee_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8669794378_97dda6036f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/8718637649_87a0d85190_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/19834392829_7d697871f6.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/1285423653_18926dc2c8_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/12471290635_1f9e3aae16_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4226758402_a1b75ce3ac_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4679869990_7c5f28f2fe_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/138132145_782763b84f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5665708521_799585d229_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5089363428_2c5a1272ea.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/9423755543_edb35141a3_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4512569988_2b3f802cc6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/2442985637_8748180f69.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/9094631844_1a6abca29e.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/19504937128_a4ae90fcbd_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/16265876844_0a149c4f76.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933824012_8cbfe606f6.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/23891005905_17ce9e6936.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/14816364517_2423021484_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/1955336401_fbb206d6ef_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/1299501272_59d9da5510_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/14001990976_bd2da42dbc.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/142235914_5419ff8a4a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/18584002386_cec0df537d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/2694860538_b95d60122c_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/11768468623_9399b5111b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5944315415_2be8abeb2f_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/8709535323_a6bea3e43f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/8563099326_8be9177101.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3568114325_d6b1363497.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/18376177250_86060cbdc9.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/7166640338_46b15d9ec8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/15566697073_9a214b700e_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2863863372_605e29c03e_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/16020253176_60f2a6a5ca_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3476759348_a0d34a4b59_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3780380240_ef9ec1b737_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3447650747_8299786b80_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14087860553_bf4f8ec56d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8935477500_89f22cca03_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/1461381091_aaaa663bbe_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/12238827553_cf427bfd51_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/14414123198_24606fb32d.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/294451721_5106537b34.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/14810868100_87eb739f26_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/4525067924_177ea3bfb4.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19064700925_b93d474e37.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/410421672_563550467c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/6482016425_d8fab362f6.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/21349789961_18ba1af5b7_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/20754920332_53b995fc63_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4573886520_09c984ecd8_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5603625247_e4ff1828af_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/15333843782_060cef3030.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/6112510436_9fe06e695a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7166567320_0a2beb6d42.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8712263493_3db76c5f82.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5635348214_a4e2b19ffe.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3742155164_14b557a51c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14097366955_84ef6369f2.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/160954292_6c2b4fda65_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/10437652486_aa86c14985.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8388497874_1fe750cc95_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/476856232_7c35952f40_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4588529727_4a79c61577.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15026703621_e15e9d55f0_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7719263062_3c8a307a5d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15683877266_42e0fe3782_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8749577087_dc2521615f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/11296320473_1d9261ddcb.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/16711791713_e54bc9c1af_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/6655078437_759fd626fd_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054751430_5af76f6096_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/23659122395_3467d88c02_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/21821266773_7113d34c35_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/18828283553_e46504ae38.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3584415133_a4122ab7b9.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3558517884_0c7ca8b862_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/7166564830_8b34a3fd35_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3080880039_4f1bd592e5_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2538797744_deb53ac253.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8223949_2928d3f6f6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/184682652_c927a49226_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/15240466871_ec45b65554_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8980273068_cf7e8b880a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/6267021825_a8316e0dcc_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/9216321995_83df405ea9.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/388405293_4db1d71f21_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/8437935944_aab997560a_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/5979668702_fdaec9e164_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/155097272_70feb13184.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6994931102_4667c0352e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/151979452_9832f08b69.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5014137563_d03eb0ed75_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/17159349572_c0c51599f7_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/142235017_07816937c6.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/15973657966_d6f6005539_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/164670176_9f5b9c7965.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/16229215579_e7dd808e9c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4869189730_f47c124cda_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2001380507_19488ff96a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/12873145295_438b8197a7_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2265579414_2e00a8f265_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/16155980245_6ab8d7b888.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/13916196427_50a611008f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/17302463621_d82be11f01_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/6985099958_5249a4688b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3510799169_0ed6ae9669_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/22405887122_75eda1872f_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/685724528_6cd5cbe203.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8838975946_f54194894e_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/16051111039_0f0626a241_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/8707349105_6d06b543b0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3001531316_efae24d37d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/2678588376_6ca64a4a54_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5960270643_1b8a94822e_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/164671753_ab36d9cbb7_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/319298955_0c72bd36bf.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4890424315_6a59696357_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4890268276_563f40a193.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/1775233884_12ff5a124f.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5863928177_8ae1425e76_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14244410747_22691ece4a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/43474673_7bb4465a86.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14376454225_a1de336c5b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14068200854_5c13668df9_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/22982871191_ec61e36939_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2389720627_8923180b19.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/17244252705_328e0bcda6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5087720485_c0914fb623.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/2940221732_3507f3e927_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5811022098_2523ca4e82.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/13342823005_16d3df58df_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/13976191172_6f23a0b313.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/3637371174_a8dfcc1b35.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2434178332_7fcf85aa95_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5762590366_5cf7a32b87_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/9300335851_cdf1cef7a9.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4521037085_70d5802e1d_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/6970683464_f70838ca3a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6897671808_57230e04c5_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4565255237_9ba29c4d4e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14886860069_b84665a073.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8168031302_6e36f39d87.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/16716172029_2166d8717f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/1314069875_da8dc023c6_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/8710109684_e2c5ef6aeb_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9610374042_bb16cded3d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4944731313_023a0508fd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/446484749_4044affcaf_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8713407768_f880df361f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/18001393975_2a6acaabd8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3706420943_66f3214862_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/7004645518_ff0f862eff_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14439618952_470224b89b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/16527403771_2391f137c4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/14264136211_9531fbc144.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/6931748252_68f06086b3.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3662701865_3ff283a33a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/15358221063_2c6e548e84.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/434146736_310a42d9cb_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14054827092_f359f5fcbd_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14235021006_dd001ea8ed_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/7510262868_cf7d6f6f25_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/16833748795_b681b2839f_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/212720516_df4965ebda_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2325232198_751645d0bb_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/2294116183_a30d2aa2c1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16138212287_643bf336e1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/6948277038_89d7ff42e2_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2479956481_8d1a9699be_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/13881700933_69a750d418_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3751835302_d5a03f55e8_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4581199679_867652c3f1_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4895720722_8247f2015b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5570018782_c56bee942f.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/1413979148_b40d63db90_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9558628596_722c29ec60_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3734999477_7f454081aa_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/527513005_41497ca4dc.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/7222962522_36952a67b6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/6108118824_5b0231a56d.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/272481307_1eb47ba3e0_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/7377004908_5bc0cde347_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4932736136_0115955987.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3681233294_4f06cd8903.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5546723510_39a5a10d3a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/9158041313_7a6a102f7a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3483303007_42e3f90da7.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8717157979_05cbc10cc1.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/7211616670_2d49ecb3a5_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/8174935013_b16626b49b.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5797606814_ccac615312_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/2777518561_105abc8cfc_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/15381511376_fd743b7330_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2482982436_a2145359e0_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15697872479_ed48e9dd73_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/6676529655_9672b6f955_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/16074109313_2cc14c7d16.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16862351376_f0fcc6fc91_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5633266048_4f4bfb2cf1_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606815161_3c4372760f.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/19551343954_83bb52f310_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7808430998_31ba639031_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14368895004_c486a29c1e_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7166646966_41d83cd703.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3062794421_295f8c2c4e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5058708968_8bdcd29e63_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14396023703_11c5dd35a9.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4881402397_1c664af2f7_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/20344366953_44fb51051b.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/284497233_c19801752c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/13942846777_5571a6b0a1_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3939135368_0af5c4982a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/16159487_3a6615a565_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/112651128_7b5d39a346_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8454719295_4276c0e9c5_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/16462263826_2555edeb74_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7266196114_c2a736a15a_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/16970837587_4a9d8500d7.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/9965757055_ff01b5ee6f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7132605107_f5e033d725_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/12243069253_e512464095_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/18741313803_1bbf842fc6_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4588034197_e300b0872a_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/18111636378_856027a7b8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5957007921_62333981d2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9410186154_465642ed35.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14053292975_fdc1093571_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/159079265_d77a9ac920_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/11746367_d23a35b085_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4141147800_813f660b47.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/110147301_ad921e2828.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2387025546_6aecb1b984_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14126515096_1134fae695.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/1297092593_e573c0a3d6.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8805314187_1aed702082_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/10172379554_b296050f82_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/11642632_1e7627a2cc.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/16656127943_2f70926b6c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6125761554_4e72819ce4_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/2807106374_f422b5f00c.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20777358950_c63ea569a1.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/7186509956_c37c02fb43_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4792826628_aa5e5a9804_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4684022752_89631bd98e_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6627521877_6e43fb3c49_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/2536282942_b5ca27577e.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/1443259657_2704fab26e_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/19915160340_ec904edbdf_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/134372449_0f7166d96c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/5076821914_c21b58fd4c_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/19551343814_48f764535f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4851353993_2cbbbd1040_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3630246240_4fee9a33db.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/9610098411_f1613c8e14.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13530786873_0d34880300_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8838914676_8ef4db7f50_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/8241471746_5d81fdd3c0_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/16967372357_15b1b9a812_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13513644515_a51470b899.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14623719696_1bb7970208_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3457017604_90e4de7480_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/15644450971_6a28298454_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14067778605_0285b7cc3a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5416388641_c66d52d2ff_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/1392946544_115acbb2d9.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/7409458444_0bfc9a0682_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/11405573_24a8a838cc_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/18843967474_9cb552716b.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2621723097_736febb4a4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/14698531521_0c2f0c6539.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8270191872_61e47ae3b8_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/6019234426_d25ea1230a_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/23247483352_0defc7a6dc_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/138166590_47c6cb9dd0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4683997791_56e7d3c03c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/100080576_f52e8ee070_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/10486992895_20b344ce2d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6053739964_a1d9ab3ed1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/14613443462_d4ed356201.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15674450867_0ced942941_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/18996965033_1d92e5c99e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3761310831_41b5eba622_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14858674096_ed0fc1a130.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5193918046_d44e4fcd75_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/4290566894_c7f061583d_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/479495978_ee22cf05be.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/695778683_890c46ebac.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/6879112993_5a29208438_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/16258946661_f9739cdc0a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5435513198_90ce39f1aa_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/16241101274_334b54731e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/7376471712_e1be793f94.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3554620445_082dd0bec4_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/14019883858_e5d2a0ec10_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933229197_ff75a40d55.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/9759608055_9ab623d193.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2753166154_0cb51a127b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8926641787_d2515dfe8f_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/44079668_34dfee3da1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8713389178_66bceb71a8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/8645839873_0151fb92bf_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/8192234807_fed4a46f1a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5492988531_574cdc2bf0_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4764674741_82b8f93359_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4645161319_c308fc31ef_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/8081530919_c882d46bb0_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4625255191_26e17a28c9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/8174970894_7f9a26be7e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5665838969_fe217988b9_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/10164073235_f29931d91e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4607183665_3472643bc8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5607983792_f8b8766ff7.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/184682095_46f8607278.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/15186434972_e353da940a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/7884440256_91c033732d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6199086734_b7ddc65816_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8096324039_4db2555490.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/14307766919_fac3c37a6b_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2294126841_e478564e77_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/6931715360_34edc5a372_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/7304710956_015b41f802_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/175638423_058c07afb9.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/14886963928_d4856f1eb6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7469617666_0e1a014917.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5995136822_8e1eed76f5_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5952223760_85972671d6_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/11441893003_ab83672800.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/477207005_6327db8393_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/19526570282_1d1e71b0f3_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/23232710191_cc57620cd5.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2478018280_1be353ca8c_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13910131718_731353d84c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/7176723954_e41618edc1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4932735566_2327bf319a.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7205145492_baec4dbb94.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/7288989324_c25d9febbf.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2608937632_cfd93bc7cd.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3398195641_456872b48b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2480853696_aacdbb5324.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/477316928_a70a31a704_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/16482676953_5296227d40_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2019520447_48b2354a20_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8713391394_4b679ea1e3_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5772194932_60b833091f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2076141453_c63801962a_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/21652746_cc379e0eea_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/7166606598_5d2cd307c3.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4844697927_c70d644f40_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/16645809126_613b1e3ebe_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4482623536_b9fb5ae41f_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14728922673_99086a3818_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/1240625276_fb3bd0c7b1.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/7791014076_07a897cb85_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/455728598_c5f3e7fc71_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606741847_f0198d83ff.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054750690_198b6ab0f2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9651392844_77f90589ba_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2116997627_30fed84e53_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/6207492986_0ff91f3296.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/5923649444_a823e534e9.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/17357636476_1953c07aa4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/13900486390_5a25785645_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/19813618946_93818db7aa_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/7270523166_b62fc9e5f1_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/13946048982_4e6ec56987.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3637428148_a1dcccafa9_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/16484100863_979beacb08.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/18097401209_910a46fae1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5605093210_5fecb71c61.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/6931674908_8e93bd4554.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/16817037661_2980d823e1_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8838354855_c474fc66a3_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/6363976189_e7155e5f9c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/20658775992_1619cd0a9b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2443192475_c64c66d9c2.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/19784656639_cd7f0a4a26_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/6250363717_17732e992e_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5110104894_a52c685516_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15839183375_49bf4f75e8_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/10443973_aeb97513fc_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/39271782_b4335d09ae_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8729501081_b993185542_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2813649953_2b0f20fe94_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13561966423_e5c641fe11.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/6931489544_2f35025f7b_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/45045005_57354ee844.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/1419608016_707b887337_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/17146644679_11aff3045c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/18474740346_ffdaa18032.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606813305_c992231d29_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4151883194_e45505934d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/6060576850_984176cf4f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2535769822_513be6bbe9.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/18400014056_2e4c601ed5.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4414084638_03d2db38ae.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/2399982682_16929d1f6d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4523862714_b41b459c88.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3922005347_7b6fb82fcd.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/40411100_7fbe10ec0f_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/6948239566_0ac0a124ee_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14078067843_3573fcfc85_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2133943140_9fc7bcc9aa.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3459922572_bc8516b5fe_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8011324555_375b7b5b0a.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4061451210_1650590c6a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4504220673_af754fcb40_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/10294487385_92a0676c7d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/18245124970_e68fd3f3c3.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9240129413_f240ce7866_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8722514702_7ecc68691c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/1244774242_25a20d99a9.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3883895985_bd20198371.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/14245834619_153624f836.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/7166539842_43b7e02883.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/18587334446_ef1021909b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2374855021_21959b40c0_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/14408977935_a397e796b8_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/485266837_671def8627.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14472246629_72373111e6_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5631861819_f0eb39a357_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3554435478_1a7ab743e9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9246304620_768d1f54d7_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5979111025_3bcae48ae6_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/450128527_fd35742d44.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054866658_c1a6223403_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/22244161124_53e457bb66_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4858372040_52216eb0bd.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/144040769_c5b805f868.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4407065098_ef25f1ccac_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/17199499591_67b64b21ed_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16062072523_1be3c0b61f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8603340662_0779bd87fd.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5716633491_55e6f02645_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3909587261_f8cd3e7fe7.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/14348961225_09bd803317_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8681169825_19a21c6bf5_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8475769_3dea463364_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/7510240282_87554c7418_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3210019014_1bbd8bff20_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3451646670_3eff7094b7_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5037531593_e2daf4c7f1.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/563847503_89e9756c80.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/140951103_69847c0b7c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3146795631_d062f233c1.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/813445367_187ecf080a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4561670472_0451888e32_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/8644003462_2272de26eb.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/15472217046_2699b25584.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/8008258043_5457dd254b_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/16988605969_570329ff20_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/2936181186_38ff43492e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/5973488341_50bdf6cee3_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/25360380_1a881a5648.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4675532860_890504a4a3_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/505517255_cfbb6f6394.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/3546455114_cd2dea5e02.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/5813495998_64be1b8ab6_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5402157745_a384f0583d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3464015936_6845f46f64.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14373114081_7922bcf765_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4258272381_65bd4b8191_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2518321294_dde5aa7c20_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/19599413676_fc9ee2640e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3713368809_eba7fa2fbf_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/6982913043_3b873c6a25.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/15094168139_8f636ffa1d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/5666286130_1dc6f66f09_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/8348621545_8f02b82662_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3419172904_7708414ae9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14255917256_84c23c572b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8723679596_391a724d4f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8695372372_302135aeb2.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/20777375650_ef854bf645.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7196683612_6c4cf05b24.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4932143849_018486cbf7.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5628970369_54eb9ed31c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/857698097_8068a2c135_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/137126311_debe64c6a8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/18010259565_d6aae33ca7_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/16018886851_c32746cb72.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/19823402005_2db025dd66_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/15306268004_4680ba95e1.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/16055807744_000bc07afc_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4895122831_83db2ba2d0_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/443600168_cb08d56511.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/17062080069_36ac7907d2_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/22478719251_276cb094f9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/21374127408_5ffbe87bb2.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5773652803_574b51414f_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/5110102140_787d325757_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5651310874_c8be336c2b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/18232119726_cef27eaaac_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2351637471_5dd34fd3ac_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7243478942_30bf542a2d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/13471273823_4800ca8eec.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/18195689904_46619b7e16_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/18282528206_7fb3166041.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/16862422576_5226e8d1d0.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4333085242_bbeb3e2841_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/14163875973_467224aaf5_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8706523526_a0f161b72b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8209318399_ae72aefdb5.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2087343668_ef4fb95787_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14199664556_188b37e51e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/18635898912_eb8e058ef0.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/458011386_ec89115a19.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6080086410_17a02dcfb8.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/2243427551_809b603992_z.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14487762578_baba13d16a_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/17280886635_e384d91300_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/1314584013_fe935fdeb1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8747223572_dcd9601e99.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5884807222_22f5326ba8_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/5673551_01d1ea993e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3236806990_a90c7bb520_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/6299498346_b9774b6500.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/4837182901_69a6cc782b_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/1342002397_9503c97b49.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/1485142251_ca89254442.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/14741813010_5d44e33088_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/13235124703_a7e1266e44.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/12450781274_eb78723921.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/8966818334_483f4489be_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/2418823693_72eec80f42_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8712268519_f4c2c39a06_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5598591979_ed9af1b3e9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3459346147_faffff51c7_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/172882635_4cc7b86731_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/9726260379_4e8ee66875_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3626132563_d955973447_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14097676864_4ca8e8b20d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/15275478257_fbd5850708_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/14421389519_d5fd353eb4.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/146242691_44d9c9d6ce_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3621011057_0d03bd171b_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/16666836810_216f50e9c3_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14861513337_4ef0bfa40d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2535495431_e6f950443c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/9298314004_c1a8146521.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5133243796_44de429de5_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13514136074_ab1b827e4f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14171673854_1208c19be3_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5886830036_2b99899c95.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3474066174_8d3b3e8f97_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2535936698_78cc03df3f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19617643201_9922eec796.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3499837275_5f24d2f8bf_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/754248840_95092de274.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4574451859_432c856b6e_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/7749368884_1fc58c67ff_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/1793211631_68c31a74dc.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/13967344688_aa629dcdee_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/105806915_a9c13e2106_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/19508264965_d1dfb565ea_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/298670754_f25edda891.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3141434519_aaa64c4f65_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3844111216_742ea491a0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3661613900_b15ca1d35d_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/7141019507_4a44c6e888_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7950892504_33142110c2.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7280227122_7ea2bef7f4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3415180846_d7b5cced14_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/2823659190_afdabee45c.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8520482921_21dd204ebd_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19004688463_12a8423109.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5714327423_50af0cffe9.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/18238604119_a5689980ee_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/15172358234_28706749a5.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/8705462313_4458d64cd4.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8713388322_e5ae26263b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14121915990_4b76718077_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/391477275_7c2f50a1a7_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3517492544_0fd3ed6a66_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15066430311_fb57fa92b0_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5578766623_542c91dfaa_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14087425312_2b5846b570_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/27465811_9477c9d044.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/2249756775_02e693beda_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/9164924345_6b63637acf.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5768217474_f6b1eef6d5_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13197345653_0f685b3c97_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14097745904_436c4ba1b4_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/16339359979_6d742660b8_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3496258301_ca5f168306.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/19453165201_2aa747e0bf.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/9818247_e2eac18894.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/16316557109_7fc55c1cbc_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4610125337_50798408b8_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/15002906952_cab2cb29cf.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/6994931380_a7588c1192_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/18972803569_1a0634f398_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/10437929963_bc13eebe0c.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/14166797345_d2ab9da518.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/10617162044_8740d4dd9f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3758221664_b19116d61f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4396642388_3081a38875_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/9381481549_5a5d503e42_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/6325571510_7544b27e57_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9481563239_01b585b41d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8079778274_f2a400f749_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5682463466_d3e641cb8b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/8174972548_0051c2d431.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9558630626_52a1b7d702_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4042816698_578a1d599e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3501368412_358e144d1f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14087326141_1906d5a373_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/19153732586_9de58c8f53_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/20182559506_40a112f762.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/10386540106_1431e73086_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/779359602_30abcbf5bb_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3500121696_5b6a69effb_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/6866250080_ae80df0cd5_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3533167406_e9f4cf10bb_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/165985535_7178ce6350.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4229503616_9b8a42123c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2693136371_dde2570813.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/126012913_edf771c564_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4634716478_1cbcbee7ca.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14027372499_30f934d24f_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4820415253_15bc3b6833_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/14266917699_91b207888e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2470731130_089b8514f6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2077865117_9ed85191ae_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/5543457754_89c44c88de_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/1831404161_d2df86fd70.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/18304194360_2a4a0be631_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5360769702_ec28c53b9e_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14022473102_3b24ca08cb_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5249439791_196b4e7fc7.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/4604238410_bcec9da4a0_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/3213012716_b4c0f7db88.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3208417632_19138d8e35_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/6473543547_4fefdbd5dc.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14491997336_36ba524713.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/20619292635_9857a12d54.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2470177960_7bd67db186_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/305160642_53cde0f44f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/13279526615_a3b0059bec.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/2646438199_b309cffd65_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/7416083788_fcb4c4f27e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/18406629611_4d1edcf23b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5730908127_da871df0f8.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/303858799_942b9c09e7_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/17051448596_69348f7fce_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/7144016605_e159b6c06b_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3857059749_fe8ca621a9.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/22093190909_77223e6f53_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/7191221492_610035de7c_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8717161615_4c1e403083.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4552571121_2677bcdec3.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/16938892686_3613ea68e8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/466486216_ab13b55763.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/215798354_429de28c2d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4553203984_9cb9312240_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14067456066_87e15792d0.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8659691170_09db83d023.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/498159452_b71afd65ba.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3512879565_88dd8fc269_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/6136947177_47ff445eb4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/12616825773_9aa4245b57_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2883115621_4837267ea1_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5680695867_baff72fc7c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2862944799_45bc8e7302.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/6539831765_c21b68910e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14397276020_49f9423614.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5719416820_3060e3c1f0.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14084211971_0f921f11fe_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4872284527_ff52128b97.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/10386525695_2c38fea555_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5673112305_02fe19297b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2649404904_b7a91991bb_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/16242239484_51286673af.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/6936225976_a91b60d8c2_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4809566219_88f9a1aea3.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8712260079_c0ff42e0e2_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/5459481183_18d2d49e44_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606749757_b98a4ba403.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8738317694_eca2ce3bfc_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/10128546863_8de70c610d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3310644753_5607eb96a4_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5537794501_a0767743fd_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/107592979_aaa9cdfe78_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2426849837_baefd9a518_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3326037909_b5ae370722_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4609166128_b7ed49b40b_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3476980444_c276bea402_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7355522_b66e5d3078_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3912497870_a2f91c3a65_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5673728_71b8cb57eb.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/5110109540_beed4ed162_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2045022175_ad087f5f60_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/5674134129_2db5136cba.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/18711159980_11d3bd5042.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5060536705_b370a5c543_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4413509121_a62879598a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/6241886381_cc722785af.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/459748276_69101b0cec_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/8481979626_98c9f88848_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5069564563_ae03792c3c_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/19975899671_ebc42b7865_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/451965300_619b781dc9_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4300258119_b03f2f956e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7368449232_c99f49b2e6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5635347336_bc1400e939_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2569516382_9fd7097b9b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2408024540_37f0be7cc0_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/488202750_c420cbce61.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/4434592930_6610d51fca_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/14399435971_ea5868c792.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8980460785_b5e6842e59_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8724252904_db9a5104df_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5623855601_ecaebdb8fe.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4589787911_851cb80157_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8035910225_125beceb98_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2892056920_918c52889b_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/8938566373_d129e7af75.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/326541992_d542103ca8_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/15951588433_c0713cbfc6_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/467702445_b8676f60fb_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/1379256773_bb2eb0d95b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/7820523050_76c8caa025.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/7538403124_f2fc48750a.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3506615859_9850830cf0.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/9048307967_40a164a459_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/7176729812_7c053921fb_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13900235284_32ce563633_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13510068773_c925c5517c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/20773528301_008fcbc5a1_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/7055500907_dcf2bb50e0.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2951375433_ae2726d9d2_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/6994351792_343e18cbf6_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/17324469461_2b318aff8d_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9213511121_836a458021_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/17367866236_61abd4d243_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/521762040_f26f2e08dd.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3171577977_8608282f04_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/145862135_ab710de93c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/1128626197_3f52424215_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/14167534527_781ceb1b7a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5419629292_2f06e4b295.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/14065420729_9b388bf7cb_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5529939805_1679b014e1_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/20183028616_beb937e75c_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2494436687_775402e0aa.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8980145452_efbd6e3b04.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/18876985840_7531dc8e6a.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/6347847065_83cf87333b_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/18479635994_83f93f4120.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/12395698413_c0388278f7.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/9321854387_5f77c926cb_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/8882282142_9be2524d38_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3292654244_4a220ab96f_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/15029936576_8d6f96c72c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/2059172936_032ffc12aa.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/286875003_f7c0e1882d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/483886997_27ee798327.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/17994129033_bbd0acba62_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2561352120_7961d8263f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/1949195327_75f76c12b1.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2976723295_b16ab04231.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5883162120_dc7274af76_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/193878348_43571127b9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/16449467833_d82aac5749_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/489506904_9b68ba211c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3640845041_80a92c4205_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2254152047_d3bf8903cd_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/7147367479_f7a6ef0798.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4341530649_c17bbc5d01.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4258408909_b7cc92741c_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3455026124_d66cafb9fc.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5973935729_2868f2db1f_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7042692841_f323799c0d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8533312924_ee09412645_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3502632842_791dd4be18_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7116950607_49b19102ba_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9485002920_59af6f4cac.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5674707464_dc18de05b1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/17844723633_da85357fe3.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/4754734410_94d98463a5.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/142813254_20a7fd5fb6_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/12916017805_1cde91a891_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4155914848_3d57f50fc7.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13539404903_cd113e3e9b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19622465055_2a62ebd504_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2462379970_6bd5560f4c_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9399711558_7cb9547cd3_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8622493424_877ae35ed7.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/14866200659_6462c723cb_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/19435491090_7af558e17e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/147804446_ef9244c8ce_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2477986396_19da36d557_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4042180234_64cd2859c9_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/9164900485_605aa12da8.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4861391074_c3e122dab0_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/19443726008_8c9c68efa7_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/6888894675_524a6accab_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/12202373204_34fb07205b.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/18271576032_d7e2296de4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3419166382_a5e4b8fe6d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/11881770944_22b4f2f8f6_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/17249393016_093e915012_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/151898652_b5f1c70b98_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7481215720_73e40f178f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4588904196_3c5825c7f4.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/6187740107_9813ccc41e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/4713531680_1110a2fa07_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/5674127693_1ddbd81097.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4945315538_97bdd873c4.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/10043234166_e6dd915111_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3454461550_64d6e726bf_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4604272150_0c92385530_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/1426682852_e62169221f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/15516715153_08abc9bb20_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14071516088_b526946e17_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2620243133_e801981efe_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2330339852_fbbdeb7306_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4893356345_24d67eff9f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3334350831_f8755a2095_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/3465443774_6b0c75a3b1_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/6132275522_ce46b33c33_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4601270210_60136f2b87_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/9244082319_b1f7e2d8b0_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/6044710875_0459796d1b_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/17309951996_552d632cbb_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/6255593451_b8a3aa8f7a_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5670543216_8c4cb0caa8_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15069459615_7e0fd61914_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4890786831_91bb82a9e4_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7280222348_a87725ca77.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2346726545_2ebce2b2a6.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14088017343_dd158d2eb5.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4301689054_20519e5b68.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8605564823_7a59d3d92a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5923085891_27617463fe.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3466923719_b4b6df7f8b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/16930121391_a4092ecf00_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/14921511479_7b0a647795.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/21626652132_97e1318bb8_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2641979584_2b21c3fe29_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/18243351371_5fda92ac0a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4702438868_278b9cf41c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/2944298800_1984bd4f8a_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933230161_12f3ee7587.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3419176626_512811d3ff.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8667746487_781af9e615_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/22416421196_caf131c9fa_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2607132536_d95198e619_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/14469481104_d0e29f7ffd.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/10686568196_b1915544a8.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5012813078_99fb977616_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/12240165555_98625b1e88_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/7196409186_a59957ce0b_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8524505868_236f4c94b5.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/7376473742_532364cee5_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4625089819_55c45a189c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3998927705_af499a4f29.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/480621885_4c8b50fa11_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5596093561_09b0301136_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8904780994_8867d64155_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/19919867648_043cf02fc3.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/10770585085_4742b9dac3_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/171972704_389cf7a953.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/8394286483_69fe04cc7f.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/14648777167_1d92d403c9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3856725141_0db85f466d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14457225751_645a3784fd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/9320934277_4fb95aef5d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/8516036987_8a06dfe1b5_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5765646947_82e95a9cc9_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4568317687_3f89622f76.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14455605089_8bbfb41cd7_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3475870145_685a19116d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/11465213433_847c4fa261.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/17554868955_35f48516cd_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/13561912705_e5eeb41433_z.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/8928614683_6c168edcfc.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4235259239_21f2eb4f2e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14270573963_f122c40438.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14292205986_da230467ef.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/253586685_ee5b5f5232.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9427945592_07a2676945_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3591588855_b4fd53b000.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3516271083_fba63b5861.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9564240106_0577e919da_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8684108_a85764b22d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/19440910519_cb1162470e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/99306615_739eb94b9e_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/12243068283_ee4c2683e2_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/2767658405_1e2043f44c_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/20685027271_0e7306e7c1_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/19865728236_a62f8f445b_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/3858508462_db2b9692d1.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/3713290261_8a66de23ab.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15859434664_67bf3ef29f.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/11614202956_1dcf1c96a1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/8071646795_2fdc89ab7a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/11834945233_a53b7a92ac_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3109712111_75cea2dee6.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/497305666_b5d4348826_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/113902743_8f537f769b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13562271714_d534531374.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14404468648_37903d7025_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4546316433_202cc68c55.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8980266062_8387f6cc89.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/12471791574_bb1be83df4.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7040710179_7f86a17a3c_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/1306119996_ab8ae14d72_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/6918170172_3215766bf4_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/15516736553_b169b67195_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13979098645_50b9eebc02_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/645330051_06b192b7e1.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/15275504998_ca9eb82998.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/11545123_50a340b473_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/9431896325_23bf6e8761.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13561908485_7e4f8d508b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/15268682367_5a4512b29f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7280217714_fb9ffccf2d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/1267876087_a1b3c63dc9.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5892908233_6756199a43.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3465599902_14729e2b1b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/17066862602_7530f21efe.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/132538273_335240fe5b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19438516548_bbaf350664.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8060338380_eb6c806624_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3365850019_8158a161a8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5293283002_9b17f085f7_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8905148527_ba9f55cd78.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2502610598_b9f1b55ebd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3665455426_9cd1c3af4a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7145978709_2d1596f462.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4846786944_2832c5c8b8.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/506660896_c903cca1f0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/162362896_99c7d851c8_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2430566689_8543552f9b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/9458445402_79e4dfa89c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/16643944275_3cd4cd966c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/969913643_9d5cd2fe45_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/7285188160_49d84b95a3_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/6972675188_37f1f1d6f6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5700466891_2bcb17fa68_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4932735362_6e1017140f.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/1240624822_4111dde542.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/17990320484_93bba345d2_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/3552074420_2a0a7166db_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/17165596357_392a12391f.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8623173256_3f0eb4c506.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/1031799732_e7f4008c03.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/17851831751_35b071f4b0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/21402054779_759366efb0_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/17075803866_aeeded2637.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/12025042086_78bafc0eb6_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16110795216_b3e44697b4_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/12240303_80d87f77a3_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/7166554924_432aaae4b2_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/169371301_d9b91a2a42.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3581252194_8c976d333a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15072973261_73e2912ef2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/14564545365_1f1d267bf1_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/16862349256_0a1f91ab53.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/17318339476_54479b6660_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3440366251_5b9bdf27c9_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15821959372_518b9dcf57_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/10437770546_8bb6f7bdd3_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/251811158_75fa3034ff.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6229634119_af5fec0a22.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5909154147_9da14d1730_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4563059851_45a9d21a75.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/18220342690_f1c20134bd.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/210076535_80951bc5d5.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/6103898045_e066cdeedf_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/14087947408_9779257411_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/14573732424_1bb91e2e42_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/537625768_791e973b40.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2502613166_2c231b47cb_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/538920244_59899a78f8_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/7280221020_98b473b20d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/287233531_74d4605814_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/14805304536_c321a7b061_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/12934201824_1c8b5171fb_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/16961613890_695b36aab2_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4276898893_609d11db8b.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8701999625_8d83138124.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14110616533_e04775e7b1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3472437817_7902b3d984_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/19756232959_17cde3b9f0_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/16283125269_4cfae953f1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/7652532108_01ef94c476.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4418204816_018375acd0_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3655527028_0fab2b547d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/12094442595_297494dba4_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14623720226_aeeac66e0a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/14221848160_7f0a37c395.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/17224410762_402455ed8f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3664916269_29f07c7c7b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/1080179756_5f05350a59.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/19440805164_920b28da61_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/145303599_2627e23815_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6141199476_9b6d383fd9.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4623843480_23e3fb8dcc_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/15042911059_b6153d94e7_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9240005603_6a9b71dcea_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/14747962886_2bff6bb323_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/3784815653_5df39aa9c2_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/3711723108_65247a3170.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5863698305_04a4277401_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/16139439153_fbdee29a10_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/9369421752_db1ab2a6a4_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/3011223301_09b4e3edb7.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5043409856_395300dbe5_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/4804011140_7defedf4b7_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/19359539074_d7e32e6616_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/22255608949_172d7c8d22_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3449794006_8c289840aa.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6208857436_14a65fe4af_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4635296297_9ce69e4a6e.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3454102259_957ecd0a9b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/864957037_c75373d1c5.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/218630974_5646dafc63_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/9611923744_013b29e4da_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/510677438_73e4b91c95_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/17243540220_65b98eb926_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4080112931_cb20b3d51a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/3475572132_01ae28e834_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3315973481_850d2253e9_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3829990289_c0c3821e4d_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/9359374034_21fb12d613_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3418355347_2bdcca592a.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/2894191705_a1d2d80c80.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/2756028421_b3d5eea526_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14025589299_eac64c51af_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/11944957684_2cc806276e.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4696437766_85952d0196.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2542908888_25a1c78ff0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5434913005_409c1e8b56_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3598615130_578ed30e5f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/6122711533_2c219f0392_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4561871220_47f420ca59_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/12406229175_82e2ac649c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/15052586652_56a82de133_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16282277874_b92776b194.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3568925290_faf7aec3a0.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/9976515506_d496c5e72c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4521496161_2b41d4182e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3998275481_651205e02d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4914793782_d0ea760791.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/479115838_0771a6cdff.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8590442797_07fa2141c0_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/6983113346_21551e1b52_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8622237974_b362574785_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5398569540_7d134c42cb_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/3897174387_07aac6bf5f_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/15784493690_b1858cdb2b_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/15380755137_a2e67839ab_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/9517326597_5d116a0166.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4713958242_fbcfe9a61b_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/2443095419_17b920d155_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/16492248512_61a57dfec1_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/17029965300_8e755c2214_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5736328472_8f25e6f6e7.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/16670921315_0fc48d7ab2_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/193874852_fb633d8d00_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054866898_60ee50ec6b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2635422362_a1bf641547_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4510350093_3700064215.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8647874151_aac8db2588_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8572847041_d0cc07861f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/12548574923_5e90f4ceea.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/6606809995_edee55b770_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4258272073_f616d1e575_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8908062479_449200a1b4.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/22196426956_eca94f6faa_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5024965767_230f140d60_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4951581805_b049304f1b_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/23894449029_bf0f34d35d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/16237158409_01913cf918_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/510698601_9f61d6f8d8.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14761980161_2d6dbaa4bb_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/118974357_0faa23cce9_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4664767140_fe01231322_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3005677730_2662753d3f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5208680166_c4372477ef_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2927020075_54c9186797_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5718781677_d5e9267115_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/4609168052_3d4e1d3804_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14266093711_66d18a1e44_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14957470_6a8c272a87_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4191299785_a4faca9b74_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/16265883604_92be82b973.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/17276354745_2e312a72b5_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5556633113_0a04f5ed8a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5607256228_2294c201b3.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8716513637_2ba0c4e6cd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/459042023_6273adc312_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3560426426_1c66cb8330.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5435522104_1d6a61b431_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4622115595_a0de9f2013_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/9345273630_af3550031d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8712266605_3787e346cd_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/244074259_47ce6d3ef9.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8956863946_f96be02aae_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/6208851904_9d916ebb32_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/9599534035_ae4df582b6.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/14200639491_2a4611916d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/21657726011_2c94e341bc_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/15602874619_03fd934bed.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2596413098_7ef69b7e1d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3253243865_435c1f2c2b_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/7148085703_b9e8bcd6ca_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8733586143_3139db6e9e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/10946896405_81d2d50941_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3238068295_b2a7b17f48_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5896354497_6a19162741.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/13910471347_30c8bf4de1_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3026375835_a20ecdd140_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4540555191_3254dc4608_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3730618647_5725c692c3_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5799616059_0ffda02e54.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/13910028149_6c9d5485ef.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/6884975451_c74f445d69_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/15760811380_4d686c892b_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/6529588249_d9cbe68aab_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/4657354814_f368762c53_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/17719248689_cfd5d2f228_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3562861685_8b8d747b4d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/6931708704_fccb06fea8.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13999402743_f563f6b685_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9497774249_7f5ae70927_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/7820398908_4316bbba45.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14067476586_36bcddf111.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/130684927_a05164ba13_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2447151631_7551e6377b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3749090865_b90f28a585_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/7012366081_019c8a17a4_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/7132676187_7a4265b16f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14202166370_e989588332.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8748402330_c00f9fbf7f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/9030467406_05e93ff171_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933823194_33f6e32c5a.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/2625836599_03e192266f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3456403987_5bd5fa6ece_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4676527148_d701b9202f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/420216121_3ee33723d7_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/1757822526_fe30b9b3ca_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/13264214185_d6aa79b3bd.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/8689302980_9bd2f7b9fe_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14061132852_89122de5f9_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5670916806_df4316006f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/12471441503_d188b5f31a_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/8478248531_1a16e232b5.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/16680927427_07ca6e4552_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/2481015475_b71a12917d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19506262462_d0945c14a6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/6480809573_76a0074b69_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/5653364300_bc557236c7_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3699235066_fc09a02dfe_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/10993818044_4c19b86c82.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8989067485_aab399460b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14901528533_ac1ce09063.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/15005530987_e13b328047_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/1798082733_b8080b1173_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2521408074_e6f86daf21_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/6409000675_6eb6806e59.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/6910811638_aa6f17df23.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4356781875_92c5cd93c0.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5874818796_3efbb8769d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/12998979765_3de89e7195_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/578938011_34918b1468.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/476857510_d2b30175de_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/19544831049_0d738d4872_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/7176736574_14446539cb_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/19613308325_a67792d889.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5430796647_f21b7b0fea.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/8035908422_87220425d2_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/16209331331_343c899d38.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/3422228549_f147d6e642.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/8687729737_a7fbeded2c_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/3530495617_fd84fb321a_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5796562389_ae43c83317_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/18237215308_a158d49f28_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3021333497_b927cd8596.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7425858848_d04dab08dd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14283011_3e7452c5b2_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4633514720_22e82c5f7c_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8949720453_66e8304c30.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3530500952_9f94fb8b9c_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14487705209_ea723109e1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16594995743_ce72c61201_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/13929462317_96342a9a44.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/8475758_4c861ab268_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4222584034_8964cbd3de.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/54377391_15648e8d18.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/3278709893_ba4956a572_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/3524204544_7233737b4f_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/102841525_bd6628ae3c.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5602220566_5cdde8fa6c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14015957646_8317a0f1d9_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/15147473067_7c5498eb0e_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/13901930939_a7733c03f0_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4256169180_55df2048a0.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/9339697826_88c9c4dc50.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20407896403_a50fef58ac_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5086249859_d066b37b8a_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5794835_d15905c7c8_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/7586498522_4dcab1c8d2_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/3469112805_6cc8640236.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/16863587471_cc3a6ffb29_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7094415739_6b29e5215c_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/12764617214_12211c6a0c_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3921794817_276eb4386b.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8702982836_75222725d7.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/10094729603_eeca3f2cb6.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/7046815693_f159e96acd_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2498632196_e47a472d5a.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/2481823240_eab0d86921.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/493696003_f93ffb3abd_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/483097906_2c35054346.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/8249000137_eddfffa380_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/7270375648_79f0caef42_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/3494265422_9dba8f2191_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/9161647994_e39b65cb9c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4522764992_e9d70b82c1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9309473873_9d62b9082e.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9111896677_ff0b6fa6f6_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/6950609394_c53b8c6ac0_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/503770507_f397245a6a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3749091071_c146b33c74_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/463736819_f779800165.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8223968_6b51555d2f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4804434999_bf2187e96a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/9167147034_0a66ee3616_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5110110938_9da91455c4_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/13953307149_f8de6a768c_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/21195621914_a5bdbb203d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/6950173662_5e9473003e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/4144275653_7c02d47d9b.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/2535466143_5823e48b63.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4514343281_26781484df.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5715788902_9dd2b4ef1d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4848279231_c4960e28b2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/80846315_d997645bea_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5948835387_5a98d39eff_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/16702117379_c25bff70e9.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2551708158_1f10e81e11.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/1044296388_912143e1d4.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14014595475_5892fcda51_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/13231224664_4af5293a37.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14087792403_f34f37ba3b_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3539077354_c67aa7168d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8613502159_d9ea67ba63.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8712267391_c756f18ee7_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/2480569557_f4e1f0dcb8_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2698102820_f15445a3f7.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5061135742_2870a7b691_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/9939430464_5f5861ebab.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8712270243_8512cf4fbd.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/148698493_5710e5f472.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/2803725948_5fd1f2fc99_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/391364010_4b0942d400_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/17220096449_0e535989f0_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/18679421522_3be9879e32.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/1446090416_f0cad5fde4.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/6690926183_afedba9f15_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/16098264209_38fe491093.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3594967811_697184b026_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/15452909878_0c4941f729_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3526860692_4c551191b1_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/14312910041_b747240d56_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/518256494_368a72db37.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/19442589512_e733cfea0f.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/1150395827_6f94a5c6e4_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/18582579815_4c6637e9ff_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5721768347_2ec4d2247b_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2197754124_5c8a146761_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2161283279_02ea3ff8d4.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/1666341535_99c6f7509f_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8750288831_5e49a9f29b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8194560480_bfc1fb5801.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14925398441_107f3e0304_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/13734221225_0e04edc6b6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/10919961_0af657c4e8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/1217254584_4b3028b93d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/9922116524_ab4a2533fe_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/8708143485_38d084ac8c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/394990940_7af082cf8d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/20871601265_daa4be4291_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9904127656_f76a5a4811_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/151385302_f8980a257f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5643666851_dc3f42399d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/909277823_e6fb8cb5c8_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/2642408410_61545fdc83_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/17781940352_a45e4289a5.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3412874275_ca78ee024d_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/13539827514_79b60b6c22_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/921252114_91e334b950.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/14144522269_bc20029375_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3991423020_9aaf2b5974_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3971662839_5cb2963b20_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/2735666555_01d53e74fe.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/3422915985_9bf7264d36.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2501297526_cbd66a3f7e_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/4694734757_5c563d38dd_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13509973805_bda5fa8982.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2831102668_eb65cd40b9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4082856478_741a411ebb.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/16937554595_3e1de22f9c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2065522422_cfdd80044a_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/2333321040_3960b9d67e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/16699732794_5bfd639cf8_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13530796853_e5993f57d6_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/8202034834_ee0ee91e04_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/265422922_bbbde781d2_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/6989946990_62c639ff16_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14078067903_92f5eb27ff.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5043225469_0aa23f3c8f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4574737576_044403a997_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5875763050_82f32f2eed_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8981659922_7b1be892e7_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/1353748522_b9c630b162.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9460336948_6ae968be93.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/12165480946_c4a3fe182d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/1273326361_b90ea56d0d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/402525114_eaa60c8341_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/13651218133_b6eb8e7ed2_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3533954656_79156c8473.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/15149373026_93aacc65c5.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/21728822928_9f6817325a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/9111669902_9471c3a49c_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4821232343_7e0bcfbfdf_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/3386988684_bc5a66005e.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/11023272144_fce94401f2_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8838983024_5c1a767878_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7184780734_3baab127c2_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/22385375599_1faf334f5d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/19617425002_b914c1e2ab.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5623010186_796ca8d29a.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3410906335_37e8a24b1c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/3894586562_5dbbdc4354_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5135131051_102d4878ca_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/8713357842_9964a93473_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/20825078671_90b0389c70_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/13530687085_9b515735ef_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14306875733_61d71c64c0_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6140892289_92805cc590.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/14845607659_1be18c5d7f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/100930342_92e8746431_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/17165583356_38cb1f231d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8521597402_4b6169ba05.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/2949945463_366bc63079_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/3627678863_557552c879_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/7820305664_82148f3bfb_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3848405800_8eea982c40.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4580206494_9386c81ed8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/10995953955_089572caf0.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/16149016979_23ef42b642_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/18276105805_d31d3f7e71.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3697780051_83e50a6dd1_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/20022771089_3cc7e5086d_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/267148092_4bb874af58.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/21413573151_e681c6a97a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4745985619_249078cafa_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/10777398353_5a20bb218c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/10163955604_ae0b830975_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8797114213_103535743c_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5840476802_dfa40deb1f_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/19067907051_16d530c7d2.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8663932737_0a603ab718_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/17305246720_1866d6303b.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/10477378514_9ffbcec4cf_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/13968424321_1d89b33a9f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2619413565_61a6cd3ac9_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/13920113_f03e867ea7_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/1008566138_6927679c8a.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/22183521655_56221bf2a4_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/413815348_764ae83088.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/8234846550_fdaf326dbe.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/14221836990_90374e6b34.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/5994586159_1dd99d66b4_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5148639829_781eb7d346.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/2307673262_e1e1aefd29.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/20289938802_e16fa9f23d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/9216323421_f737c1d50e.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/133692329_c1150ed811_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/4550117239_5907aaba4c.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/5665834973_76bd6c6523_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/4746643626_02b2d056a2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/9216286876_289a4779f7.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7082476907_99beef0dde.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4878447831_e904c60cf8_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8036594516_69a7da5f73_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/1801614110_bb9fa46830.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/5628515159_6b437ff1e5_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/17012955700_7141d29eee.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/15060816740_68e1b2c31b.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/2979297519_17a08b37f6_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4814515275_6e25a6c18f.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/1540738662_7b4152e344_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/1656856503_447e5b0f03.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/17907238905_1ae121f8d9_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8619064872_dea79a9eb9.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/8368015811_2893411cf7_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/5727534342_419604c177_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4587872443_a86c692cb8.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9206376642_8348ba5c7a.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/5007598545_90e08e81c1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/4325834819_ab56661dcc_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/315645471_dda66c6338_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5434901893_4550be3f84_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/2713683760_d98cd2a05b_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/9353111163_7a89b2df35_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/2889325612_f2fc403ff0_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4765063233_f64440c20b.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/7302931078_30054c1970_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4248222578_b4d5868b32.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/7166550328_de0d73cfa9.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/4723876257_d87b781986.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8689672277_b289909f97_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/15147464747_594599c855_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16951623209_00fb7ec1b1_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/9497774935_a7daec5433_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4281102584_c548a69b81_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5159317458_bbb22e2f65_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3505026222_c760df0035_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/17482158576_86c5ebc2f8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/8292914969_4a76608250_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/1756973583_4aac7df00d_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/23204123212_ef32fbafbe.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6042014768_b57f0bfc79_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/9947374414_fdf1d0861c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/4666648087_b10f376f19.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/8831808134_315aedb37b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5970300143_36b42437de_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/197011740_21825de2bf.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6953297_8576bf4ea3.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5632774792_0fa33d17eb_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/14147016029_8d3cf2414e.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/16476788181_0e2ffc719a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/17094167287_865840060d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/4900231976_f8ced2b42a_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4669006062_6b3d260037_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/14485782498_fb342ec301.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3105702091_f02ce75226.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/5897035797_e67bf68124_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/14060367700_fe87e99b6a_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/7179487220_56e4725195_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4510938552_6f7bae172a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3104672186_5f75647448_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/8174941335_56389b53e9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5223191368_01aedb6547_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/9702378513_229a96b754_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/116343334_9cb4acdc57_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4624036600_11a4744254_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5060519573_c628547e20_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/1386449001_5d6da6bde6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5623492051_8e5ce438bd.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3451177763_729a4d54af_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3461986955_29a1abc621.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3065719996_c16ecd5551.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/7630511450_02d3292e90.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/5811004432_266f0f0c6f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/517054467_d82d323c33_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/8063844363_db3f4dea85.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/4363734507_5cc4ed6e01.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/5526324308_b333da0e57_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/15049902081_dd85361f8c_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/45045003_30bbd0a142_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/8014735546_3db46bb1fe_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/4610018126_21f438d2dc_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/4131565290_0585c4dd5a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/17908793211_ff0f1f81d3_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/5923085671_f81dd1cf6f.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/14335561523_f847f2f4f1.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/2706304885_4916102704_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/14046760909_0c73e84a1f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13513846963_c3d5e9fb1d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/16143151468_4f3c033e33.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/15495578821_92c6d14252_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5332550500_ab341aefd8.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/19566556880_476c66c5ee_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/437859108_173fb33c98.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/12584810723_c97d00fcfd.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/6596277835_9f86da54bb.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/2392457180_f02dab5c65.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/14829055_2a2e646a8f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/501987288_c69c4e0c90_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/7179796338_05e8b1c87b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/9346508462_f0af3163f4.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4562516418_8ccb8c103f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/17720403638_94cfcd8d5c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/8642679391_0805b147cb_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/15207766_fc2f1d692c_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/5853276960_d08f90fff6.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13857267684_d2a4b2630f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/6111589202_8b9555364c_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2634665077_597910235f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/8980164828_04fbf64f79_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3705716290_cb7d803130_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/6876631336_54bf150990.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3451637528_b245144675_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4989952542_35f2cdd5e2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6074427492_1b5bab7848_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/20622485918_90fc000c86_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/10683189_bd6e371b97.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/16819071290_471d99e166_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/9338237628_4d2547608c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/8063462557_e0a8bd6c64_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/14621687774_ec52811acd_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15822837396_96b392fda8_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/10994032453_ac7f8d9e2e.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/10779476016_9130714dc0.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/488849503_63a290a8c2_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/1064662314_c5a7891b9f_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/17135145776_4c2ec21b05_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/175106495_53ebdef092_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/17747738311_5014b1f77f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4275776457_d04b597cfa_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/5043409092_5b12cc985a_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/9286947622_4822f4fc21.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/18999743619_cec3f39bee.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3695826945_9f374e8a00_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14651385476_7ccb20e594_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7153497513_076486e26b_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8713398614_88202e452e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14375349004_68d893254a_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14674389605_df3c0bcfa1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/14167543177_cd36b54ac6_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/5032376020_2ed312306c.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/5634767665_0ae724774d.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/7728953426_abd179ab63.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/1596293240_2d5b53495a_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/3510294699_bc4c72cb7d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/7320089276_87b544e341.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/2489438981_4eb60ef98f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/5602738326_97121e007d_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/574373182_2776669a79_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933229561_881d4673e7_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/3576488381_611f3446e0_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4932144003_cbffc89bf0.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/14154164774_3b39d36778.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/6998661030_46cbb7892a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4556178143_e0d32c0a86_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3145692843_d46ba4703c.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/146884869_b1a8fa9c4e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2535727910_769c020c0d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3445110406_0c1616d2e3_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/5981645737_29eceac291_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/10503217854_e66a804309.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/7448453762_aea8739f1b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/19586799286_beb9d684b5.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8960904651_9a0b727258.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/2816503473_580306e772.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/17189456156_6fc1067831.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/17040847367_b54d05bf52.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/8489463746_a9839bf7e4.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14017640283_c417141832_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/2634666217_d5ef87c9f7_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/17700322054_1c4fdaa034_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/14090546015_504c8becd1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/8712267813_f7a9be2ec5.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/1195255751_d58b3d3076.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3511104954_54eace015c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3634244527_e72c47842c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/5470898169_52a5ab876c_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/16677199221_eab3f22378_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4265711814_9a006ee5b8.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/721595842_bacd80a6ac.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/850416050_31b3ff7086.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/12348343085_d4c396e5b5_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15820572326_be2ea4a55c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/10559679065_50d2b16f6d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/16766166609_ccb8344c9f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4838669164_ffb6f67139.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/6209630964_e8de48fe04_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/153210866_03cc9f2f36.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/6969041818_a505baa68e_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/14128835667_b6a916222c.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/16904202259_8f45d045c3_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/6166888942_7058198713_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/38287568_627de6ca20.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/6799076717_575944af91_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/3846907701_e13b66aa87.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/14088053307_1a13a0bf91_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/9533964635_f38e6fa3c3.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/5598845098_13e8e9460f.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3951246342_930138610b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/24459750_eb49f6e4cb_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/9200211647_be34ce978b.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/8964198962_6d8593b533.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/5674167473_ac696c8989_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3098641292_76c908ba1f_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/7345657862_689366e79a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/2213954589_c7da4b1486.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/2300959680_8d22fa5ee2.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/17077940105_d2cd7b9ec4_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2611119198_9d46b94392.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/10841136265_af473efc60.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/9853885425_4a82356f1d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/3196753837_411b03682d_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7205698252_b972087cc2.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/14244273988_a7484f18b7_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20406385204_469f6749e2_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4942258704_c4146b710a_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/176284193_8fa1710431_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14073608876_49db8ac97d_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/2723995667_31f32294b4.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054752730_fcf54d475e_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/133960364_d87f883c15_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4164845062_1fd9b3f3b4.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/2273917656_6d6c038283.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/17344936845_fec4d626b7.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2465442759_d4532a57a3.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/14402451388_56545a374a_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5526964611_76ef13025c_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2598486434_bf349854f2_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/17148843706_df148301ac_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/20258015499_93b9951800_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/14172324538_2147808483_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/16374919860_4e445de29f_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/14460075029_5cd715bb72_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/7047408023_6e98fd1e3f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/3696596109_4c4419128a_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/835750256_3f91a147ef_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4571923094_b9cefa9438_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5698944116_fd35fe6bea.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7247192002_39b79998f0_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/6140661443_bb48344226.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/17466568484_9128287148.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4440480869_632ce6aff3_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/8071460469_a7c2c34b97_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/9120905231_329598304e.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/16303377824_6e9128b4bd.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/425800274_27dba84fac_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/17147436650_c94ae24004_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13903937027_44b9f2f5b8.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/18378581986_5cd1494d08_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/1353279846_7e6b87606d.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/13472387874_d844478dbb.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4877195645_791c3a83b9_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/6198569425_e953b9e6cc_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/13648603305_1268eda8b7_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/18996760154_58d3c48604.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/2516714633_87f28f0314.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8747396730_966149e6fe_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4818994715_9d90527d18_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/12193032636_b50ae7db35_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/13910544560_9140dd547e.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/15458787091_3edc6cd1eb.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/495098110_3a4bb30042_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/23192507093_2e6ec77bef_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/4590702749_e1df8e0c1b.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/7481204112_e3c57dd40a_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/3873271620_1d9d314f01_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4134441089_c8c1e6132a.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/5644061265_e02135f028_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14053397367_75cba846eb_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4654893119_45d232016b.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/23645265812_24352ff6bf.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/12916135413_dafcf3089e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14576445793_582aa6446b_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/4065283966_9504b98269.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2683330456_0f7bbce110_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/4933823300_39fd4420b6.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3912497888_e7a5905bc3_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/26254755_1bfc494ef1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/4292443009_3a2831b0b9_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/6363951285_a802238d4e.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/12572786553_634868f7f2_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/7410356270_9dff4d0e2e_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14024864234_713158c27f_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6400843175_ef07053f8f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/15218871222_c104032ca1.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8737699225_19e0c9f0fa_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4574736702_b15ecf97d0_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4669117051_ce61e91b76.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/7551637034_55ae047756_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/17066864992_1cbc4fc908.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/494803274_f84f21d53a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/16582481123_06e8e6b966_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/3704305945_a80e60e2f6_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/141935731_d26d600f4f_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8713397358_0505cc0176_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/4530848609_02a1d9b791.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/8265023280_713f2c69d0_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/3311874685_7b9ef10f7e_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/8382667241_0f046cecdb_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14097111174_87a2e7e0c7_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/164672339_f2b5b164f6.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/21805938544_bf6bb0e4bc.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/7924174040_444d5bbb8a.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3474942718_c418dae6f1.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15312360171_57bde98799_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/4847062576_bae870479c_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/4562423077_00b16240dc_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/14330343061_99478302d4_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/3614805920_7a6610aa4b_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/130684941_d1abfa3be6_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/9242705328_eee8402a8d.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/3509307596_6cfe97867d_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3502615974_ef4bd13202_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/13472393854_b2530f7029_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/14093907931_dd8f642574.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/8775267816_726ddc6d92_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/134409839_71069a95d1_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/5731750490_ba3325b7ee_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/3446018470_0c40e73ed6_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/14076873230_d0bd53b220.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14097328354_4f1469a170.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/10555815624_dc211569b0.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/5357144886_b78f4782eb.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/5578760521_e54aca6bed_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/5881907044_92a85a05c8_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/9617087594_ec2a9b16f6.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/19691175559_ef12b8b354_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/8712282563_3819afb7bc.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/7262863194_682209e9fb.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5083072098_81587295d5.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/6867597533_d65d1c39fb_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4657801292_73bef15031.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/2579018590_74359dcf1a_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/sunflowers/8929288228_6795bcb1fe.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/235651658_a7b3e7cbdd.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/40410686_272bc66faf_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/15054864058_2edca122a9_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/8524505546_b242bd4928_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/2949654221_909b0c86a1_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4110787181_f73f12d107_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/4553266758_09d4dbdac9_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/20621698991_dcb323911d.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/roses/229488796_21ac6ee16d_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/daisy/3963330924_6c6a3fa7be_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/14093565032_a8f1e349d1.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5757091018_cdfd79dfa6_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/6983105424_f33cc9b08d_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/3773181799_5def396456.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/674407101_57676c40fb.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/18970601002_d70bc883a9.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/4558562689_c8e2ab9f10.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/2609353769_dc3654f12f.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/17047231499_bd66c23641.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/16334786972_1b3e71cab8_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/8555123165_2fe57eff4f.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/6133988570_9dc778e622_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4895721242_89014e723c_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/5997702776_c7bc37aa6b_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/daisy/3633489595_a037a9b7a4_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/2426847695_4b8409402e_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/14683774134_6367640585.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/4714026966_93846ddb74_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/854593001_c57939125f_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/5172171681_5934378f08.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/2495749544_679dc7ccef.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/23356825566_f5885875f2.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/19600096066_67dc941042.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/3292434691_392071d702_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/tulips/4395433872_e073d8c721_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/22785985545_95464115b0_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/sunflowers/20965412955_2c640b13bd.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/15082212714_ff87e8fcb1_m.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/roses/4998708839_c53ee536a8_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/8719032054_9a3ce4f0ff.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/4697206799_19dd2a3193_m.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/15275144259_f9a18ec9cb.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/22203670478_9ec5c2700b_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/4633792226_80f89c89ec_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/15537825851_a80b6321d7_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/5223643767_d8beb7e410.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/sunflowers/4895721788_f10208ab77_n.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/tulips/8712269349_2b933da2b8_n.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/14002252932_64d5cbdac7.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/909609509_a05ccb8127.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/14414100710_753a36fce9.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/4648680921_80dfc4f12a.jpg,roses
-gs://cloud-ml-data/img/flower_photos/roses/269037241_07fceff56a_m.jpg,roses
-gs://cloud-ml-data/img/flower_photos/dandelion/6994933428_307b092ce7_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/3002863623_cd83d6e634.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/tulips/5552198702_35856ed8ec.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/dandelion/5598014250_684c28bd5c_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/tulips/14068348874_7b36c99f6a.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/daisy/9054268881_19792c5203_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/tulips/4599815420_8ee42c2382.jpg,tulips
-gs://cloud-ml-data/img/flower_photos/sunflowers/4528959364_fa544b0f4e_m.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/dandelion/8757650550_113d7af3bd.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/9262004825_710346cde9_n.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/roses/8692040971_826614516f_n.jpg,roses
-gs://cloud-ml-data/img/flower_photos/sunflowers/127192624_afa3d9cb84.jpg,sunflowers
-gs://cloud-ml-data/img/flower_photos/daisy/2057816617_18448093d0_n.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/dandelion/4847150510_7a5db086fa.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/dandelion/18803577858_fd0036e1f5_m.jpg,dandelion
-gs://cloud-ml-data/img/flower_photos/daisy/20329326505_a777c71cc2.jpg,daisy
-gs://cloud-ml-data/img/flower_photos/roses/15699509054_d3e125286f_n.jpg,roses
diff --git a/notebooks/introduction_to_tensorflow/solutions/3_keras_sequential_api_vertex.ipynb b/notebooks/introduction_to_tensorflow/solutions/3_keras_sequential_api_vertex.ipynb
deleted file mode 100644
index 05911bc1d..000000000
--- a/notebooks/introduction_to_tensorflow/solutions/3_keras_sequential_api_vertex.ipynb
+++ /dev/null
@@ -1,696 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Introducing the Keras Sequential API"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "**Learning Objectives**\n",
- " 1. Build a DNN model using the Keras Sequential API\n",
- " 1. Learn how to train a model with Keras\n",
- " 1. Learn how to save/load, and deploy a Keras model on GCP\n",
- " 1. Learn how to deploy and make predictions with the Keras model"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Introduction"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The [Keras sequential API](https://keras.io/models/sequential/) allows you to create TensorFlow models layer-by-layer. This is useful for building most kinds of machine learning models but it does not allow you to create models that share layers, re-use layers or have multiple inputs or outputs. \n",
- "\n",
- "In this lab, we'll see how to build a simple deep neural network model using the Keras Sequential API. Once we have trained our model, we will deploy it using Vertex AI and see how to call our model for online prediction."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Start by importing the necessary libraries for this lab."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "import os\n",
- "\n",
- "os.environ[\"KERAS_BACKEND\"] = \"tensorflow\"\n",
- "\n",
- "# Set `PATH` to include the directory containing saved_model_cli\n",
- "PATH = %env PATH\n",
- "%env PATH=/home/jupyter/.local/bin:{PATH}\n",
- "\n",
- "import datetime\n",
- "import shutil\n",
- "\n",
- "import keras\n",
- "import numpy as np\n",
- "import pandas as pd\n",
- "import tensorflow as tf # Used only for tf.data loader\n",
- "from google.cloud import aiplatform\n",
- "from keras import Input\n",
- "from keras.callbacks import TensorBoard\n",
- "from keras.layers import Dense\n",
- "from keras.metrics import RootMeanSquaredError\n",
- "from keras.models import Sequential\n",
- "from matplotlib import pyplot as plt\n",
- "\n",
- "print(keras.__version__)\n",
- "%matplotlib inline"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Load raw data"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We will use the taxifare dataset, using the CSV files that we created in the first notebook of this sequence. Those files have been saved into `../data`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!ls -l ../data/*.csv"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "!head ../data/taxi*.csv"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Use tf.data to read the CSV files"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We wrote these functions for reading data from the CSV files above in the [previous notebook](./2a_dataset_api.ipynb)."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "def parse_csv(row):\n",
- " ds = tf.strings.split(row, \",\")\n",
- " # Label: fare_amount\n",
- " label = tf.strings.to_number(ds[0])\n",
- " # Features: pickup_longitude, pickup_latitude, dropoff_longitude, dropoff_latitude\n",
- " features = tf.strings.to_number(ds[2:6]) # use some features only\n",
- " return features, label\n",
- "\n",
- "\n",
- "def create_dataset(pattern, batch_size, mode=\"eval\"):\n",
- " ds = tf.data.TextLineDataset(pattern).skip(1)\n",
- " ds = ds.map(parse_csv).repeat()\n",
- " if mode == \"train\":\n",
- " ds = ds.shuffle(buffer_size=1000)\n",
- " ds = ds.batch(batch_size, drop_remainder=True)\n",
- " return ds"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Build a simple keras DNN model"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Next, we create the DNN model. The Sequential model is a linear stack of layers and when building a model using the Sequential API, you configure each layer of the model in turn. Once all the layers have been added, you compile the model. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Build a keras DNN model using Sequential API\n",
- "model = Sequential(\n",
- " [\n",
- " Input(shape=(4,), name=\"input_layer\"),\n",
- " Dense(units=32, activation=\"relu\", name=\"hidden_1\"),\n",
- " Dense(units=8, activation=\"relu\", name=\"hidden_2\"),\n",
- " Dense(units=1, activation=\"linear\", name=\"output\"),\n",
- " ]\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Next, to prepare the model for training, you must configure the learning process. This is done using the compile method. The compile method takes three arguments:\n",
- "\n",
- "* An optimizer. This could be the string identifier of an existing optimizer (such as `rmsprop` or `adagrad`), or an instance of the [Optimizer class](https://keras.io/api/optimizers/).\n",
- "* A loss function. This is the objective that the model will try to minimize. It can be the string identifier of an existing loss function from the [Losses class](https://keras.io/api/losses/) (such as `categorical_crossentropy` or `mse`), or it can be a custom objective function.\n",
- "* A list of metrics. For any machine learning problem you will want a set of metrics to evaluate your model. A metric could be the string identifier of an existing metric or a custom metric function."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Compile the keras model\n",
- "model.compile(optimizer=\"adam\", loss=\"mse\", metrics=[RootMeanSquaredError()])"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Train the model"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "To train your model, Keras provides two functions that can be used:\n",
- " 1. `.fit()` for training a model for a fixed number of epochs (iterations on a dataset).\n",
- " 2. `.train_on_batch()` runs a single gradient update on a single batch of data. \n",
- " \n",
- "The `.fit()` function works for various formats of data such as NumPy array, list of Tensors, `tf.data` datasets, and Python generators. The `.train_on_batch()` method is for more fine-grained control over training and accepts only a single batch of data.\n",
- "\n",
- "Our `create_dataset` function above generates batches of training examples, so we can use `.fit`. \n",
- "\n",
- "We start by setting up some parameters for our training job and create the datasets for the training and validation data."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "BATCH_SIZE = 64\n",
- "NUM_TRAIN_EXAMPLES = 10000 * 10 # training dataset will repeat, wrap around\n",
- "NUM_EVALS = 10 # how many times to evaluate\n",
- "NUM_EVAL_EXAMPLES = 1000 # enough to get a reasonable sample\n",
- "\n",
- "trainds = create_dataset(\n",
- " pattern=\"../data/taxi-train.csv\", batch_size=BATCH_SIZE, mode=\"train\"\n",
- ")\n",
- "\n",
- "evalds = create_dataset(\n",
- " pattern=\"../data/taxi-valid.csv\", batch_size=BATCH_SIZE, mode=\"eval\"\n",
- ").take(NUM_EVAL_EXAMPLES // BATCH_SIZE)\n",
- "\n",
- "print(f\"Training dataset object: {trainds}\")\n",
- "print(f\"Evaluation dataset object: {evalds}\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "There are various arguments you can set when calling the Keras `fit` method (see [documentation](https://keras.io/api/models/model_training_apis/#fit-method)). Key parameters include:\n",
- "- `x`: Input data. In our case, this is `trainds`, a `tf.data.Dataset` object that yields batches of (features, labels). Keras 3 can handle `tf.data.Dataset` inputs even with non-TensorFlow backends. See the [documentation](https://keras.io/api/models/model_training_apis/#fit-method) to understand other types of input.\n",
- "- `epochs`: The number of times to iterate over the entire training dataset. We're training for 10 epochs.\n",
- "- `validation_data`: Data on which to evaluate the loss and any model metrics at the end of each epoch. In our case, this is `evalds`, another `tf.data.Dataset` object.\n",
- "- `callbacks`: A list of [callbacks](https://keras.io/api/callbacks/) to apply during training. We use a `TensorBoard` callback to save logs for visualization with TensorBoard."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "%%time\n",
- "steps_per_epoch = NUM_TRAIN_EXAMPLES // (BATCH_SIZE * NUM_EVALS)\n",
- "\n",
- "LOGDIR = \"./taxi_trained\"\n",
- "shutil.rmtree(path=LOGDIR, ignore_errors=True) # start fresh each time\n",
- "\n",
- "history = model.fit(\n",
- " x=trainds,\n",
- " steps_per_epoch=steps_per_epoch,\n",
- " epochs=NUM_EVALS,\n",
- " validation_data=evalds,\n",
- " callbacks=[TensorBoard(LOGDIR)],\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### High-level model evaluation"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Once we've run data through the model, we can call `.summary()` on the model to get a high-level summary of our network. We can also plot the training and evaluation curves for the metrics we computed above. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "model.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Running `.fit` returns a History object which collects all the events recorded during training. Similar to Tensorboard, we can plot the training and validation curves for the model loss and rmse by accessing these elements of the History object.\n",
- "\n",
- "Because we haven't done any feature engineering yet, the performance might not be impressive. That's something we'll address in the next notebook."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "RMSE_COLS = [\"root_mean_squared_error\", \"val_root_mean_squared_error\"]\n",
- "\n",
- "pd.DataFrame(history.history)[RMSE_COLS].plot()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "LOSS_COLS = [\"loss\", \"val_loss\"]\n",
- "\n",
- "pd.DataFrame(history.history)[LOSS_COLS].plot()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Making predictions with our model"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "To make predictions with our trained model, we can call the `predict` method (see [documentation](https://keras.io/api/models/model_training_apis/#predict-method)). \n",
- "\n",
- "For direct calls on the model object, as shown in the code cell below, we pass a NumPy array containing the input features. The `steps` parameter can be used if an iterator is passed, but for a direct NumPy array input, it's usually not needed for a small number of predictions.\n",
- "\n",
- "Note: When we later deploy this model to a Vertex AI Endpoint, the input format for prediction requests to the endpoint will typically be a JSON dictionary, which may differ from the direct `model.predict()` call here."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "prediction_input = np.array([[-73.982683, 40.742104, -73.983766, 40.755174]])\n",
- "model.predict(prediction_input)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Export our model"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "For others to use our trained model, especially in production environments, we need to save (or \"export\") it. Keras 3 offers a new, unified way to save models with `model.save('my_model.keras')`, which saves the architecture, weights, and optimizer state in a single file. (see the [Keras saving and serialization guide](https://keras.io/guides/serialization_and_saving/)).\n",
- "\n",
- "However, for deploying to specific platforms like Vertex AI using TensorFlow Serving containers, the TensorFlow SavedModel format is often recommended. In Keras 3, when using the TensorFlow backend, you can export to this format using `model.export(filepath)` as shown in the next cell. You can serialize keras models in this format even when you are using a different backend (JAX or PyTorch), but that may need a slightly different deployment configurations or infrastructure.\n",
- "\n",
- "After exporting to SavedModel format, we can inspect its signature using the `saved_model_cli` tool. This helps understand the expected input and output tensor names and shapes for serving."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "OUTPUT_DIR = \"./export\"\n",
- "shutil.rmtree(OUTPUT_DIR, ignore_errors=True)\n",
- "TIMESTAMP = datetime.datetime.now().strftime(\"%Y%m%d%H%M%S\")\n",
- "\n",
- "EXPORT_PATH = os.path.join(OUTPUT_DIR, TIMESTAMP)\n",
- "\n",
- "SAVEDMODEL_PATH = os.path.join(EXPORT_PATH, \"savedmodel\")\n",
- "KERAS_PATH = os.path.join(EXPORT_PATH, \"model.keras\")\n",
- "\n",
- "model.export(SAVEDMODEL_PATH)\n",
- "model.save(KERAS_PATH)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "If you want to load the model as a Keras model object, use `keras.models.load_model` and the `.keras` serialization format."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "loaded_model = keras.models.load_model(KERAS_PATH)\n",
- "loaded_model.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Let's inspect the saved_model we saved using the `saved_model cli`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": [
- "flake8-noqa-cell"
- ]
- },
- "outputs": [],
- "source": [
- "!saved_model_cli show \\\n",
- " --tag_set serve \\\n",
- " --signature_def serving_default \\\n",
- " --dir {SAVEDMODEL_PATH}\n",
- "\n",
- "!find {SAVEDMODEL_PATH}\n",
- "os.environ['SAVEDMODEL_PATH'] = SAVEDMODEL_PATH"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Deploy our model to Vertex AI Prediction"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Finally, we will deploy our trained model to Google Cloud's Vertex AI and see how we can make online predictions. \n",
- "\n",
- "First, we have to upload the model along with a serving container image. Vertex AI hosts pre-built Docker images for serving listed in [the documentation](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers).\n",
- "\n",
- "**Important Note:** The following steps for deploying to Vertex AI assume TensorFlow backend."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": [
- "flake8-noqa-line-1",
- "flake8-noqa-line-8-E501"
- ]
- },
- "outputs": [],
- "source": [
- "PROJECT = !gcloud config list --format 'value(core.project)' 2>/dev/null\n",
- "PROJECT = PROJECT[0]\n",
- "BUCKET = PROJECT\n",
- "REGION = \"us-central1\"\n",
- "MODEL_DISPLAYNAME = f\"taxifare-{TIMESTAMP}\"\n",
- "\n",
- "print(f\"MODEL_DISPLAYNAME: {MODEL_DISPLAYNAME}\")\n",
- "\n",
- "SERVING_CONTAINER_IMAGE_URI = (\n",
- " \"us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-15:latest\"\n",
- ")\n",
- "\n",
- "os.environ[\"BUCKET\"] = BUCKET\n",
- "os.environ[\"REGION\"] = REGION"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": [
- "flake8-noqa-cell"
- ]
- },
- "outputs": [],
- "source": [
- "%%bash\n",
- "# Create GCS bucket if it doesn't exist already...\n",
- "exists=$(gsutil ls -d | grep -w gs://${BUCKET}/)\n",
- "\n",
- "if [ -n \"$exists\" ]; then\n",
- " echo -e \"Bucket exists, let's not recreate it.\"\n",
- "else\n",
- " echo \"Creating a new GCS bucket.\"\n",
- " gsutil mb -l ${REGION} gs://${BUCKET}\n",
- " echo \"\\nHere are your current buckets:\"\n",
- " gsutil ls\n",
- "fi"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": [
- "flake8-noqa-cell"
- ]
- },
- "outputs": [],
- "source": [
- "!gsutil cp -R $SAVEDMODEL_PATH gs://$BUCKET/$MODEL_DISPLAYNAME"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Upload the Model\n",
- "\n",
- "The `aiplatform.Model.upload` method registers the model with Vertex AI Model Registry, creating a discoverable and deployable model resource."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "uploaded_model = aiplatform.Model.upload(\n",
- " display_name=MODEL_DISPLAYNAME,\n",
- " artifact_uri=f\"gs://{BUCKET}/{MODEL_DISPLAYNAME}\",\n",
- " serving_container_image_uri=SERVING_CONTAINER_IMAGE_URI,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create and Deploy to an Endpoint\n",
- "\n",
- "After uploading, `uploaded_model.deploy` creates an endpoint and deploys the model to it. An endpoint is a dedicated Vertex AI resource for serving predictions. Parameters include machine_type (machine resources) and accelerator_type/accelerator_count (for GPU acceleration).\n",
- "\n",
- "**The deployment takes around 10 minutes.**"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "MACHINE_TYPE = \"n1-standard-2\"\n",
- "\n",
- "endpoint = uploaded_model.deploy(\n",
- " machine_type=MACHINE_TYPE,\n",
- " accelerator_type=None,\n",
- " accelerator_count=None,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Once deployed, the model is accessible for online prediction requests. \n",
- "\n",
- "The key within this JSON object must match the input tensor's name in your model's serving signature. \n",
- "For instance, if your model's input layer is named `'input_layer'`, your JSON input would look like `{\"input_layer\": [...]}`, and the each data point needs to be shaped in (4,). This ensures the prediction service correctly maps your input data to the expected model input."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "instances = [\n",
- " {\"input_layer\": [-73.982683, 40.742104, -73.983766, 40.755174]},\n",
- " {\"input_layer\": [-73.976738, 40.751321, -73.986671, 40.748831]},\n",
- "]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "endpoint.predict(instances)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Cleanup\n",
- "\n",
- "When deploying a model to an endpoint for online prediction, the minimum `min-replica-count` is 1, and it is charged per node hour. So let's delete the endpoint to reduce unnecessary charges. Before we can delete the endpoint, we first undeploy all attached models... "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "endpoint.undeploy_all()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "...then delete the endpoint."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "endpoint.delete()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Copyright 2021 Google Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
- ]
- }
- ],
- "metadata": {
- "environment": {
- "kernel": "conda-base-py",
- "name": "workbench-notebooks.m132",
- "type": "gcloud",
- "uri": "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-notebooks:m132"
- },
- "kernelspec": {
- "display_name": "Python 3 (ipykernel) (Local)",
- "language": "python",
- "name": "conda-base-py"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.18"
- },
- "toc-autonumbering": false,
- "toc-showmarkdowntxt": false
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}
diff --git a/notebooks/kubeflow_pipelines/cicd/solutions/kfp-cli_vertex/Dockerfile b/notebooks/kubeflow_pipelines/cicd/solutions/kfp-cli_vertex/Dockerfile
deleted file mode 100644
index d122d8062..000000000
--- a/notebooks/kubeflow_pipelines/cicd/solutions/kfp-cli_vertex/Dockerfile
+++ /dev/null
@@ -1,3 +0,0 @@
-FROM gcr.io/deeplearning-platform-release/base-cpu
-RUN pip install kfp==2.4.0 google-cloud-aiplatform==1.43.0 fire
-ENTRYPOINT ["/bin/bash"]
diff --git a/requirements.txt b/requirements.txt
deleted file mode 100644
index 52e56393f..000000000
--- a/requirements.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-# Requirements for asl-ml-immersion repository
-
-# Google & Google Cloud
-google-genai==1.23.0
-google-adk==1.14.1
-google-api-core==2.25.1
-google-cloud-storage==2.19.0
-google-cloud-aiplatform==1.100.0
-google-cloud-bigquery==3.34.0
-cloudml-hypertune
-apache-beam[gcp]==2.65.0
-
-# Machine Learning Frameworks
-keras==3.12.0
-keras_hub==0.21.1
-tensorflow[and-cuda]==2.18.1
-tensorflow-datasets==4.9.9
-tensorflow-hub==0.16.1
-tf_keras==2.18.0
-jax==0.5.0
-
-# MLOps
-kubernetes==17.17.0
-kfp==2.4.0
-google-cloud-pipeline-components==2.8.0
-
-# Explainable AI
-saliency==0.2.1
-lit-nlp==1.3.1
-
-# Langchain dependencies
-langchain==0.3.14
-langsmith==0.1.129
-langgraph==0.2.61
-langchain-chroma==0.1.4
-chroma-hnswlib==0.7.3
-chromadb==0.4.14
-langchain-community==0.3.14
-langchain-core==0.3.47
-langchain-google-vertexai==2.0.15
-langchain-text-splitters==0.3.5
-
-# Utilities
-pyyaml==6.0.2
-pydantic==2.11.7
-pypdf==4.3.1
-faiss-cpu==1.7.4
-unstructured==0.14.4
-unstructured-client==0.22.0
-wikipedia==1.4.0
-fire==0.6.0
-litellm==1.72.6
-fastapi==0.115.13
-
-# For development work
-pre-commit
-pytest
diff --git a/scripts/setup_on_jupyterlab.sh b/scripts/setup_env.sh
similarity index 53%
rename from scripts/setup_on_jupyterlab.sh
rename to scripts/setup_env.sh
index 0ff17ae42..889f5a115 100755
--- a/scripts/setup_on_jupyterlab.sh
+++ b/scripts/setup_env.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2023 Google LLC. All Rights Reserved.
+# Copyright 2026 Google LLC. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,9 +13,40 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Configure variables
-echo 'export PATH=$PATH:~/.local/bin:' >> ~/.bash_profile
-echo 'export PATH=$PATH:~/.local/bin:' >> ~/.bashrc
+
+# Ask user for development environment preference
+echo "Which development environment would you like to set up?"
+echo "1) Vertex AI Workbench"
+echo "2) Cloud Workstations"
+echo "3) Setup both"
+echo "4) Skip (Setup environment manually)"
+read -p "Enter your choice (1, 2, 3 or 4): " DEV_ENV_CHOICE
+
+if [[ "$DEV_ENV_CHOICE" != "4" ]]; then
+ # Ask user for GPU preference
+ echo "Do you want to attach a GPU (T4) to the environment? (y/n)"
+ read -p "Enter your choice: " GPU_CHOICE
+
+ if [[ "$GPU_CHOICE" == "y" || "$GPU_CHOICE" == "Y" ]]; then
+ export ENABLE_GPU="true"
+ else
+ export ENABLE_GPU="false"
+ fi
+fi
+
+export PROJECT_ID=$(gcloud config get-value project)
+export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
+export BUCKET=$PROJECT_ID
+export MULTIREGION=us
+export REGION=us-central1
+export ARTIFACT_REG_REPO=asl-artifact-repo
+
+
+# Grant Storage Object Admin to Compute Engine service account
+gcloud projects add-iam-policy-binding $PROJECT_ID \
+ --member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
+ --role roles/storage.objectAdmin
+
# Enable Google Cloud services
gcloud services enable \
@@ -31,21 +62,19 @@ gcloud services enable \
cloudbuild.googleapis.com \
container.googleapis.com \
dataflow.googleapis.com \
- run.googleapis.com
+ run.googleapis.com \
+ telemetry.googleapis.com \
+ modelarmor.googleapis.com
-# Setup Artifact Registry
-export PROJECT_ID=$(gcloud config get-value project)
-export BUCKET=$PROJECT_ID
-export MULTIREGION=us
-export REGION=us-central1
-export ARTIFACT_REG_REPO=asl-artifact-repo
+# Setup Artifact Registry
if ! gcloud artifacts repositories describe $ARTIFACT_REG_REPO \
--location=$MULTIREGION > /dev/null 2>&1; then
gcloud artifacts repositories create $ARTIFACT_REG_REPO \
--project=$PROJECT_ID --location=$MULTIREGION --repository-format=docker
fi
+
# Create a GCS bucket
exists=$(gsutil ls -d | grep -w gs://${BUCKET}/)
if [ -n "$exists" ]; then
@@ -56,3 +85,15 @@ else
echo "Here are your current buckets:"
gsutil ls
fi
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+if [[ "$DEV_ENV_CHOICE" == "1" || "$DEV_ENV_CHOICE" == "3" ]]; then
+ echo "Running setup_workbench.sh..."
+ bash "${SCRIPT_DIR}/setup_workbench.sh"
+fi
+
+if [[ "$DEV_ENV_CHOICE" == "2" || "$DEV_ENV_CHOICE" == "3" ]]; then
+ echo "Running setup_workstations.sh..."
+ bash "${SCRIPT_DIR}/setup_workstations.sh"
+fi
diff --git a/scripts/setup_kernel.sh b/scripts/setup_kernel.sh
new file mode 100755
index 000000000..4b459dea9
--- /dev/null
+++ b/scripts/setup_kernel.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+set -e
+
+# USAGE: ./scripts/setup_kernel.sh