summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaron Kent-Dobias <jaron@kent-dobias.com>2025-02-10 19:04:48 -0300
committerJaron Kent-Dobias <jaron@kent-dobias.com>2025-02-10 19:04:48 -0300
commit8666acd6c33c3d408328d9f548175029fb1b5bd2 (patch)
tree12df52afd710e44cb25c0f8cdeb207893ca7c9ed
parent26fff09ab2cfd42aafcebd3b39d3c13265cc4faf (diff)
downloadictp-saifr_colloquium-8666acd6c33c3d408328d9f548175029fb1b5bd2.tar.gz
ictp-saifr_colloquium-8666acd6c33c3d408328d9f548175029fb1b5bd2.tar.bz2
ictp-saifr_colloquium-8666acd6c33c3d408328d9f548175029fb1b5bd2.zip
Modfied code to produce chain of examples
-rw-r--r--fits.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/fits.cpp b/fits.cpp
index 7ee9c64..9696e16 100644
--- a/fits.cpp
+++ b/fits.cpp
@@ -125,7 +125,6 @@ Data generateData(Real(*f)(Real), unsigned M, Real σ, Rng& r) {
}
int main(int argc, char* argv[]) {
- unsigned N = 10;
unsigned M = 10;
unsigned nBatches = 5;
Real σ = 0.2;
@@ -134,11 +133,8 @@ int main(int argc, char* argv[]) {
int opt;
- while ((opt = getopt(argc, argv, "N:M:s:S:B:i:")) != -1) {
+ while ((opt = getopt(argc, argv, "M:s:S:B:i:")) != -1) {
switch (opt) {
- case 'N':
- N = (unsigned)atof(optarg);
- break;
case 'M':
M = (unsigned)atof(optarg);
break;
@@ -170,17 +166,19 @@ int main(int argc, char* argv[]) {
}
std::cout << std::endl;
- Vector a₀ = Vector::Zero(N);
- for (Real& aa : a₀) {
- aa = r.variate<Real, std::normal_distribution>(0, iniVar);
- }
+ for (unsigned N = 1; N <= 2 * M; N++) {
+ Vector a₀ = Vector::Zero(N);
+ for (Real& aa : a₀) {
+ aa = r.variate<Real, std::normal_distribution>(0, iniVar);
+ }
- Vector a = stochasticGradientDescent(data, a₀, nBatches, maxSteps);
+ Vector a = stochasticGradientDescent(data, a₀, nBatches, maxSteps);
- for (unsigned i = 0; i < N; i++) {
- std::cout << a[i] << " ";
+ for (Real ai : a) {
+ std::cout << ai << " ";
+ }
+ std::cout << std::endl;
}
- std::cout << std::endl;
return 0;
}