{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"This notebook contains only some code snippets for opening TFRecord files in Python, as explained in my [blog post](https://medium.com/@daniele.erbi_27710/reading-tfrecord-files-in-python-e1eee9c43451). \n\n\nThe data is taken from the comeptition for beginners *Petals to the Metal - Flower classification on TPU*","metadata":{}},{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"!pip3 install tfrecord","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import tfrecord\n\n# Store the returned generator object into the variable 'loader'\nloader = tfrecord.tfrecord_loader(\"/kaggle/input/tpu-getting-started/tfrecords-jpeg-224x224/train/00-224x224-798.tfrec\", None, {\n    \"image\": \"byte\",\n    \"id\": \"byte\",\n    \"class\": \"int\"\n}) ","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import imageio.v3 as iio\nimport matplotlib.pyplot as plt\n\n# Get the first item from the generator\ndata = next(loader)\n\n# Print the item's class\nprint(data['class'])\n\n# Return the image as a Numpy array\nimg_arr = iio.imread(data['image'])\n\n# Print the image shape\nprint(img_arr.shape)\n\n# Visualize the image\nplt.imshow(img_arr)","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}