{"issue":{"state":"open","pull_request":{"diff_url":null,"html_url":null,"patch_url":null},"user":{"avatar_url":"https://secure.gravatar.com/avatar/20530d56ec82d34d7b835eb688de3bf0?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"20530d56ec82d34d7b835eb688de3bf0","url":"https://api.github.com/users/goffer-looney","login":"goffer-looney","id":864322},"milestone":{"state":"open","open_issues":8,"url":"https://api.github.com/repos/encog/encog-java-core/milestones/1","due_on":"2011-10-31T07:00:00Z","number":1,"creator":{"avatar_url":"https://secure.gravatar.com/avatar/3f20a29175af5676147d00c7c65b6aa9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3f20a29175af5676147d00c7c65b6aa9","url":"https://api.github.com/users/jeffheaton","login":"jeffheaton","id":462761},"title":"Encog v3.1","description":"","closed_issues":3,"created_at":"2011-07-18T15:09:10Z"},"labels":[],"updated_at":"2011-11-06T05:18:15Z","assignee":{"avatar_url":"https://secure.gravatar.com/avatar/3f20a29175af5676147d00c7c65b6aa9?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"3f20a29175af5676147d00c7c65b6aa9","url":"https://api.github.com/users/jeffheaton","login":"jeffheaton","id":462761},"comments":3,"closed_at":null,"url":"https://api.github.com/repos/encog/encog-java-core/issues/2","body":"This is a feature request.\r\n\r\nIt would be helpful to expose the parameters of the training algorithms with setters and getters.\r\n\r\nTake RProp for instance (TrainFlatNetworkResilient). Some of the parameters can be set via a call to the constructor. But after that there is no way to get their value. And since those parameters are also declared as private, there is no way for a new subclass to change the behaviour of the training algorithm.\r\n\r\nOther parameters like RPROPConst.POSITIVE_ETA and RPROPConst.NEGATIVE_ETA are constants. When doing research, it is often important to run many trials with a range of possible values for the heuristics in order to find the best combination. In this case it is only possible to do it by changing the value of the constants in Encog's source file.\r\n\r\nGoing a step further, it would be even better in a future release to expose those parameters more dynamically. By that I mean a standard interface for obtaining the list of the parameters, their name, description, value and possible range. This would be allow a UI to work more dynamically with the algorithms. It would also allow to log information about a training algorithm and its exact settings to a file so an experiment could be properly documented and reproduced.\r\n","html_url":"https://github.com/encog/encog-java-core/issues/2","number":2,"title":"Exposing parameters of the training algorithms","id":1233160,"created_at":"2011-07-15T22:58:49Z"},"action":"created","comment":{"user":{"avatar_url":"https://secure.gravatar.com/avatar/6fd171430d7b32e8e296228e3e5a64f8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"6fd171430d7b32e8e296228e3e5a64f8","url":"https://api.github.com/users/nicholas-jordan","login":"nicholas-jordan","id":1149743},"updated_at":"2011-11-06T05:18:15Z","url":"https://api.github.com/repos/encog/encog-java-core/issues/comments/2644025","body":"I gave a lot of thought to the get/set paradigm \"a while back\" and realized the power of what professionals call a \"static factory method\" ~ it was needful to do a boolean on the call to eliminate ambiguity that derives from get / set \"call pair\" - if we do not \"trap\" it at a functional level what we end up with is what I have come to call \"an intrusion portal\" ( aka failure zone ) \r\n\r\nhaving been in the shop where things run it became apparent to me the way to implement the sort of interface being discussed here is:\r\n\r\n// psuedo-code\r\nfinal static synchronized Object < type > access ( boolean getSet ,..... \r\n\r\nthen write the code returning non-null or throwing on the overall design - forcing the use of boolean determinant results in evaporation of code-bloat \r\n\r\n","id":2644025,"created_at":"2011-11-06T05:18:15Z"}}