Skip to content

Commit

Permalink
[tensor/pprint] Hacky idea to elide 1s in shape for nicer printing (#4)
Browse files Browse the repository at this point in the history
Used to print this:

```
> (tech.v3.tensor/ensure-tensor i)
#tech.v3.tensor<uint8>[28 28 1]
[[[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 20]
  [214]
  [112]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [102]
  [253]
  [192]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [102]
  [255]
  [253]
  [123]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [183]
  [253]
  [252]
  [203]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [203]
  [255]
  [253]
  [102]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [203]
  [253]
  [252]
  [ 20]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 31]
  [233]
  [254]
  [192]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 51]
  [252]
  [253]
  [151]
  [  0]
  [ 81]
  [203]
  [203]
  [203]
  [203]
  [183]
  [ 60]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 72]
  [253]
  [254]
  [253]
  [254]
  [253]
  [254]
  [253]
  [254]
  [253]
  [254]
  [253]
  [131]
  [  9]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [152]
  [252]
  [253]
  [252]
  [253]
  [252]
  [253]
  [252]
  [253]
  [252]
  [253]
  [252]
  [253]
  [172]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 92]
  [253]
  [254]
  [253]
  [254]
  [172]
  [ 40]
  [  0]
  [  0]
  [  0]
  [ 62]
  [162]
  [254]
  [253]
  [ 62]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 51]
  [252]
  [253]
  [252]
  [213]
  [  9]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 20]
  [253]
  [252]
  [142]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 52]
  [253]
  [254]
  [253]
  [203]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 11]
  [ 51]
  [254]
  [253]
  [234]
  [ 30]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  9]
  [211]
  [253]
  [252]
  [203]
  [  0]
  [  0]
  [  0]
  [ 20]
  [102]
  [213]
  [252]
  [253]
  [252]
  [253]
  [ 49]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [183]
  [254]
  [253]
  [254]
  [253]
  [254]
  [253]
  [254]
  [253]
  [254]
  [253]
  [254]
  [253]
  [224]
  [ 81]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 60]
  [253]
  [252]
  [253]
  [252]
  [253]
  [252]
  [253]
  [252]
  [253]
  [252]
  [253]
  [252]
  [102]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [193]
  [253]
  [255]
  [253]
  [255]
  [253]
  [255]
  [253]
  [255]
  [253]
  [243]
  [162]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 92]
  [232]
  [253]
  [252]
  [253]
  [252]
  [253]
  [252]
  [253]
  [252]
  [ 81]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [ 40]
  [214]
  [253]
  [255]
  [253]
  [224]
  [203]
  [ 81]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  9]
  [131]
  [172]
  [130]
  [ 60]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]
 [[  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]
  [  0]]]
```

With this hack, prints this:

```
> (tech.v3.tensor/ensure-tensor i)
#tech.v3.tensor<uint8>[28 28 1]
[[0 0 0 0 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0  20 214 112   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0 102 253 192   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0 102 255 253 123   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0 183 253 252 203   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0 203 255 253 102   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0 203 253 252  20   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0  31 233 254 192   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0  51 252 253 151   0  81 203 203 203 203 183  60   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0  72 253 254 253 254 253 254 253 254 253 254 253 131   9   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0 152 252 253 252 253 252 253 252 253 252 253 252 253 172   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0  92 253 254 253 254 172  40   0   0   0  62 162 254 253  62  0 0 0 0 0]
 [0 0 0 0 0 0 0 0  51 252 253 252 213   9   0   0   0   0   0  20 253 252 142  0 0 0 0 0]
 [0 0 0 0 0 0 0 0  52 253 254 253 203   0   0   0   0   0  11  51 254 253 234 30 0 0 0 0]
 [0 0 0 0 0 0 0 0   9 211 253 252 203   0   0   0  20 102 213 252 253 252 253 49 0 0 0 0]
 [0 0 0 0 0 0 0 0   0 183 254 253 254 253 254 253 254 253 254 253 254 253 224 81 0 0 0 0]
 [0 0 0 0 0 0 0 0   0  60 253 252 253 252 253 252 253 252 253 252 253 252 102  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0 193 253 255 253 255 253 255 253 255 253 243 162   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0  92 232 253 252 253 252 253 252 253 252  81   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0   0  40 214 253 255 253 224 203  81   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0   0   0   9 131 172 130  60   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]
 [0 0 0 0 0 0 0 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  0 0 0 0 0]]
```
  • Loading branch information
harold committed Nov 22, 2020
1 parent b483b15 commit 5fd9db5
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/tech/v3/tensor/pprint.clj
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,10 @@
;;We scan the shape to see if we are over an element-count threashold.
;;If we are, then we reshape the tensor keeping track of which
;;dimensions got reshaped and thus need an elipsis.
item-shape (dtype-base/shape tens)
item-shape (->> (dtype-base/shape tens)
(remove #{1})
(vec))
tens (dtype-base/reshape tens item-shape)
elipsis-vec (shape->elipsis-vec item-shape)
tens (->> (map (fn [dim elipsis?]
(if elipsis?
Expand Down

0 comments on commit 5fd9db5

Please sign in to comment.