Machine Learning Kurs im Rahmen der Studierendentage im SS 2023
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

197 lines
5.1 KiB

{
"cells": [
{
"cell_type": "markdown",
"id": "2eaba66b",
"metadata": {},
"source": [
"Read and Display Horse or Human machine learning dataset"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f1e48ac0",
"metadata": {},
"outputs": [],
"source": [
"import tensorflow as tf\n",
"import numpy as np\n",
"import tensorflow_datasets as tfds\n",
"from tensorflow.keras import regularizers\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "feda024e",
"metadata": {},
"outputs": [],
"source": [
"# Load the horse or human dataset\n",
"#(300, 300, 3) unint8\n",
"dataset, label = tfds.load('horses_or_humans', with_info=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "35991dec",
"metadata": {},
"outputs": [],
"source": [
"# Extract the horse/human class\n",
"horse_ds = dataset['train'].filter(lambda x: x['label'] == 0)\n",
"human_ds = dataset['train'].filter(lambda x: x['label'] == 1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fab03aa8",
"metadata": {},
"outputs": [],
"source": [
"# Take a few examples < 16\n",
"n_examples = 5\n",
"horse_examples = horse_ds.take(n_examples)\n",
"human_examples = human_ds.take(n_examples)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c33f1acd",
"metadata": {},
"outputs": [],
"source": [
"# Display the examples\n",
"fig, axes = plt.subplots(1, n_examples, figsize=(15, 15))\n",
"for i, example in enumerate(human_examples):\n",
" image = example['image']\n",
" axes[i].imshow(image)\n",
" axes[i].set_title(f\"humans {i+1}\")\n",
"plt.show()\n",
"\n",
"fig, axes = plt.subplots(1, n_examples, figsize=(15, 15))\n",
"for i, example in enumerate(horse_examples):\n",
" image = example['image']\n",
" axes[i].imshow(image)\n",
" axes[i].set_title(f\"horses {i+1}\")\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "25f3eeb3",
"metadata": {},
"outputs": [],
"source": [
"# Split the dataset into training and validation sets\n",
"# as_supervised: Specifies whether to return the dataset as a tuple\n",
"# of (input, label) pairs.\n",
"train_dataset, valid_dataset = tfds.load('horses_or_humans', split=['train','test'], as_supervised=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "29dc0e62",
"metadata": {},
"outputs": [],
"source": [
"# Get the number of elements in the training and validation dataset\n",
"train_size = tf.data.experimental.cardinality(train_dataset).numpy()\n",
"valid_size = tf.data.experimental.cardinality(valid_dataset).numpy()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "db8aaf91",
"metadata": {},
"outputs": [],
"source": [
"IMG_SIZE = 300\n",
"NUM_CLASSES = 2\n",
"\n",
"def preprocess(image, label):\n",
" image = tf.cast(image, tf.float32)\n",
"# # Resize the images to a fixed size\n",
" image = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))\n",
"# # Rescale the pixel values to be between 0 and 1\n",
" image = image / 255.0\n",
" label = tf.one_hot(label, NUM_CLASSES)\n",
" return image, label"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d59661c3",
"metadata": {},
"outputs": [],
"source": [
"# Apply the preprocessing function to the datasets\n",
"train_dataset = train_dataset.map(preprocess)\n",
"valid_dataset = valid_dataset.map(preprocess)\n",
"\n",
"# Batch and shuffle the datasets\n",
"train_dataset = train_dataset.shuffle(2000).batch(80)\n",
"valid_dataset = valid_dataset.batch(20)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9399bc99",
"metadata": {},
"outputs": [],
"source": [
"# Get the number of elements in the trainingand validation dataset\n",
"train_size = tf.data.experimental.cardinality(train_dataset).numpy()\n",
"valid_size = tf.data.experimental.cardinality(valid_dataset).numpy()\n",
"print(\"Training dataset size:\", train_size)\n",
"print(\"Validation dataset size:\", valid_size)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "13af7d53",
"metadata": {},
"outputs": [],
"source": [
"# Store images and labels of the validation data for predictions\n",
"for images, labels in valid_dataset:\n",
" x_val = images\n",
" y_val = labels\n",
" \n",
"print(x_val.shape, y_val.shape)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.16"
}
},
"nbformat": 4,
"nbformat_minor": 5
}