File size: 6,510 Bytes
d4c7aae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
import numpy as np


def get_sample_payload(
    sample_payload,
    material_element,
    employee_element,
    capital_cost_element,
    material_cost_input,
    material_amount_input,
    employee_input,
    emp_dur_input,
    employee_dayamount_input,
    capital_cost_input,
    day_amount_input,
    capital_cost_dur_input,
    predicted_mc,
    predicted_ec,
    predicted_cc,
    bias,
    result_input,
    result,
    error,
    percent_loss,
    epoch_number,
    sample_number,
    model_weights,
):
    # Sample Payload for Debugging
    # Reshape weight to 2D
    # Material Weight
    i = epoch_number
    j = sample_number
    model_bias = bias

    material_element.check_type("material")
    material_elem_weight = material_element.get_weights()
    x, y, z = np.array(material_elem_weight).shape
    material_elem_weight = np.array(material_elem_weight).reshape(x, y)
    # Material Bias
    material_elem_bias = material_element.get_biases()
    x, y, z = np.array(material_elem_bias).shape
    material_elem_bias = np.array(material_elem_bias).reshape(x, y)
    employee_element.check_type("employee")
    # Employee Weight
    employee_elem_weight = employee_element.get_weights()
    x, y, z = np.array(employee_elem_weight).shape
    employee_elem_weight = np.array(employee_elem_weight).reshape(x, y)
    # Employee Bias
    employee_elem_bias = employee_element.get_biases()
    x, y, z = np.array(employee_elem_bias).shape
    employee_elem_bias = np.array(employee_elem_bias).reshape(x, y)
    # Capital Cost Weight
    capital_cost_element.check_type("capital")
    capital_elem_weight = capital_cost_element.get_weights()
    x, y, z = np.array(capital_elem_weight).shape
    capital_elem_weight = np.array(capital_elem_weight).reshape(x, y)
    # Capital Cost Bias
    capital_elem_bias = capital_cost_element.get_biases()
    x, y, z = np.array(capital_elem_bias).shape
    capital_elem_bias = np.array(capital_elem_bias).reshape(x, y)
    sample_payload.append(
        {
            "epoch": (i - 1),
            "sample": j,
            "material_cost": material_cost_input,
            "material_amount": material_amount_input,
            "material_weight": material_elem_weight,
            "material_bias": material_elem_bias,
            "employee_cost": employee_input,
            "employee_duration": emp_dur_input,
            "employee_dayamount": employee_dayamount_input,
            "employee_weight": employee_elem_weight,
            "employee_bias": employee_elem_bias,
            "capital_cost": capital_cost_input,
            "day_amount": day_amount_input,
            "capital_cost_duration": capital_cost_dur_input,
            "capital_cost_weight": capital_elem_weight,
            "capital_cost_bias": capital_elem_bias,
            "result": result_input,
            "result_predict": result,
        }
    )
    material_costs = material_cost_input.flatten()
    for idx, cost in enumerate(material_costs):
        sample_payload[-1][f"material_cost_{idx + 1}"] = cost
    material_amounts = material_amount_input.flatten()
    for idx, amount in enumerate(material_amounts):
        sample_payload[-1][f"material_amount_{idx + 1}"] = amount
    material_weights = material_elem_weight.flatten()
    for idx, weight in enumerate(material_weights):
        sample_payload[-1][f"material_weight_{idx + 1}"] = weight
    material_biases = material_elem_bias.flatten()
    for idx, bias in enumerate(material_biases):
        sample_payload[-1][f"material_bias_{idx + 1}"] = bias
    employee_costs = employee_input.flatten()
    for idx, cost in enumerate(employee_costs):
        sample_payload[-1][f"employee_cost_{idx + 1}"] = cost
    employee_durations = emp_dur_input.flatten()
    for idx, duration in enumerate(employee_durations):
        sample_payload[-1][f"employee_duration_{idx + 1}"] = duration
    employee_dayamounts = employee_dayamount_input.flatten()
    for idx, amount in enumerate(employee_dayamounts):
        sample_payload[-1][f"employee_dayamount_{idx + 1}"] = amount
    employee_weights = employee_elem_weight.flatten()
    for idx, weight in enumerate(employee_weights):
        sample_payload[-1][f"employee_weight_{idx + 1}"] = weight
    employee_biases = employee_elem_bias.flatten()
    for idx, bias in enumerate(employee_biases):
        sample_payload[-1][f"employee_bias_{idx + 1}"] = bias
    capital_costs = capital_cost_input.flatten()
    for idx, cost in enumerate(capital_costs):
        sample_payload[-1][f"capital_cost_{idx + 1}"] = cost
    day_amounts = day_amount_input.flatten()
    for idx, amount in enumerate(day_amounts):
        sample_payload[-1][f"day_amount_{idx + 1}"] = amount
    capital_cost_durations = capital_cost_dur_input.flatten()
    for idx, duration in enumerate(capital_cost_durations):
        sample_payload[-1][f"capital_cost_duration_{idx + 1}"] = duration
    capital_cost_weights = capital_elem_weight.flatten()
    for idx, weight in enumerate(capital_cost_weights):
        sample_payload[-1][f"capital_cost_weight_{idx + 1}"] = weight
    capital_cost_bias = capital_elem_bias.flatten()
    for idx, bias in enumerate(capital_cost_bias):
        sample_payload[-1][f"capital_cost_bias_{idx + 1}"] = bias
    predicted_mc_reshape = np.array(predicted_mc).flatten()
    for idx, res in enumerate(predicted_mc_reshape):
        sample_payload[-1]["total_material"] = res
    predicted_ec_reshape = np.array(predicted_ec).flatten()
    for idx, res in enumerate(predicted_ec_reshape):
        sample_payload[-1]["total_daily_employee"] = res
    predicted_cc_reshape = np.array(predicted_cc).flatten()
    for idx, res in enumerate(predicted_cc_reshape):
        sample_payload[-1]["total_capital_cost"] = res

    model_bias_reshape = np.array(model_bias).flatten()
    for idx, res in enumerate(model_bias_reshape):
        sample_payload[-1]["model_bias"] = res

    model_weights_reshape = np.array(model_weights).flatten()
    for idx, res in enumerate(model_weights_reshape):
        sample_payload[-1][f"model_weight_{idx + 1}"] = res
    result_reshape = np.array(result_input).flatten()
    for idx, res in enumerate(result_reshape):
        sample_payload[-1]["result"] = res
    result_predict_reshape = np.array(result).flatten()
    for idx, res in enumerate(result_predict_reshape):
        sample_payload[-1]["result_predict"] = res
    sample_payload[-1]["error"] = error
    sample_payload[-1]["error_percent"] = percent_loss

    return sample_payload