Github user kaknikhil commented on a diff in the pull request: https://github.com/apache/madlib/pull/243#discussion_r175921215 --- Diff: src/ports/postgres/modules/convex/mlp_igd.py_in --- @@ -222,67 +243,83 @@ def mlp(schema_madlib, source_table, output_table, independent_varname, it_args.update({ 'group_by_clause': group_by_clause, 'using_clause': using_clause, - 'grouping_str_comma': grouping_str_comma + 'grouping_str_comma': grouping_str_comma, }) first_try = True temp_output_table = unique_string(desp='temp_output_table') + + layer_sizes = [num_input_nodes] + hidden_layer_sizes + [num_output_nodes] + for _ in range(n_tries): + prev_state = None if not warm_start: coeff = [] - for i in range(len(layer_sizes) - 1): - fan_in = layer_sizes[i] - fan_out = layer_sizes[i + 1] + for fan_in, fan_out in zip(layer_sizes, layer_sizes[1:]): # Initalize according to Glorot and Bengio (2010) # See design doc for more info span = math.sqrt(6.0 / (fan_in + fan_out)) - dim = (layer_sizes[i] + 1) * layer_sizes[i + 1] - rand = plpy.execute("""SELECT array_agg({span}*2*(random()-0.5)) - AS random - FROM generate_series(0,{dim}) - """.format(span=span, dim=dim))[0]["random"] + dim = (fan_in + 1) * fan_out + rand = [span * (random() - 0.5) for _ in range(dim)] --- End diff -- why are we subtracting 0.5 from `random()` ?
---