<jupyter_start><jupyter_text>Homework 3**Deadline:** Oct 31**Points Available:** 55 (+5)For this assignment, everyone will take the same image classification dataset, load it into Python, preprocess it, and tune a CNN written in Keras to classify it. Problems1. Download the Rock-Paper-Scissors image classification dataset (<NAME>oney, https://laurencemoroney.com/datasets.htmlrock-paper-scissors-dataset) and load it properly into Python. [10 points]2. Preprocess the data as needed using any libraries you prefer. [5 points]3. Train and tune a CNN in Keras to classify the dataset using appropriate dev splits. You should test a variety of hyperparameters, such as preprocessing, data augmentation, model architecture, regularization methods, and the learning algorithm. (**At least 10 training runs must be documented in the notebook.**)[30 points]4. Test the model once on the test set using the code block provided in the notebook. [5 points]5. Write a short summary of your conclusions. Outline what worked best for you, what didn't work, any take-aways from the assignment, and restate your test performance on the last line. [5 points]The students with the top 3 accuracies on the test set will earn **+5 points**. (To be eligible, you must follow proper procedures with the train/dev/test splits, test on the specified test set, and turn in the assignment **on time**.) Notes* Brute force is *not* feasible now due to computational costs. Make some informed decisions on how to proceed and **explain your reasoning** in your notebook. Include all the fruitful experiments you run along the way.* More importantly than the results, I want to see that you are **thinking well** and making good decisions. Good results will come from eventually if you **understand what you are doing.*** **Recommended**: use a smaller subset of the training set for your initial runs so it trains more quickly and then scale up when you results get better on this subset.* The section headings below should guide your approach. Add as many code or text blocks as you like in each section, excluding `Model Testing`, which should be run once without any editing of the code. SubmissionsSubmit only a notebook file in Canvas entitled `lastname_firstname_hw3_mth4320.ipynb` or `lastname_firstname_hw3_mth5320.ipynb` depending on which course you are taking.All code blocks must have been run before submitting, including the `Model Testing` code provided at the bottom.  Data LoadingLoad in the data to produce `X` and `Y` variables with the data and labels from `rps.zip`  Model Training and TuningTrain and tune a model to classify the dataset as best you can. Produce a `model` variable containing the model you wish to test below.  Loading the Test DataLoad the test data into variables `testX` and `testY` from `rps-test-set.zip`  Model Testing (DO NOT EDIT)Run this **once** on the test data after you finish tuning your model.<jupyter_code>from seaborn import heatmap
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix

import matplotlib.pyplot as plt

# predict the labels of the test set
predictedY = model.predict(testX)

# print quality metricsl
print('\nTesting Classification Report:\n\n', classification_report(testY, predictedY))

# predict the labels of the test set
predictedY = model.predict(testX)

print('\nTesting Confusion Matrix:\n')

heatmap(confusion_matrix(testY, predictedY))
plt.figure()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.062122519413287315, 'fraction_numerical': 0.009203336209375898, 'mean_word_length': 5.177619893428064, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '351840', 'license': 'MIT', 'n_tokens_mistral': 897, 'n_tokens_neox': 851, 'n_words': 489, 'path': 'Homework/Homework 3.ipynb', 'repo_name': 'grivasleal/Fall-2021-Neural-Networks', 'size': '3477'}