algorithm = lbfgs (Default)
lbfgs
init_alpha = 0.001 (Default)
tol_obj = 9.9999999999999998e-13 (Default)
tol_rel_obj = 10000 (Default)
tol_grad = 1e-08 (Default)
Where the meaning of init_alpha is unambiguous because it's nested in lbfgs but another algorithm might have an init_alpha with a completely different meaning. It also makes the config output order-independent since you don't have to search for the algorithm:bfgs key-value pair before you know what init_alpha:0.001 key-value pair means.
We'll have another go at this when it's code rather than spec but if you have any fundamental objections I'd appreciate hearing them now. (or suggestions).
Krzysztof
Sounds good to me.
> One goal is just recordkeeping to record how a sample
> was gathered. For that, human readability is a big help.
I'm thinking there should be a function for dumping human-readable
output that we do not ever expect to parse again as well as
machine-readable output.
> Another goal is to be able to restart. To restart,
> each interface will need to read at least some of the
> information back in. For that, we need parsers in each
> language.
Yeah, I wasn't worried about exact format yet b/c we could
rely on something that's broadly used like JSON/protobuf/etc...
> If the readers for nested structures are manageable,
I don't even know how to answer that question without just
implementing it in C++ and seeing what API I can produce
for interfaces...
K
I agree about the advantages of human-redable formats. The one
issue I have with it is that we need to record some values faithfully to
make restarts possible.
>
> >> Another goal is to be able to restart. To restart,
> >> each interface will need to read at least some of the
> >> information back in. For that, we need parsers in each
> >> language.
> >
> > Yeah, I wasn't worried about exact format yet b/c we could
> > rely on something that's broadly used like JSON/protobuf/etc...
> >
> >> If the readers for nested structures are manageable,
> >
> > I don't even know how to answer that question without just
> > implementing it in C++ and seeing what API I can produce
> > for interfaces...
>
> That's the Catch-22 of designing computer programs.
Yeah, I'll go for a round of implementation
and then see what things look like.
Krzysztof
>
> - Bob
I'm behind JSON as a human-readable format but it (or any other human-redable format)
can't be the only storage format since it precludes accurate restarts.
>
> A
Fault-tolerant gets used to refer to so many things I don't know
what you mean here. K
I see, I meant that you can't represent floating point numbers accurately so you can't use saved values to restart the sampler in exactly the part of parameter space with exactly the same sampler parameters unless you save a binary version.
It's been released for [Python](https://github.com/wesm/feather/tree/master/python) on [CRAN for R](https://cran.r-project.org/web/packages/feather/index.html), so its probably beyond beta now, although there are bugs (such as reading files >2GB).
Avi