-
Notifications
You must be signed in to change notification settings - Fork 11
/
Figure3.ipynb
388 lines (388 loc) · 37.8 KB
/
Figure3.ipynb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab inline\n",
"%load_ext autoreload\n",
"%autoreload 2\n",
"\n",
"from jupyterthemes import jtplot\n",
"jtplot.style()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<module 'ClevelandMcGill' from '../EXP/ClevelandMcGill/__init__.pyc'>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import os, sys, time\n",
"import cPickle as pickle\n",
"sys.path.append('../EXP/')\n",
"import ClevelandMcGill as C\n",
"reload(C)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data [17.0, 39.0, 6.0, 28.0, 10.0]\n",
"Labels without Rolling [ 0.43589744 1. 0.15384616 0.71794873 0.25641027]\n",
"Labels [1.0, 0.15384616, 0.71794873, 0.25641027, 0.43589744]\n"
]
}
],
"source": [
"data, labels = C.Figure3.generate_datapoint()\n",
"print 'Data', data\n",
"print 'Labels without Rolling', np.roll(labels, np.where(data==np.max(data))[0])\n",
"print 'Labels', labels"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f7fc590be50>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7fcca89450>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"imshow(C.Figure3.data_to_barchart(data))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f7fc58b19d0>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7fc593a610>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"imshow(C.Figure3.data_to_piechart(data))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7f7fc54d6b90>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f7fc5637d50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"imshow(C.Figure3.data_to_piechart_aa(data), cmap='gray')"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Done 687.970980167\n"
]
}
],
"source": [
"#\n",
"# create many\n",
"#\n",
"\n",
"DATATYPE = eval('C.Figure3.data_to_piechart')\n",
"NOISE = True\n",
"\n",
"train_counter = 0\n",
"val_counter = 0\n",
"test_counter = 0\n",
"train_target = 60000\n",
"val_target = 20000\n",
"test_target = 20000\n",
"\n",
"train_labels = []\n",
"val_labels = []\n",
"test_labels = []\n",
"\n",
"\n",
"X_train = np.zeros((train_target, 100, 100), dtype=np.float32)\n",
"y_train = np.zeros((train_target, 5), dtype=np.float32)\n",
"\n",
"X_val = np.zeros((val_target, 100, 100), dtype=np.float32)\n",
"y_val = np.zeros((val_target, 5), dtype=np.float32)\n",
"\n",
"X_test = np.zeros((test_target, 100, 100), dtype=np.float32)\n",
"y_test = np.zeros((test_target, 5), dtype=np.float32)\n",
"\n",
"t0 = time.time()\n",
"\n",
"all_counter = 0\n",
"while train_counter < train_target or val_counter < val_target or test_counter < test_target:\n",
" \n",
" all_counter += 1\n",
" \n",
" data, label = C.Figure3.generate_datapoint()\n",
" \n",
" pot = np.random.choice(3)\n",
" \n",
" # sometimes we know which pot is right\n",
" if label in train_labels:\n",
" pot = 0\n",
" if label in val_labels:\n",
" pot = 1\n",
" if label in test_labels:\n",
" pot = 2\n",
" \n",
" if pot == 0 and train_counter < train_target:\n",
"\n",
" if label not in train_labels:\n",
" train_labels.append(label)\n",
" \n",
" #\n",
" image = DATATYPE(data)\n",
" image = image.astype(np.float32)\n",
" \n",
" # add noise?\n",
" if NOISE:\n",
" image += np.random.uniform(0, 0.05,(100,100))\n",
" \n",
" # safe to add to training\n",
" X_train[train_counter] = image\n",
" y_train[train_counter] = label\n",
" train_counter += 1\n",
" \n",
" elif pot == 1 and val_counter < val_target:\n",
"\n",
" if label not in val_labels:\n",
" val_labels.append(label)\n",
" \n",
" image = DATATYPE(data)\n",
" image = image.astype(np.float32)\n",
" \n",
" # add noise?\n",
" if NOISE:\n",
" image += np.random.uniform(0, 0.05,(100,100))\n",
" \n",
" # safe to add to training\n",
" X_val[val_counter] = image\n",
" y_val[val_counter] = label\n",
" val_counter += 1\n",
" \n",
" elif pot == 2 and test_counter < test_target:\n",
"\n",
" if label not in test_labels:\n",
" test_labels.append(label)\n",
" \n",
" image = DATATYPE(data)\n",
" image = image.astype(np.float32)\n",
" \n",
" # add noise?\n",
" if NOISE:\n",
" image += np.random.uniform(0, 0.05,(100,100))\n",
" \n",
" # safe to add to training\n",
" X_test[test_counter] = image\n",
" y_test[test_counter] = label\n",
" test_counter += 1\n",
" \n",
"print 'Done', time.time()-t0\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"162724"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_counter"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"11584"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(val_labels)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"60000"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_counter"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1.0, 0.92307693, 0.30769232, 0.1025641, 0.23076923]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"max(val_labels)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.14"
}
},
"nbformat": 4,
"nbformat_minor": 2
}