Skip to content

Instantly share code, notes, and snippets.

@cmastudios
Created December 1, 2021 07:10
Show Gist options
  • Save cmastudios/7f29b6714a0936b900a1a7cd37cdf3f9 to your computer and use it in GitHub Desktop.
Save cmastudios/7f29b6714a0936b900a1a7cd37cdf3f9 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import scipy.misc\n",
"import skimage.io\n",
"import os\n",
"import cv2\n",
"\n",
"path = r\"C:\\Users\\Connor\\Downloads\\eoinf96-7-segmentdigitgenerator-e16f11b642a7\\images\"\n",
"\n",
"video = skimage.io.imread_collection(os.path.join(path, '*.png'), conserve_memory=True, plugin=None)\n",
"\n",
"features = np.zeros((len(video), 28*28 + 1), dtype=np.uint8)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"labels = {f\"{i}\": i for i in range(10)}\n",
"\n",
"for i, filename in enumerate(video.files):\n",
" digit = os.path.basename(filename)[0]\n",
" label = labels[digit]\n",
" feature = video[i]\n",
" feature = cv2.resize(feature, (28, 28))\n",
" features[i, :-1] = feature.flatten()\n",
" features[i, -1] = label"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"np.random.shuffle(features)\n",
"np.save(\"sevensegdataset\", features)\n",
"\n",
"## Want to do some future work?\n",
"## Download my dataset from https://www.reddit.com/r/MachineLearning/comments/j10ub1/p_like_mnist_but_for_7segment_displays/"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x19ec2940520>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.imshow(features[696, :-1].reshape((28, 28)))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"from sklearn.ensemble import RandomForestClassifier\n",
"X = features[:, :-1]\n",
"Y = features[:, -1]\n",
"clf = RandomForestClassifier(n_estimators=10)\n",
"clf = clf.fit(X, Y)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clf.score(X, Y)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"['estimator.joblib']"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from joblib import dump, load\n",
"dump(clf, 'estimator.joblib')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment