Required by #187.
The version we were using is old enough that it doesn't work with the
latest stackage LTS. haskellstack.org says
There is also a Ubuntu package for Ubuntu 16.10 and up, but the
distribution's Stack version lags behind, ...
So, instead of asking them to update it, it's probably better to
download the tar of the version we want.
Somehow updating stack surfaced a new pedantic warning in GradientTest,
so I've fixed that as well.
All of the non-s/1.3/1.7/ changes are because
* There are new tensorflow datatypes
* Some ops have looser types (e.g. fill now accepts both int64 and int32)
* There are more ops of type "func"
* Fix initialized variables for tensorflow 1.7
This is needed to support tensorflow 1.7. The trick of initializing a
variable with `Shape []` and then overriding the shape by assigning an
initial value no longer works. It seems that we need to explicitly flip
the unknown_rank bit in the shape proto.
I thought about switching opgen to use `Maybe Shape` when an op requires
a shape attribute, but that will cause a lot of api churn, so I chose to
hold off for now and just do a spot fix to unblock 1.7.
* Tested on linux without Docker.
* Couldn't get nix build to work, so I just updated the URL and hash.
* Did not test macos build.
The mnist change was necessary because the argmax output type is now polmorphic.
- Avoid using a deprecated Cabal function
- Use newer versions of proto-lens packages in stack.yaml
- Work around a new type-level warning that affects `OneOf/TensorTypes`.
proto-lens-0.2.2.0 generates Ord instances for all message types,
so we can remove the orphan instances we previously added.
Dependends on proto-lens-protoc-0.2.2.1 or newer due to google/proto-lens#113.
That package now includes everything in the `tensorflow/core:protos_all` target:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/BUILD#L131
I also made all of the modules exposed for simplicity. (As a particular
example: `MetaGraph`, which was previously in `other-modules`, is useful for
constructing some TensorFlow serving RPCs.)
* Use the new release of proto-lens-{protoc,protobuf-types}.
Also bump the version to 0.1.0.2.
Originally we had `extra-lib-dirs: /usr/local/lib` in `stack.yaml`.
I removed it because it wasn't necessary on my Mac. However,
it turns out that it is necessary for machines with the default installation
of XCode, which *doesn't* search that path by default.
(On my machine, it wasn't necessary because I had run `xcode-select --install`
which adds that path permanently to your search path. For more context, see
https://github.com/Homebrew/brew/issues/556.)
I'm adding the setting back to `tensorflow.cabal` as well as `stack.yaml` so
that the Hackage release also contains this fix. Changing `stack.yaml` is
still necessary in order to fix linkage in the `snappy` package (which
`tensorflow-records` depends on). Hopefully that will go away once we remove
the dependency (#118).
As far as I can tell they're not necessary anymore with the current OS X
script that calls `install_name_tool`. Both "stack test" and "stack ghci"
work without those settings.
Use the same trick as for `proto-lens-protoc`: hack the package description
during the `sdist` step to include the autogen directory in hs-source-dirs.
- Merge tensorflow-nn and tensorflow-queue into tensorflow-ops.
They don't add extra dependencies and each contain a single module, so I
don't think it's worth separating them at the package level.
- Remove google-shim in favor of direct use of test-framework.
- Add LICENSE files for all packages.
- Add descriptions for packages that were missing one.
- Work around google/proto-lens#69 by symlinking third_party into
tensorflow-proto.
* Switched to lts-8.13, added custom-setup.
Our packages no longer elicit complaints like this:
Package tensorflow-foo uses a custom Cabal build, but does not use a
custom-setup stanza.
* Removed some extra-deps and explicit-setup-deps
* Removed provisions for different versions of stack lts.
We are now solidly in the 8-only territory.
The number of iterations was reduced from 1000 to 300 during review, but that
turned out to be too low and the test now fails about 20% of the time.
After changing it back to 1000, the test succeeded at 50 out of 50 runs.
It would be better to avoid the copy when it's not necessary, but
that will require more involved changes to the internal API. (For example,
Fetchable might need to allow IO or ST actions.)