forked from shawntan/rnn-experiment
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnumpy_hinton.py
35 lines (30 loc) · 852 Bytes
/
numpy_hinton.py
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
# coding=utf-8
import numpy as np
chars = [ " ","▁","▂","▃","▄","▅","▆","▇" ,"█" ]
class BarHack(str):
def __str__(self):
return self.internal
def __len__(self):
return 1
#bh = BarHack()
def print_arr(arr,max_arr=None):
if max_arr == None: max_arr = arr
max_val = max(abs(np.max(max_arr)),abs(np.min(max_arr)))
print np.array2string(arr,
formatter={'float_kind': lambda x: visual(x,max_val)},
max_line_width = 5000
)
def visual(val,max_val):
if abs(val) == max_val:
step = len(chars)-1
else:
step = int(abs(float(val)/max_val)*len(chars))
colourstart = ""
colourend = ""
if val < 0: colourstart,colourend = '\033[90m','\033[0m'
#bh.internal = colourstart + chars[step] + colourend
return colourstart + chars[step] + colourend
if __name__ == "__main__":
a = np.random.randn(10,10)
print a
print_arr(a)