Skip to content

Instantly share code, notes, and snippets.

@marii-moe
Created September 18, 2020 08:00
Show Gist options
  • Save marii-moe/cabef934c0541548feec12d3d6d02b6c to your computer and use it in GitHub Desktop.
Save marii-moe/cabef934c0541548feec12d3d6d02b6c to your computer and use it in GitHub Desktop.
tutor/Untitled2.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from fastai.vision.all import *\nfrom pandas import Series as PSeries",
"execution_count": 12,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "def get_items(path):\n tmp_train = pd.read_csv(f'{path}/train.csv')\n tmp_train = tmp_train.iloc[:, 3:] # from column 3 ~ end\n train_x = tmp_train.to_numpy().reshape(-1,28,28)\n train_x = tensor(train_x).float()/255\n return train_x"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@ToTensor\ndef encodes(self, row:PSeries): \n f=lambda idx:train.iloc[idx,1:]\n return TensorImage(row.to_numpy().reshape(-1,28,28))",
"execution_count": 13,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "path=Path('/root/.fastai/data/mnist_text')",
"execution_count": 14,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "train = pd.read_csv(f'{path}/train.csv')",
"execution_count": 15,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "get_y=lambda idx: train['label'][idx]",
"execution_count": 16,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "db = DataBlock(blocks=(ImageBlock, CategoryBlock),\n get_items=lambda x: range(42000),\n get_x=lambda idx:train.iloc[idx,1:].to_numpy().reshape(28,28).astype(np.uint8),\n splitter=RandomSplitter(seed=42),\n get_y=get_y, # label is on the 2nd column\n )",
"execution_count": 18,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "dls=db.dataloaders(path)",
"execution_count": 20,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "dls.show_batch()",
"execution_count": 21,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 648x648 with 9 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.7.7",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"gist": {
"id": "",
"data": {
"description": "tutor/Untitled2.ipynb",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment