fkm3
f170df9d13
Support fetching storable vectors + use them in benchmark ( #50 )
...
In addition, you can now fetch TensorData directly. This might be useful in
scenarios where you feed the result of a computation back in, like RNN.
Before:
benchmarking feedFetch/4 byte
time 83.31 μs (81.88 μs .. 84.75 μs)
0.997 R² (0.994 R² .. 0.998 R²)
mean 87.32 μs (86.06 μs .. 88.83 μs)
std dev 4.580 μs (3.698 μs .. 5.567 μs)
variance introduced by outliers: 55% (severely inflated)
benchmarking feedFetch/4 KiB
time 114.9 μs (111.5 μs .. 118.2 μs)
0.996 R² (0.994 R² .. 0.998 R²)
mean 117.3 μs (116.2 μs .. 118.6 μs)
std dev 3.877 μs (3.058 μs .. 5.565 μs)
variance introduced by outliers: 31% (moderately inflated)
benchmarking feedFetch/4 MiB
time 109.0 ms (107.9 ms .. 110.7 ms)
1.000 R² (0.999 R² .. 1.000 R²)
mean 108.6 ms (108.2 ms .. 109.2 ms)
std dev 740.2 μs (353.2 μs .. 1.186 ms)
After:
benchmarking feedFetch/4 byte
time 82.92 μs (80.55 μs .. 85.24 μs)
0.996 R² (0.993 R² .. 0.998 R²)
mean 83.58 μs (82.34 μs .. 84.89 μs)
std dev 4.327 μs (3.664 μs .. 5.375 μs)
variance introduced by outliers: 54% (severely inflated)
benchmarking feedFetch/4 KiB
time 85.69 μs (83.81 μs .. 87.30 μs)
0.997 R² (0.996 R² .. 0.999 R²)
mean 86.99 μs (86.11 μs .. 88.15 μs)
std dev 3.608 μs (2.854 μs .. 5.273 μs)
variance introduced by outliers: 43% (moderately inflated)
benchmarking feedFetch/4 MiB
time 1.582 ms (1.509 ms .. 1.677 ms)
0.970 R² (0.936 R² .. 0.993 R²)
mean 1.645 ms (1.554 ms .. 1.981 ms)
std dev 490.6 μs (138.9 μs .. 1.067 ms)
variance introduced by outliers: 97% (severely inflated)
2016-12-14 18:53:06 -08:00
fkm3
91f508eb5c
Fix TensorData encode and decode for Bool ( #49 )
2016-12-12 19:40:32 -08:00
Judah Jacobson
1539783ee5
Update type constraints to work around a ghc-8 bug. ( #47 )
...
Also removes all the ghc-8-specific logic in the .cabal files.
ghc-8 has issues with deeply nested tuples of constraints. We can
work around it by:
- Changing TensorTypes to a regular class. This required FlexibleContexts.
(But we'll probably need it anyway when we support heterogeneous tensor
lists.)
- Specializing NoneOf for long type lists.
For more details, see: https://ghc.haskell.org/trac/ghc/ticket/12175 .
Also added 'directory' to tensorflow-core-ops' dependencies since it's used
in the Setup script.
One more step towards fixing #38 .
2016-11-28 21:15:09 -08:00
Judah Jacobson
5b4017e31b
Fix the build on ghc-8.0.1 ( #38 ). ( #40 )
...
Two issues:
- The definition of `\\` was missing parentheses. It was probably a bug
that this used to worked in ghc-7.10.
- Set `-fconstraint-solver-iterations=0` to work around
https://ghc.haskell.org/trac/ghc/ticket/12175 . It looks like we can
trigger that bug when defining a significantly complicated op. Specifically,
our type shenanigans ("OneOf") along with lens setters (for OpDef) seem
to confuse GHC.
Still TODO: automate testing of different ghc versions to prevent a regression.
2016-11-21 22:20:08 -08:00
Greg Steuck
2b5e41ffeb
Make code --pedantic ( #35 )
...
* Enforce pedantic build mode in CI.
* Our imports drifted really far from where they should be.
2016-11-18 10:42:02 -08:00
fkm3
fc3d398ca9
Optimize fetching ( #27 )
...
* Add MNIST data to gitignore
* Add simple tensor round-trip benchmark
* Use deepseq + cleaner imports
* Use safe version of fromIntegral in FFI code
* Don't copy data when fetching tensors
BEFORE
benchmarking feedFetch/4 byte
time 55.79 μs (54.88 μs .. 56.62 μs)
0.998 R² (0.997 R² .. 0.999 R²)
mean 55.61 μs (55.09 μs .. 56.11 μs)
std dev 1.828 μs (1.424 μs .. 2.518 μs)
variance introduced by outliers: 34% (moderately inflated)
benchmarking feedFetch/4 KiB
time 231.4 μs (221.9 μs .. 247.3 μs)
0.988 R² (0.974 R² .. 1.000 R²)
mean 226.6 μs (224.1 μs .. 236.2 μs)
std dev 13.45 μs (7.115 μs .. 27.14 μs)
variance introduced by outliers: 57% (severely inflated)
benchmarking feedFetch/4 MiB
time 485.8 ms (424.6 ms .. 526.7 ms)
0.998 R² (0.994 R² .. 1.000 R²)
mean 515.7 ms (512.5 ms .. 517.9 ms)
std dev 3.320 ms (0.0 s .. 3.822 ms)
variance introduced by outliers: 19% (moderately inflated)
AFTER
benchmarking feedFetch/4 byte
time 53.11 μs (52.12 μs .. 54.22 μs)
0.996 R² (0.995 R² .. 0.998 R²)
mean 54.64 μs (53.59 μs .. 56.18 μs)
std dev 4.249 μs (2.910 μs .. 6.076 μs)
variance introduced by outliers: 75% (severely inflated)
benchmarking feedFetch/4 KiB
time 83.83 μs (82.72 μs .. 84.92 μs)
0.999 R² (0.998 R² .. 0.999 R²)
mean 83.82 μs (83.20 μs .. 84.35 μs)
std dev 1.943 μs (1.557 μs .. 2.614 μs)
variance introduced by outliers: 20% (moderately inflated)
benchmarking feedFetch/4 MiB
time 95.54 ms (93.62 ms .. 97.82 ms)
0.999 R² (0.998 R² .. 1.000 R²)
mean 96.61 ms (95.76 ms .. 97.51 ms)
std dev 1.408 ms (1.005 ms .. 1.889 ms)
2016-11-17 10:41:49 -08:00
Greg Steuck
c430e54c3c
Uprev tensorflow. ( #33 )
...
* No longer need to hide ResourceHandle ops
* Blacklisted not supported TensorArrayV2
* Ownership of feed tensors changed (1f0c5119a0230c5160d45496175b9256f097e144)
2016-11-16 21:16:20 -08:00
Greg Steuck
93e27a12c6
Uprev tensorflow. ( #29 )
...
Includes temporary blacklisting for a couple of ops that will be
supported once my fix lands in the main tensorflow repo.
2016-11-14 17:04:44 -08:00
Greg Steuck
0d4f5a9628
Added sessionTracer to log graph operations. ( #26 )
...
* Added TracingTest.
2016-11-14 15:14:51 -08:00
fkm3
630850c2d2
Add TensorFlow.Core module to start formalizing the exposed API ( #17 )
...
* Add TensorFlow.Core module to start formalizing the exposed API
* Refer to ops packages instead of modules
2016-11-10 09:47:41 -08:00
Greg Steuck
8db944578a
Support ResourceHandle. ( #18 )
...
Exposed by moving to newer TF.
2016-11-08 16:48:41 -08:00
Judah Jacobson
cdd4a0a747
Compile on platforms where int64_t == long long. ( #6 )
...
In particular, this helps fix the build on Mac OS X.
2016-10-25 22:26:42 -07:00
Greg Steuck
67690d1499
Initial commit
2016-10-24 19:26:42 +00:00