Tags: mattn/gorgonia
Tags
init of the encoding/dot package (gorgonia#309) * feat: dot representation of a graph as an external package * feat(encoding): a grouper is an object that can hold several groups * feat: first round of a an encoding package * chore: the encoding package is now internal * fix: withGroup is unexported (by now). the function is using an internal package. It is useless to export it by now. This may change when the encoding package is stable enough * fix(groups): a node is assumed to be in the ExprGraph group * fix(groups): node is a Grouper; subgraphs are generated * chore: all the nodes generated in the Conv2d are part of a group * feat(subgraphs): first attempt to group nodes of the same operator * fix: escape the html name and substitute the curly braces * feat: generate the subgraph in a coral color * wip: a bunch of improvements * chore: add the grouping oprations for maxpool and rectify * chore: prepare the inceptions of graph by adding a "IsPrimary" flag
V0.9.0 working 2 (gorgonia#227) * Added Issue 217 to known issues Renamed the ConstDeriv test to 182 * Added Reset() to BatchNormOp to conform to the same interface as the native version woul * Clean up, and plugged some leaks * Fixed a slight issue with the compilation. DoWork() is emitted before a linalg op now * [fix] The test for Reshape Operator was incorrect * Temporarily commented away the tests for gorgonia#217 * Added error message for VM Genera * Added go1.11 to travis Fixed CUDA Conv backprop shape error * [fix] Using NewOrderedNodes as an implementation of gonum.Nodes * Fixed the tests to use the new gonum interface * Fixed an error in the error.warpf call * [fix] Back to the idea that graph options should not be exported * [fix] More idiomatic way to handle error msg * Merged from v0.9.2-working2 * New stuff? I don't know when I did this * Fixes gorgonia#257 I think * Renamed examples/stacked autoencoder to examples/stacked_autoencoder * Added tests. Added better error support for LISPMachine. Removed sanity check for now because there are some weird things wrt dimensions in dual values * Updated with 237fix There seems to be a problem with the concurrent training example, so it has been commented out for now The `sanity()` method of the dual values have been temporarily suspended. Turns out lispMachines don't play well when there are differently shaped (but legal) derivations.
V0.9.0 (gorgonia#195) Ongoing notes: * **CUDA**: Better CUDA support (IN PROGRESS) * ~ColMajor used by default if engine is CUDA.~ (ColMajor is supported, but defaults to using RowMajor for all the major cuBLAS versions. Careful reasoning of the parameters obviates the need for ColMajor by default, which causes more headaches. It is still supported) * Transposition will be automatically done when performing transports back to CPU. * cudnn operations supported (IN PROGRESS) (note: these are the ones I use more often hence gets bigger attention): * [x] Conv2d * [x] Dropout * [x] Maxpool2d * [x] BatchNorm * [x] Rectify * Other CUDA related optimizations * [x] full cuBLAS support * **New Ops**: * BatchNorm * InvSqrt * CUDA enabled ops in `ops/nn` (preview for how things will start to look in v0.10.0) * **New Features**: * Limited shape inference. Working towards a calculus for shapes (first raised in gorgonia#96 and gorgonia#97). * **Optimizations**: * Optimizations of basic ops to use engine functions if available, otherwise, fall back to using `Apply`, which adds a penalty from repeatedly calling functions. * Faster VMs (1 of 2 VMs): ~greedy goroutines grabs gigs from a priority queue. This causes faster execution of code in general.~ (this is moved to a future version of 0.9.xx): ``` benchmark old ns/op new ns/op delta BenchmarkTapeMachineExecution-8 3129074510 2695304022 -13.86% benchmark old allocs new allocs delta BenchmarkTapeMachineExecution-8 25745 25122 -2.42% benchmark old bytes new bytes delta BenchmarkTapeMachineExecution-8 4804578705 4803784111 -0.02% ```` * **Code generation**: some exported API is now auto generated * **New Solver** : @ynqa added the Momentum solver. * **Breaking API**: `Solver` now take a slice of `ValueGrad` instead of `Nodes`. `ValueGrad` is an interface, of which a `*Node` fulfils. An additional utility function `NodesToValueGrads` has been added to aid with refactoring. This was done for two reasons: * ~The support for BatchNorm operation, which is a verily impure and highly stateful function. The BatchNorm Op has internal states that need to have their gradients updated as well. But the internal state of BatchNorm isn't really part of the expression graph, and really it shouldn't be.~ Turns out there was a better API for `BatchNorm`. * In the next version, v0.10.0. We aim to do [better package organization](gorgonia#91) for managability. With this API breaking change, the solver now is less dependent on the other parts of Gorgonia and can be easily separated. * **Breaking Semantics**: A `gorgonia.VM` now implements `io.Closer`. It should be treated as a resource as well as a computation device - the VM must be `Close()`d in order for the resources acquired by the VM to actually be released. Turns out, automatic resource management is too difficult. Who'd thunk that?
Merge pull request gorgonia#202 from trigun117/master Сorrected typos, fixed ineffassign, gofmt, go_vet
Merge pull request gorgonia#200 from gorgonia/variousbugfixes Fixed a tiny bug in UnbindNonInputs.
Merge pull request gorgonia#192 from siquus/newSolversAndTests New Barzilai-Borwein solver and solver tests
Merge pull request gorgonia#190 from gorgonia/189fix Updated convnet example
Merge pull request gorgonia#179 from bradleyjkemp/patch-1 Fix table formatting
PreviousNext