Commit Graph

194 Commits

Author SHA1 Message Date
fkm3 91f508eb5c Fix TensorData encode and decode for Bool (#49) 2016-12-12 19:40:32 -08:00
fkm3 cc08520dc7 Fix gradients calculation for min and max (#48) 2016-12-12 09:47:02 -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 71bdc6f744 Update haddocks. (#46) 2016-11-23 10:55:35 -08:00
Greg Steuck 455e5a83c9 Add stack resolver version switch (#38). (#45)
The script can now be run with, e.g.
`env STACK_RESOLVER=lts-7.3 ci_build/outer_launch_tests.sh`
and will use the specified version of the resolver.

We can't quite enable this for lts-7.3 as the code is not pedantically
clean. We will reconsider when 8.0.2 is available which removes
`-Wredundant-constraints` from `-Wall`.
2016-11-23 09:47:01 -08:00
Judah Jacobson 5fa1d2ba8f Update OS X instructions (#42) to not require a separate ".so" file. (#44)
The right approach is to run `install_name_tool` on the library after renaming
its extension from ".so" to ".dylib".
2016-11-22 16:15:34 -08:00
Judah Jacobson eb7e78d60d Add instructions to symlink ".so" to ".dylib" on OS X (#42). (#43)
I'm not sure why, but in some cases it seems linking only works if *both* the
.so and the .dylib are present in /usr/local/lib.  This may be due to a quirk
of how Bazel builds the library, and/or how ghc/stack load the library.
2016-11-22 08:34:59 -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
Judah Jacobson cec666e135 Fix Ref and Build semantics for generated code. (#37)
Also:
- Make TensorFlow.Ops.{variable,assign} be the Core generated versions.
- Make ops take "Shape" as mandatory input.
2016-11-21 10:19:15 -08:00
Judah Jacobson a277c7ddb3 Refactor OpGen. (#36)
Also fixes op lists when the same attribute specifies the length of
both an input and an output.  I added a test of "shapeN" which
previously failed with the following error:

    ERROR: Ran out of counts in toResult. Likely misuse of buildListOp.
2016-11-20 10:00:22 -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
Noon van der Silk 69fdbf677f test case to show can't calculate grad for embedding (and associated fix) (#23)
* Fix for embedding gradient calculation

- Passes vectors instead of scalars to slice
- converts the numRows to a scalar
- add `toScalar` utility function
- minor change to test case so that it actually works

* added lib for testing helper functions

* add flatSlice function
2016-11-17 13:54:36 -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 ea9ac9e37c Resolve #30 by using nightly. (#32)
Unfortunately bazel build is notably slower to run.
2016-11-15 16:42:52 -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 9e005e3af7 Merge pull request #22 from tensorflow/embedding-lookup-fix
Embedding lookup fix
2016-11-09 15:59:10 -08:00
Greg Steuck d9115c716f genericLength is too generic.
Avoid folding in TF.
2016-11-09 14:20:26 -08:00
Greg Steuck ec5c5228e1 Fixed #19 by adding previously missing reshape.
The comment did say that only flat shapes were supported though.
2016-11-09 11:54:53 -08:00
silky 9c81241439 Tests for "embedding_lookup" and minor fix
- added a test that fails for a partitioned embedding
- added a test that passes for a single embedding
2016-11-09 16:21:40 +11:00
Greg Steuck 4ec78a8fca Replaced topK with topKV2. (#21)
topK is obsolete and generating warnings.
2016-11-08 20:57:22 -08:00
Greg Steuck 8db944578a Support ResourceHandle. (#18)
Exposed by moving to newer TF.
2016-11-08 16:48:41 -08:00
Greg Steuck 29f11d351d Regen haddock. (#16) 2016-10-31 14:22:48 -07:00
Greg Steuck 4cf372995e Remove unnecessary submodule commands.
Jenkins is starting from a repository with submodules as is.
2016-10-31 09:25:12 -07:00
Greg Steuck 579bec26f0 Merge branch 'master' of https://github.com/tensorflow/haskell 2016-10-31 09:22:56 -07:00
Greg Steuck 9f2f4e2877 Fixed CI and added indicator. (#15)
* Sorted test names.

* Don't require a terminal to run tests.

Should resolve "the input device is not a TTY" problem with Jenkins.

* Added build indicator to README.md.

* Fixed up URL.
2016-10-28 18:08:32 -07:00
Greg Steuck d97bf0c4c7 Merge branch 'master' of https://github.com/tensorflow/haskell 2016-10-28 16:31:12 -07:00
Greg Steuck 28bfe005da Integration test (#14)
- Uses docker to put everything together.
- stack is running on "raw" system, similar to MacOS build.
2016-10-28 16:14:26 -07:00
Greg Steuck 0745e96469 Combined all RUN commands to have fewer layers. 2016-10-28 15:47:00 -07:00
Greg Steuck 9e219120d4 Forgotten to checkout submodules. 2016-10-28 15:07:15 -07:00
Greg Steuck 081902db3e Running ldconfig to make libtensorflow_c visible.
Added it to both ci_build and stack images. It wasn't necessary in the
former for some reason.
2016-10-28 14:27:51 -07:00
Greg Steuck d050ec2654 Semi-functional continuous integration test.
- Uses docker to put everything together.
- stack is running on "raw" system, similar to MacOS build.
- Still not finding libtensorflow_c.so in tensorflow-core-ops setup.
2016-10-27 18:59:33 -07:00
Noon van der Silk b2795d7518 Starting NN library (#11)
* Starting NN library

- Added "sigmoidCrossEntropyWithLogits"
- Ported across a single test
2016-10-27 18:05:27 -07:00
fkm3 03a3a6d086 Misc MNIST example cleanup (#9)
* Use native oneHot op in the example code. It didn't exist when this was originally written.
* Misc cleanup in MNIST example

- Use unspecified dimension for batch size in model. This simplifies the
  code for the test set.
- Move error rate calculation into model.
2016-10-26 11:14:38 -07:00
Judah Jacobson 54eddcc6bd Add instructions for building on Mac OS X. (#8)
* Add instructions for building on Mac OS X.
* Include /usr/local/lib directly in stack.yaml.
2016-10-26 11:13:42 -07:00
Judah Jacobson 95cfe1aefa Blacklist the SaveV2 and RestoreV2 ops which need Tensor lists. (#7) 2016-10-25 23:19:19 -07: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 ea8b62e47b Haddock (#3)
* Trivial script for regenerating haddocks: exclude .haddock files.

* Haddock regen
2016-10-25 12:43:06 -07:00
Greg Steuck db69e1d311 Trivial script for regenerating haddocks (#2) 2016-10-25 10:11:24 -07:00
Greg Steuck 11fe77df7a Update README.md
Close #4
2016-10-25 09:53:35 -07:00
Judah Jacobson d525ff7c9c Update docker image name and maintainer. (#1) 2016-10-24 19:19:26 -07:00
Greg Steuck 67690d1499 Initial commit 2016-10-24 19:26:42 +00:00