antitheft159 commited on
Commit
d8e3664
·
verified ·
1 Parent(s): c2b8146

Upload magnet_2_0.py

Browse files
Files changed (1) hide show
  1. magnet_2_0.py +947 -0
magnet_2_0.py ADDED
@@ -0,0 +1,947 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ """MagNet 2.0
3
+
4
+ Automatically generated by Colab.
5
+
6
+ Original file is located at
7
+ https://colab.research.google.com/drive/1n4ADxn-u0nAkYm6mKMzzhiH1vl97qImr
8
+ """
9
+
10
+ import torch
11
+ import torch.nn as nn
12
+ import torch.optim as optim
13
+
14
+ # Simulate wealth distribution (e.g., 100 individuals with a certain wealth amount)
15
+ wealth_distribution = torch.randn(100, 1) # (100 people, 1 wealth feature)
16
+
17
+ # Define the target direction (randomly initialized, or learned)
18
+ target_direction = torch.randn(100, 1)
19
+
20
+ # Define a simple model to transfer wealth in the target direction
21
+ class WealthTransferModel(nn.Module):
22
+ def __init__(self, input_size, hidden_size, output_size):
23
+ super(WealthTransferModel, self).__init__()
24
+ self.fc1 = nn.Linear(input_size, hidden_size)
25
+ self.fc2 = nn.Linear(hidden_size, hidden_size)
26
+ self.fc3 = nn.Linear(hidden_size, output_size)
27
+ self.relu = nn.ReLU()
28
+
29
+ def forward(self, x, target):
30
+ # Combine wealth signal with target information (concatenate or element-wise)
31
+ x = torch.cat((x, target), dim=1)
32
+ # Process wealth signal with dense layers
33
+ x = self.relu(self.fc1(x))
34
+ x = self.relu(self.fc2(x))
35
+ x = self.fc3(x)
36
+ return x
37
+
38
+ # Initialize model, loss function, and optimizer
39
+ input_size = wealth_distribution.shape[1] + target_direction.shape[1] # Input wealth + target direction
40
+ hidden_size = 64 # Hidden layer size (can be adjusted)
41
+ output_size = wealth_distribution.shape[1] # Output size matches wealth distribution
42
+
43
+ model = WealthTransferModel(input_size, hidden_size, output_size)
44
+ loss_fn = nn.MSELoss() # Mean Squared Error loss for simplicity
45
+ optimizer = optim.Adam(model.parameters(), lr=0.001)
46
+
47
+ # Dummy target wealth state (after transfer)
48
+ target_wealth_state = torch.randn(100, 1) # Random for now; this would be based on business logic
49
+
50
+ # Training loop (just for illustration; you can adjust the number of epochs)
51
+ num_epochs = 100
52
+ for epoch in range(num_epochs):
53
+ # Zero gradients
54
+ optimizer.zero_grad()
55
+
56
+ # Forward pass: Compute the wealth transfer
57
+ output = model(wealth_distribution, target_direction)
58
+
59
+ # Compute loss (compare output to the target wealth state)
60
+ loss = loss_fn(output, target_wealth_state)
61
+
62
+ # Backpropagation and optimization step
63
+ loss.backward()
64
+ optimizer.step()
65
+
66
+ if (epoch + 1) % 10 == 0:
67
+ print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}')
68
+
69
+ # After training, model should learn how to adjust wealth distribution towards the target direction
70
+
71
+ import torch
72
+ import torch.nn as nn
73
+ import torch.optim as optim
74
+
75
+ # Simulate wealth distribution (e.g., 100 individuals with a certain wealth amount)
76
+ wealth_distribution = torch.randn(100, 1) # (100 people, 1 wealth feature)
77
+
78
+ # Define the target direction (randomly initialized, or learned)
79
+ target_direction = torch.randn(100, 1)
80
+
81
+ # Define a model that includes an LSTM layer for "nerve-like" behavior to store wealth information
82
+ class WealthTransferModelWithNerve(nn.Module):
83
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size):
84
+ super(WealthTransferModelWithNerve, self).__init__()
85
+ # First dense layer to process wealth and target information
86
+ self.fc1 = nn.Linear(input_size, hidden_size)
87
+ self.relu = nn.ReLU()
88
+
89
+ # LSTM layer that acts as a "nerve" to store wealth information
90
+ self.lstm = nn.LSTM(hidden_size, lstm_hidden_size, batch_first=True)
91
+
92
+ # Final dense layer to transfer wealth in the target direction
93
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
94
+
95
+ def forward(self, x, target):
96
+ # Combine wealth signal with target information (concatenate or element-wise)
97
+ x = torch.cat((x, target), dim=1)
98
+
99
+ # Process through the first dense layer
100
+ x = self.relu(self.fc1(x))
101
+
102
+ # Prepare for LSTM (LSTM requires input of shape (batch_size, seq_length, feature_size))
103
+ x = x.unsqueeze(1) # Add a sequence dimension for LSTM (batch_size, 1, hidden_size)
104
+
105
+ # Pass through LSTM layer (storing wealth information in "nerves")
106
+ x, (hn, cn) = self.lstm(x) # hn: hidden state, cn: cell state
107
+
108
+ # Remove sequence dimension for the final dense layer
109
+ x = x.squeeze(1)
110
+
111
+ # Output layer to compute the final wealth transfer
112
+ x = self.fc2(x)
113
+ return x
114
+
115
+ # Initialize model, loss function, and optimizer
116
+ input_size = wealth_distribution.shape[1] + target_direction.shape[1] # Input wealth + target direction
117
+ hidden_size = 64 # Size for first dense layer
118
+ lstm_hidden_size = 32 # Hidden size of the LSTM layer
119
+ output_size = wealth_distribution.shape[1] # Output size matches wealth distribution
120
+
121
+ model = WealthTransferModelWithNerve(input_size, hidden_size, lstm_hidden_size, output_size)
122
+ loss_fn = nn.MSELoss() # Mean Squared Error loss for simplicity
123
+ optimizer = optim.Adam(model.parameters(), lr=0.001)
124
+
125
+ # Dummy target wealth state (after transfer)
126
+ target_wealth_state = torch.randn(100, 1) # Random for now; this would be based on business logic
127
+
128
+ # Training loop (just for illustration; you can adjust the number of epochs)
129
+ num_epochs = 100
130
+ for epoch in range(num_epochs):
131
+ # Zero gradients
132
+ optimizer.zero_grad()
133
+
134
+ # Forward pass: Compute the wealth transfer with the "nerve" layer
135
+ output = model(wealth_distribution, target_direction)
136
+
137
+ # Compute loss (compare output to the target wealth state)
138
+ loss = loss_fn(output, target_wealth_state)
139
+
140
+ # Backpropagation and optimization step
141
+ loss.backward()
142
+ optimizer.step()
143
+
144
+ if (epoch + 1) % 10 == 0:
145
+ print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}')
146
+
147
+ # After training, the model will learn to store and process wealth information in the "nerves" and transfer it towards the target.
148
+
149
+ import torch
150
+ import torch.nn as nn
151
+ import torch.optim as optim
152
+
153
+ # Define parameters
154
+ batch_size = 32 # Number of samples in a batch
155
+ seq_length = 10 # Number of timesteps (e.g., 10 timesteps)
156
+ feature_size = 1 # Wealth feature per individual
157
+
158
+ # Simulate wealth distribution over multiple timesteps for 100 people
159
+ wealth_distribution = torch.randn(batch_size, seq_length, 100, feature_size)
160
+
161
+ # Define the target direction over multiple timesteps
162
+ target_direction = torch.randn(batch_size, seq_length, 100, feature_size)
163
+
164
+ # Define the model with LSTM layer for "nerve-like" processing across timesteps
165
+ class WealthTransferModelWithTimesteps(nn.Module):
166
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size):
167
+ super(WealthTransferModelWithTimesteps, self).__init__()
168
+ # First dense layer to process wealth and target information
169
+ self.fc1 = nn.Linear(input_size, hidden_size)
170
+ self.relu = nn.ReLU()
171
+
172
+ # LSTM layer that acts as a "nerve" to store wealth information over timesteps
173
+ self.lstm = nn.LSTM(hidden_size, lstm_hidden_size, batch_first=True)
174
+
175
+ # Final dense layer to transfer wealth in the target direction
176
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
177
+
178
+ def forward(self, x, target):
179
+ # Combine wealth signal with target information (concatenate along feature dimension)
180
+ x = torch.cat((x, target), dim=-1) # Concatenate along the feature axis
181
+
182
+ # Process through the first dense layer for each timestep (use .view to flatten)
183
+ batch_size, seq_length, num_people, _ = x.shape
184
+ x = x.view(batch_size * seq_length * num_people, -1) # Flatten for FC layer
185
+ x = self.relu(self.fc1(x))
186
+ x = x.view(batch_size, seq_length, num_people, -1) # Reshape back after FC
187
+
188
+ # LSTM expects input of shape (batch_size, seq_length, feature_size)
189
+ x = x.view(batch_size, seq_length, -1) # Combine people and features for LSTM
190
+
191
+ # Pass through LSTM layer (storing wealth information over timesteps)
192
+ x, (hn, cn) = self.lstm(x) # hn: hidden state, cn: cell state
193
+
194
+ # Output layer to compute the final wealth transfer for each timestep
195
+ x = self.fc2(x)
196
+ x = x.view(batch_size, seq_length, num_people, -1) # Reshape back to original format
197
+ return x
198
+
199
+ # Initialize model, loss function, and optimizer
200
+ input_size = wealth_distribution.shape[-1] + target_direction.shape[-1] # Wealth + target info per timestep
201
+ hidden_size = 64 # Hidden size for first dense layer
202
+ lstm_hidden_size = 32 # Hidden size of the LSTM layer
203
+ output_size = wealth_distribution.shape[-1] # Output size should match wealth feature per person
204
+
205
+ model = WealthTransferModelWithTimesteps(input_size, hidden_size, lstm_hidden_size, output_size)
206
+ loss_fn = nn.MSELoss() # Mean Squared Error loss for simplicity
207
+ optimizer = optim.Adam(model.parameters(), lr=0.001)
208
+
209
+ # Dummy target wealth state over multiple timesteps
210
+ target_wealth_state = torch.randn(batch_size, seq_length, 100, feature_size)
211
+
212
+ # Training loop (just for illustration)
213
+ num_epochs = 100
214
+ for epoch in range(num_epochs):
215
+ # Zero gradients
216
+ optimizer.zero_grad()
217
+
218
+ # Forward pass: Compute the wealth transfer over multiple timesteps
219
+ output = model(wealth_distribution, target_direction)
220
+
221
+ # Compute loss (compare output to the target wealth state)
222
+ loss = loss_fn(output, target_wealth_state)
223
+
224
+ # Backpropagation and optimization step
225
+ loss.backward()
226
+ optimizer.step()
227
+
228
+ if (epoch + 1) % 10 == 0:
229
+ print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}')
230
+
231
+ # After training, the model will learn to store and direct wealth information across multiple timesteps.
232
+
233
+ import torch
234
+ import torch.nn as nn
235
+ import torch.optim as optim
236
+
237
+ # Define parameters
238
+ batch_size = 32 # Number of samples in a batch
239
+ seq_length = 10 # Number of timesteps (e.g., 10 timesteps)
240
+ feature_size = 1 # Wealth feature per individual
241
+
242
+ # Simulate wealth distribution over multiple timesteps for 100 people
243
+ wealth_distribution = torch.randn(batch_size, seq_length, 100, feature_size)
244
+
245
+ # Define the target direction over multiple timesteps
246
+ target_direction = torch.randn(batch_size, seq_length, 100, feature_size)
247
+
248
+ # Define the model with LSTM layer for "nerve-like" processing across timesteps
249
+ class WealthTransferModelWithTimesteps(nn.Module):
250
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size):
251
+ super(WealthTransferModelWithTimesteps, self).__init__()
252
+ # First dense layer to process wealth and target information
253
+ self.fc1 = nn.Linear(input_size, hidden_size)
254
+ self.relu = nn.ReLU()
255
+
256
+ # LSTM layer that acts as a "nerve" to store wealth information over timesteps
257
+ # Changed input_size to hidden_size * 100 to match the output of fc1
258
+ self.lstm = nn.LSTM(hidden_size * 100, lstm_hidden_size, batch_first=True)
259
+
260
+ # Final dense layer to transfer wealth in the target direction
261
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
262
+
263
+ def forward(self, x, target):
264
+ # Combine wealth signal with target information (concatenate along feature dimension)
265
+ x = torch.cat((x, target), dim=-1) # Concatenate along the feature axis
266
+
267
+ # Process through the first dense layer for each timestep (use .view to flatten)
268
+ batch_size, seq_length, num_people, _ = x.shape
269
+ x = x.view(batch_size * seq_length * num_people, -1) # Flatten for FC layer
270
+ x = self.relu(self.fc1(x))
271
+
272
+ # Reshape to (batch_size, seq_length, num_people * hidden_size) for LSTM
273
+ x = x.view(batch_size, seq_length, num_people * hidden_size) # Reshape for LSTM
274
+
275
+ # Pass through LSTM layer (storing wealth information over timesteps)
276
+ x, (hn, cn) = self.lstm(x) # hn: hidden state, cn: cell state
277
+
278
+ # Output layer to compute the final wealth transfer for each timestep
279
+ x = self.fc2(x)
280
+ x = x.view()
281
+
282
+ import torch
283
+ import torch.nn as nn
284
+ import torch.optim as optim
285
+
286
+ # Define parameters
287
+ batch_size = 32 # Number of samples in a batch
288
+ seq_length = 10 # Number of timesteps
289
+ feature_size = 1 # Wealth feature per individual
290
+
291
+ # Simulate wealth distribution over multiple timesteps for 100 people
292
+ wealth_distribution = torch.randn(batch_size, seq_length, 100, feature_size)
293
+
294
+ # Define the target direction over multiple timesteps
295
+ target_direction = torch.randn(batch_size, seq_length, 100, feature_size)
296
+
297
+ # Define the model with LSTM layer and a "VPN" protection layer
298
+ class WealthTransferModelWithVPN(nn.Module):
299
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size, vpn_size):
300
+ super(WealthTransferModelWithVPN, self).__init__()
301
+ # First dense layer to process wealth and target information
302
+ self.fc1 = nn.Linear(input_size, hidden_size)
303
+ self.relu = nn.ReLU()
304
+
305
+ # LSTM layer that acts as a "nerve" to store wealth information over timesteps
306
+ self.lstm = nn.LSTM(hidden_size, lstm_hidden_size, batch_first=True)
307
+
308
+ # Final dense layer to transfer wealth in the target direction
309
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
310
+
311
+ # VPN-like encryption layer (simulated with a non-linear transformation)
312
+ self.vpn_layer = nn.Linear(output_size, vpn_size) # A layer to "encrypt" the output
313
+ self.decrypt_layer = nn.Linear(vpn_size, output_size) # To recover the original output
314
+
315
+ def forward(self, x, target):
316
+ # Combine wealth signal with target information (concatenate along feature dimension)
317
+ x = torch.cat((x, target), dim=-1) # Concatenate along the feature axis
318
+
319
+ # Process through the first dense layer for each timestep (use .view to flatten)
320
+ batch_size, seq_length, num_people, _ = x.shape
321
+ x = x.view(batch_size * seq_length * num_people, -1) # Flatten for FC layer
322
+ x = self.relu(self.fc1(x))
323
+ x = x.view(batch_size, seq_length, num_people, -1) # Reshape back after FC
324
+
325
+ # LSTM expects input of shape (batch_size, seq_length, feature_size)
326
+ x = x.view(batch_size, seq_length, num_people * hidden_size) # Combine people and features for LSTM
327
+
328
+ # Pass through LSTM layer (storing wealth information over timesteps)
329
+ x, (hn, cn) = self.lstm(x) # hn: hidden state, cn: cell state
330
+
331
+ # Output layer to compute the final wealth transfer for each timestep
332
+ x = self.fc2(x)
333
+ x = x.view(batch_size, seq_length, num_people, -1) # Reshape back to original format
334
+
335
+ # Pass through the VPN encryption layer
336
+ encrypted_output = torch.sigmoid(self.vpn_layer(x)) # Apply transformation (like encryption)
337
+
338
+ # Simulate decryption by passing through another layer
339
+ decrypted_output = self.decrypt_layer(encrypted_output)
340
+
341
+ return decrypted_output # Return the "secure" output
342
+
343
+ # Initialize model, loss function, and optimizer
344
+ input_size = wealth_distribution.shape[-1] + target_direction.shape[-1] # Wealth + target info per timestep
345
+ hidden_size = 64 # Hidden size for first dense layer
346
+ lstm_hidden_size = 32 # Hidden size of the LSTM layer
347
+ output_size = wealth_distribution.shape[-1] # Output size should match wealth feature per person
348
+ vpn_size = 128 # Size of the "VPN" layer
349
+
350
+ model = WealthTransferModelWithVPN(input_size, hidden_size, lstm_hidden_size, output_size, vpn_size)
351
+ loss_fn = nn.MSELoss() # Mean Squared Error loss for simplicity
352
+ optimizer = optim.Adam(model.parameters(), lr=0.001)
353
+
354
+ # Dummy target wealth state over multiple timesteps
355
+ target_wealth_state = torch.randn(batch_size, seq_length, 100, feature_size)
356
+
357
+ # Training loop (just for illustration)
358
+ num_epochs = 100
359
+ for epoch in range(num_epochs):
360
+ # Zero gradients
361
+ optimizer.zero_grad()
362
+
363
+ # Forward pass: Compute the wealth transfer with VPN-like protection
364
+ output = model(wealth_distribution, target_direction)
365
+
366
+ # Compute loss (compare output to the target wealth state)
367
+ loss = loss_fn(output, target_wealth_state)
368
+
369
+ # Backpropagation and optimization step
370
+ loss.backward()
371
+ optimizer.step()
372
+
373
+ if (epoch + 1) % 10 == 0:
374
+ print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}')
375
+
376
+ # After training, the model will learn to store and protect wealth information securely while transferring it.
377
+
378
+ import torch
379
+ import torch.nn as nn
380
+ import torch.optim as optim
381
+
382
+ # Simulate wealth distribution for 100 people
383
+ wealth_distribution = torch.randn(100, 1) # (100 people, 1 wealth feature)
384
+
385
+ # Define the target direction (randomly initialized or learned)
386
+ target_direction = torch.randn(100, 1)
387
+
388
+ # Define a simple dense model to process wealth and target direction
389
+ class WealthTransferModel(nn.Module):
390
+ def __init__(self, input_size, hidden_size, output_size):
391
+ super(WealthTransferModel, self).__init__()
392
+ # First dense layer
393
+ self.fc1 = nn.Linear(input_size, hidden_size)
394
+ self.relu = nn.ReLU()
395
+
396
+ # Second dense layer
397
+ self.fc2 = nn.Linear(hidden_size, output_size)
398
+
399
+ def forward(self, x, target):
400
+ # Combine wealth signal with target information (concatenate or element-wise)
401
+ x = torch.cat((x, target), dim=1)
402
+
403
+ # Process through the first dense layer
404
+ x = self.relu(self.fc1(x))
405
+
406
+ # Output layer to compute the final wealth transfer signal
407
+ x = self.fc2(x)
408
+ return x
409
+
410
+ # Initialize the model
411
+ input_size = wealth_distribution.shape[1] + target_direction.shape[1] # Input wealth + target direction
412
+ hidden_size = 64 # Hidden layer size
413
+ output_size = wealth_distribution.shape[1] # Output size matches wealth distribution
414
+
415
+ model = WealthTransferModel(input_size, hidden_size, output_size)
416
+
417
+ # Define loss function and optimizer
418
+ loss_fn = nn.MSELoss()
419
+ optimizer = optim.Adam(model.parameters(), lr=0.001)
420
+
421
+ # Dummy target wealth state (after transfer)
422
+ target_wealth_state = torch.randn(100, 1) # Random for now; this would be based on business logic
423
+
424
+ # Training loop (just for illustration)
425
+ num_epochs = 100
426
+ for epoch in range(num_epochs):
427
+ # Zero gradients
428
+ optimizer.zero_grad()
429
+
430
+ # Forward pass: compute the wealth transfer
431
+ output = model(wealth_distribution, target_direction)
432
+
433
+ # Compute loss (compare output to the target wealth state)
434
+ loss = loss_fn(output, target_wealth_state)
435
+
436
+ # Backpropagation and optimization step
437
+ loss.backward()
438
+ optimizer.step()
439
+
440
+ if (epoch + 1) % 10 == 0:
441
+ print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}')
442
+
443
+ import torch
444
+ import torch.nn as nn
445
+ import torch.optim as optim
446
+
447
+ # Simulate wealth distribution for 100 people
448
+ wealth_distribution = torch.randn(32, 100, 1) # (batch_size, 100 people, 1 wealth feature)
449
+
450
+ # Define the target direction (randomly initialized or learned)
451
+ target_direction = torch.randn(32, 100, 1) # (batch_size, 100 people, 1 feature for direction)
452
+
453
+ # Define a model with LSTM to store wealth signal in the "nerves"
454
+ class WealthTransferModelWithNerves(nn.Module):
455
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size):
456
+ super(WealthTransferModelWithNerves, self).__init__()
457
+ # First dense layer
458
+ self.fc1 = nn.Linear(input_size, hidden_size)
459
+ self.relu = nn.ReLU()
460
+
461
+ # LSTM layer to store wealth signal in the "nerves"
462
+ self.lstm = nn.LSTM(hidden_size, lstm_hidden_size, batch_first=True)
463
+
464
+ # Final dense layer to transfer wealth in the target direction
465
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
466
+
467
+ def forward(self, x, target):
468
+ # Combine wealth signal with target information (concatenate along the feature dimension)
469
+ x = torch.cat((x, target), dim=-1)
470
+
471
+ # Process through the first dense layer
472
+ x = self.relu(self.fc1(x))
473
+
474
+ # Pass through the LSTM layer (to store the wealth signal in the nerves)
475
+ x, _ = self.lstm(x)
476
+
477
+ # Output layer to compute the final wealth transfer signal
478
+ x = self.fc2(x)
479
+ return x
480
+
481
+ # Initialize the model
482
+ input_size = wealth_distribution.shape[-1] + target_direction.shape[-1] # Input: wealth + target direction
483
+ hidden_size = 64 # Hidden layer size
484
+ lstm_hidden_size = 32 # LSTM hidden size (for storing wealth signal in the nerves)
485
+ output_size = wealth_distribution.shape[-1] # Output size matches wealth distribution
486
+
487
+ model = WealthTransferModelWithNerves(input_size, hidden_size, lstm_hidden_size, output_size)
488
+
489
+ # Define loss function and optimizer
490
+ loss_fn = nn.MSELoss()
491
+ optimizer = optim.Adam(model.parameters(), lr=0.001)
492
+
493
+ # Dummy target wealth state (after transfer)
494
+ target_wealth_state = torch.randn(32, 100, 1) # Random for now
495
+
496
+ # Training loop (just for illustration)
497
+ num_epochs = 100
498
+ for epoch in range(num_epochs):
499
+ # Zero gradients
500
+ optimizer.zero_grad()
501
+
502
+ # Forward pass: compute the wealth transfer
503
+ output = model(wealth_distribution, target_direction)
504
+
505
+ # Compute loss (compare output to the target wealth state)
506
+ loss = loss_fn(output, target_wealth_state)
507
+
508
+ # Backpropagation and optimization step
509
+ loss.backward()
510
+ optimizer.step()
511
+
512
+ if (epoch + 1) % 10 == 0:
513
+ print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}')
514
+
515
+ import torch
516
+ import torch.nn as nn
517
+ import torch.optim as optim
518
+
519
+ # Simulate wealth distribution for 100 people
520
+ wealth_distribution = torch.randn(32, 100, 1) # (batch_size, 100 people, 1 wealth feature)
521
+
522
+ # Define the target direction (randomly initialized or learned)
523
+ target_direction = torch.randn(32, 100, 1) # (batch_size, 100 people, 1 feature for direction)
524
+
525
+ # Define the model with LSTM and VPN-like layer for protection
526
+ class WealthTransferModelWithVPN(nn.Module):
527
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size, vpn_size):
528
+ super(WealthTransferModelWithVPN, self).__init__()
529
+ # First dense layer
530
+ self.fc1 = nn.Linear(input_size, hidden_size)
531
+ self.relu = nn.ReLU()
532
+
533
+ # LSTM layer to store wealth signal in the "nerves"
534
+ self.lstm = nn.LSTM(hidden_size, lstm_hidden_size, batch_first=True)
535
+
536
+ # Final dense layer to transfer wealth in the target direction
537
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
538
+
539
+ # VPN-like encryption layer (simulated with a non-linear transformation)
540
+ self.vpn_layer = nn.Linear(output_size, vpn_size) # A layer to "encrypt" the output
541
+ self.decrypt_layer = nn.Linear(vpn_size, output_size) # To recover the original output
542
+
543
+ def forward(self, x, target):
544
+ # Combine wealth signal with target information (concatenate along the feature dimension)
545
+ x = torch.cat((x, target), dim=-1)
546
+
547
+ # Process through the first dense layer
548
+ x = self.relu(self.fc1(x))
549
+
550
+ # Pass through the LSTM layer (to store the wealth signal in the nerves)
551
+ x, _ = self.lstm(x)
552
+
553
+ # Output layer to compute the final wealth transfer signal
554
+ x = self.fc2(x)
555
+
556
+ # Pass through the VPN encryption layer
557
+ encrypted_output = torch.sigmoid(self.vpn_layer(x)) # Apply transformation (like encryption)
558
+
559
+ # Simulate decryption by passing through another layer
560
+ decrypted_output = self.decrypt_layer(encrypted_output)
561
+
562
+ return decrypted_output # Return the "secure" output
563
+
564
+ # Initialize the model
565
+ input_size = wealth_distribution.shape[-1] + target_direction.shape[-1] # Input: wealth + target direction
566
+ hidden_size = 64 # Hidden layer size
567
+ lstm_hidden_size = 32 # LSTM hidden size (for storing wealth signal in the nerves)
568
+ output_size = wealth_distribution.shape[-1] # Output size matches wealth distribution
569
+ vpn_size = 128 # Size of the "VPN" encryption layer
570
+
571
+ model = WealthTransferModelWithVPN(input_size, hidden_size, lstm_hidden_size, output_size, vpn_size)
572
+
573
+ # Define loss function and optimizer
574
+ loss_fn = nn.MSELoss()
575
+ optimizer = optim.Adam(model.parameters(), lr=0.001)
576
+
577
+ # Dummy target wealth state (after transfer)
578
+ target_wealth_state = torch.randn(32, 100, 1) # Random for now
579
+
580
+ # Training loop (just for illustration)
581
+ num_epochs = 100
582
+ for epoch in range(num_epochs):
583
+ # Zero gradients
584
+ optimizer.zero_grad()
585
+
586
+ # Forward pass: compute the wealth transfer with VPN-like protection
587
+ output = model(wealth_distribution, target_direction)
588
+
589
+ # Compute loss (compare output to the target wealth state)
590
+ loss = loss_fn(output, target_wealth_state)
591
+
592
+ # Backpropagation and optimization step
593
+ loss.backward()
594
+ optimizer.step()
595
+
596
+ if (epoch + 1) % 10 == 0:
597
+ print(f'Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}')
598
+
599
+ import torch
600
+ import torch.nn as nn
601
+ import torch.optim as optim
602
+ import matplotlib.pyplot as plt
603
+
604
+ # Simulate wealth distribution for 100 people
605
+ wealth_distribution = torch.randn(32, 100, 1) # (batch_size, 100 people, 1 wealth feature)
606
+
607
+ # Define the target direction (randomly initialized or learned)
608
+ target_direction = torch.randn(32, 100, 1) # (batch_size, 100 people, 1 feature for direction)
609
+
610
+ # Define the model with LSTM and VPN-like layer for protection
611
+ class WealthTransferModelWithVPN(nn.Module):
612
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size, vpn_size):
613
+ super(WealthTransferModelWithVPN, self).__init__()
614
+ # First dense layer
615
+ self.fc1 = nn.Linear(input_size, hidden_size)
616
+ self.relu = nn.ReLU()
617
+
618
+ # LSTM layer to store wealth signal in the "nerves"
619
+ self.lstm = nn.LSTM(hidden_size, lstm_hidden_size, batch_first=True)
620
+
621
+ # Final dense layer to transfer wealth in the target direction
622
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
623
+
624
+ # VPN-like encryption layer (simulated with a non-linear transformation)
625
+ self.vpn_layer = nn.Linear(output_size, vpn_size) # A layer to "encrypt" the output
626
+ self.decrypt_layer = nn.Linear(vpn_size, output_size) # To recover the original output
627
+
628
+ def forward(self, x, target):
629
+ # Combine wealth signal with target information (concatenate along the feature dimension)
630
+ x = torch.cat((x, target), dim=-1)
631
+
632
+ # Process through the first dense layer
633
+ x = self.relu(self.fc1(x))
634
+
635
+ # Pass through the LSTM layer (to store the wealth signal in the nerves)
636
+ x, _ = self.lstm(x)
637
+
638
+ # Output layer to compute the final wealth transfer signal
639
+ x = self.fc2(x)
640
+
641
+ # Pass through the VPN encryption layer
642
+ encrypted_output = torch.sigmoid(self.vpn_layer(x)) # Apply transformation (like encryption)
643
+
644
+ # Simulate decryption by passing through another layer
645
+ decrypted_output = self.decrypt_layer(encrypted_output)
646
+
647
+ return decrypted_output # Return the "secure" output
648
+
649
+ # Initialize the model
650
+ input_size = wealth_distribution.shape[-1] + target_direction.shape[-1] # Input: wealth + target direction
651
+ hidden_size = 64 # Hidden layer size
652
+ lstm_hidden_size = 32 # LSTM hidden size (for storing wealth signal in the nerves)
653
+ output_size = wealth_distribution.shape[-1] # Output size matches wealth distribution
654
+ vpn_size = 128 # Size of the "VPN" encryption layer
655
+
656
+ model = WealthTransferModelWithVPN(input_size, hidden_size, lstm_hidden_size, output_size, vpn_size)
657
+
658
+ # Forward pass: compute the wealth transfer signal (without training for simplicity)
659
+ with torch.no_grad():
660
+ output_signal = model(wealth_distribution, target_direction)
661
+
662
+ # Select one example (first sample from batch) for plotting
663
+ wealth_waveform = output_signal[0].squeeze().numpy() # Remove extra dimensions (100,)
664
+
665
+ # Plot the wealth signal as a waveform
666
+ plt.figure(figsize=(10, 5))
667
+ plt.plot(wealth_waveform, label='Wealth Transfer Signal')
668
+ plt.title('Wealth Transfer Signal Waveform')
669
+ plt.xlabel('Individual (or Time Step)')
670
+ plt.ylabel('Wealth Signal Intensity')
671
+ plt.legend()
672
+ plt.grid(True)
673
+ plt.show()
674
+
675
+ import torch
676
+ import torch.nn as nn
677
+ import torch.optim as optim
678
+ import matplotlib.pyplot as plt
679
+
680
+ # Simulate wealth distribution for 100 people across 24 hours
681
+ # Let's assume each sample corresponds to a different time step (hour)
682
+ wealth_distribution = torch.randn(32, 24, 1) # (batch_size, 24 hours, 1 wealth feature)
683
+
684
+ # Define the target direction (randomly initialized or learned) for 24 hours
685
+ target_direction = torch.randn(32, 24, 1) # (batch_size, 24 hours, 1 feature for direction)
686
+
687
+ # Define the model with LSTM and VPN-like layer for protection
688
+ class WealthTransferModelWithVPN(nn.Module):
689
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size, vpn_size):
690
+ super(WealthTransferModelWithVPN, self).__init__()
691
+ # First dense layer
692
+ self.fc1 = nn.Linear(input_size, hidden_size)
693
+ self.relu = nn.ReLU()
694
+
695
+ # LSTM layer to store wealth signal in the "nerves"
696
+ self.lstm = nn.LSTM(hidden_size, lstm_hidden_size, batch_first=True)
697
+
698
+ # Final dense layer to transfer wealth in the target direction
699
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
700
+
701
+ # VPN-like encryption layer (simulated with a non-linear transformation)
702
+ self.vpn_layer = nn.Linear(output_size, vpn_size) # A layer to "encrypt" the output
703
+ self.decrypt_layer = nn.Linear(vpn_size, output_size) # To recover the original output
704
+
705
+ def forward(self, x, target):
706
+ # Combine wealth signal with target information (concatenate along the feature dimension)
707
+ x = torch.cat((x, target), dim=-1)
708
+
709
+ # Process through the first dense layer
710
+ x = self.relu(self.fc1(x))
711
+
712
+ # Pass through the LSTM layer (to store the wealth signal in the nerves)
713
+ x, _ = self.lstm(x)
714
+
715
+ # Output layer to compute the final wealth transfer signal
716
+ x = self.fc2(x)
717
+
718
+ # Pass through the VPN encryption layer
719
+ encrypted_output = torch.sigmoid(self.vpn_layer(x)) # Apply transformation (like encryption)
720
+
721
+ # Simulate decryption by passing through another layer
722
+ decrypted_output = self.decrypt_layer(encrypted_output)
723
+
724
+ return decrypted_output # Return the "secure" output
725
+
726
+ # Initialize the model
727
+ input_size = wealth_distribution.shape[-1] + target_direction.shape[-1] # Input: wealth + target direction
728
+ hidden_size = 64 # Hidden layer size
729
+ lstm_hidden_size = 32 # LSTM hidden size (for storing wealth signal in the nerves)
730
+ output_size = wealth_distribution.shape[-1] # Output size matches wealth distribution
731
+ vpn_size = 128 # Size of the "VPN" encryption layer
732
+
733
+ model = WealthTransferModelWithVPN(input_size, hidden_size, lstm_hidden_size, output_size, vpn_size)
734
+
735
+ # Forward pass: compute the wealth transfer signal (without training for simplicity)
736
+ with torch.no_grad():
737
+ output_signal = model(wealth_distribution, target_direction)
738
+
739
+ # Select one example (first sample from batch) for plotting
740
+ wealth_waveform = output_signal[0].squeeze().numpy() # Remove extra dimensions (24 hours,)
741
+
742
+ # Create an x-axis for 24 hours (from 0 to 23 hours)
743
+ hours = list(range(24))
744
+
745
+ # Plot the wealth signal as a waveform over 24 hours
746
+ plt.figure(figsize=(10, 5))
747
+ plt.plot(hours, wealth_waveform, label='Wealth Transfer Signal over 24 Hours', marker='o')
748
+ plt.title('Wealth Transfer Signal in 24-Hour Intervals')
749
+ plt.xlabel('Hour of the Day')
750
+ plt.ylabel('Wealth Signal Intensity')
751
+ plt.xticks(hours) # Show each hour as a tick on the x-axis
752
+ plt.grid(True)
753
+ plt.legend()
754
+ plt.show()
755
+
756
+ import torch
757
+ import torch.nn as nn
758
+ import torch.optim as optim
759
+ import matplotlib.pyplot as plt
760
+ import numpy as np
761
+
762
+ # Simulate wealth distribution for 100 people across 24 hours
763
+ wealth_distribution = torch.randn(32, 24, 1) # (batch_size, 24 hours, 1 wealth feature)
764
+
765
+ # Define the target direction (randomly initialized or learned) for 24 hours
766
+ target_direction = torch.randn(32, 24, 1) # (batch_size, 24 hours, 1 feature for direction)
767
+
768
+ # Define the model with LSTM and VPN-like layer for protection
769
+ class WealthTransferModelWithVPN(nn.Module):
770
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size, vpn_size):
771
+ super(WealthTransferModelWithVPN, self).__init__()
772
+ # First dense layer
773
+ self.fc1 = nn.Linear(input_size, hidden_size)
774
+ self.relu = nn.ReLU()
775
+
776
+ # LSTM layer to store wealth signal in the "nerves"
777
+ self.lstm = nn.LSTM(hidden_size, lstm_hidden_size, batch_first=True)
778
+
779
+ # Final dense layer to transfer wealth in the target direction
780
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
781
+
782
+ # VPN-like encryption layer (simulated with a non-linear transformation)
783
+ self.vpn_layer = nn.Linear(output_size, vpn_size) # A layer to "encrypt" the output
784
+ self.decrypt_layer = nn.Linear(vpn_size, output_size) # To recover the original output
785
+
786
+ def forward(self, x, target):
787
+ # Combine wealth signal with target information (concatenate along the feature dimension)
788
+ x = torch.cat((x, target), dim=-1)
789
+
790
+ # Process through the first dense layer
791
+ x = self.relu(self.fc1(x))
792
+
793
+ # Pass through the LSTM layer (to store the wealth signal in the nerves)
794
+ x, _ = self.lstm(x)
795
+
796
+ # Output layer to compute the final wealth transfer signal
797
+ x = self.fc2(x)
798
+
799
+ # Pass through the VPN encryption layer
800
+ encrypted_output = torch.sigmoid(self.vpn_layer(x)) # Apply transformation (like encryption)
801
+
802
+ # Simulate decryption by passing through another layer
803
+ decrypted_output = self.decrypt_layer(encrypted_output)
804
+
805
+ return decrypted_output # Return the "secure" output
806
+
807
+ # Initialize the model
808
+ input_size = wealth_distribution.shape[-1] + target_direction.shape[-1] # Input: wealth + target direction
809
+ hidden_size = 64 # Hidden layer size
810
+ lstm_hidden_size = 32 # LSTM hidden size (for storing wealth signal in the nerves)
811
+ output_size = wealth_distribution.shape[-1] # Output size matches wealth distribution
812
+ vpn_size = 128 # Size of the "VPN" encryption layer
813
+
814
+ model = WealthTransferModelWithVPN(input_size, hidden_size, lstm_hidden_size, output_size, vpn_size)
815
+
816
+ # Forward pass: compute the wealth transfer signal (without training for simplicity)
817
+ with torch.no_grad():
818
+ output_signal = model(wealth_distribution, target_direction)
819
+
820
+ # Select one example (first sample from batch) for plotting
821
+ wealth_waveform = output_signal[0].squeeze().numpy() # Remove extra dimensions (24 hours,)
822
+
823
+ # Create a mask (example: mask where signal < 0.5)
824
+ mask = wealth_waveform > 0.5 # Only display parts of the signal that exceed 0.5 in intensity
825
+
826
+ # Apply the mask to the wealth waveform
827
+ masked_signal = wealth_waveform * mask # Set masked elements to 0
828
+
829
+ # Create an x-axis for 24 hours (from 0 to 23 hours)
830
+ hours = list(range(24))
831
+
832
+ # Plot the masked wealth signal as a colorful waveform
833
+ plt.figure(figsize=(10, 5))
834
+
835
+ # Use a colormap to display the intensity of the signal
836
+ scatter = plt.scatter(hours, masked_signal, c=masked_signal, cmap='viridis', s=100, edgecolor='k', marker='o')
837
+
838
+ # Add a color bar to show intensity mapping
839
+ plt.colorbar(scatter, label="Wealth Signal Intensity")
840
+
841
+ plt.title('Masked Wealth Transfer Signal in 24-Hour Intervals (Colorful Waveform)')
842
+ plt.xlabel('Hour of the Day')
843
+ plt.ylabel('Wealth Signal Intensity')
844
+ plt.xticks(hours) # Show each hour as a tick on the x-axis
845
+ plt.grid(True)
846
+ plt.show()
847
+
848
+ import torch
849
+ import torch.nn as nn
850
+ import torch.optim as optim
851
+ import matplotlib.pyplot as plt
852
+ import numpy as np
853
+
854
+ # Simulate wealth distribution for 100 people across 24 hours
855
+ wealth_distribution = torch.randn(32, 24, 1) # (batch_size, 24 hours, 1 wealth feature)
856
+
857
+ # Define the target direction (randomly initialized or learned) for 24 hours
858
+ target_direction = torch.randn(32, 24, 1) # (batch_size, 24 hours, 1 feature for direction)
859
+
860
+ # Define the model with LSTM and VPN-like layer for protection
861
+ class WealthTransferModelWithVPN(nn.Module):
862
+ def __init__(self, input_size, hidden_size, lstm_hidden_size, output_size, vpn_size):
863
+ super(WealthTransferModelWithVPN, self).__init__()
864
+ # First dense layer
865
+ self.fc1 = nn.Linear(input_size, hidden_size)
866
+ self.relu = nn.ReLU()
867
+
868
+ # LSTM layer to store wealth signal in the "nerves"
869
+ self.lstm = nn.LSTM(hidden_size, lstm_hidden_size, batch_first=True)
870
+
871
+ # Final dense layer to transfer wealth in the target direction
872
+ self.fc2 = nn.Linear(lstm_hidden_size, output_size)
873
+
874
+ # VPN-like encryption layer (simulated with a non-linear transformation)
875
+ self.vpn_layer = nn.Linear(output_size, vpn_size) # A layer to "encrypt" the output
876
+ self.decrypt_layer = nn.Linear(vpn_size, output_size) # To recover the original output
877
+
878
+ def forward(self, x, target):
879
+ # Combine wealth signal with target information (concatenate along the feature dimension)
880
+ x = torch.cat((x, target), dim=-1)
881
+
882
+ # Process through the first dense layer
883
+ x = self.relu(self.fc1(x))
884
+
885
+ # Pass through the LSTM layer (to store the wealth signal in the nerves)
886
+ x, _ = self.lstm(x)
887
+
888
+ # Output layer to compute the final wealth transfer signal
889
+ x = self.fc2(x)
890
+
891
+ # Pass through the VPN encryption layer
892
+ encrypted_output = torch.sigmoid(self.vpn_layer(x)) # Apply transformation (like encryption)
893
+
894
+ # Simulate decryption by passing through another layer
895
+ decrypted_output = self.decrypt_layer(encrypted_output)
896
+
897
+ return decrypted_output # Return the "secure" output
898
+
899
+ # Initialize the model
900
+ input_size = wealth_distribution.shape[-1] + target_direction.shape[-1] # Input: wealth + target direction
901
+ hidden_size = 64 # Hidden layer size
902
+ lstm_hidden_size = 32 # LSTM hidden size (for storing wealth signal in the nerves)
903
+ output_size = wealth_distribution.shape[-1] # Output size matches wealth distribution
904
+ vpn_size = 128 # Size of the "VPN" encryption layer
905
+
906
+ model = WealthTransferModelWithVPN(input_size, hidden_size, lstm_hidden_size, output_size, vpn_size)
907
+
908
+ # Forward pass: compute the wealth transfer signal (without training for simplicity)
909
+ with torch.no_grad():
910
+ output_signal = model(wealth_distribution, target_direction)
911
+
912
+ # Select one example (first sample from batch) for plotting
913
+ wealth_waveform = output_signal[0].squeeze().numpy() # Remove extra dimensions (24 hours,)
914
+
915
+ # Create the first mask (example: mask where signal < 0.5)
916
+ mask1 = wealth_waveform > 0.5 # First mask: Only display parts of the signal that exceed 0.5 in intensity
917
+
918
+ # Apply the first mask to the wealth waveform
919
+ masked_signal1 = wealth_waveform * mask1 # Set masked elements to 0
920
+
921
+ # Create the second mask (example: mask where signal > 0.2)
922
+ mask2 = wealth_waveform < 0.2 # Second mask: Only display parts of the signal below 0.2 in intensity
923
+
924
+ # Apply the second mask to the wealth waveform
925
+ masked_signal2 = wealth_waveform * mask2 # Set masked elements to 0
926
+
927
+ # Combine both masked signals (for visualization purposes)
928
+ combined_masked_signal = masked_signal1 + masked_signal2
929
+
930
+ # Create an x-axis for 24 hours (from 0 to 23 hours)
931
+ hours = list(range(24))
932
+
933
+ # Plot the combined masked wealth signal as a colorful waveform
934
+ plt.figure(figsize=(10, 5))
935
+
936
+ # Use a colormap to display the intensity of the signal
937
+ scatter = plt.scatter(hours, combined_masked_signal, c=combined_masked_signal, cmap='plasma', s=100, edgecolor='k', marker='o')
938
+
939
+ # Add a color bar to show intensity mapping
940
+ plt.colorbar(scatter, label="Wealth Signal Intensity")
941
+
942
+ plt.title('Combined Masked Wealth Transfer Signal in 24-Hour Intervals (Colorful Waveform)')
943
+ plt.xlabel('Hour of the Day')
944
+ plt.ylabel('Wealth Signal Intensity')
945
+ plt.xticks(hours) # Show each hour as a tick on the x-axis
946
+ plt.grid(True)
947
+ plt.show()