Rui Wan commited on
Commit
8bf9a21
·
1 Parent(s): a106a7b

device update

Browse files
__pycache__/model_inverse.cpython-312.pyc CHANGED
Binary files a/__pycache__/model_inverse.cpython-312.pyc and b/__pycache__/model_inverse.cpython-312.pyc differ
 
app.py CHANGED
@@ -22,10 +22,10 @@ def run_inverse_design(ply_number, a1, b1, c1, stress, n_restarts, epochs, use_l
22
  "Cooling Time": float(best["input"][2]),
23
  }
24
  output_vals = {
25
- "A1": float(best["output"][0][0]),
26
- "B1": float(best["output"][0][1]),
27
- "C1": float(best["output"][0][2]),
28
- "Stress": float(best["output"][0][3]),
29
  }
30
  return input_vals, output_vals
31
 
 
22
  "Cooling Time": float(best["input"][2]),
23
  }
24
  output_vals = {
25
+ "A1": float(best["output"][0]),
26
+ "B1": float(best["output"][1]),
27
+ "C1": float(best["output"][2]),
28
+ "Stress": float(best["output"][3]),
29
  }
30
  return input_vals, output_vals
31
 
model_inverse.py CHANGED
@@ -3,7 +3,9 @@ import numpy as np
3
  import matplotlib.pyplot as plt
4
  from Dataset import Dataset
5
 
6
- DEVICE = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
 
 
7
  # Set global plotting parameters
8
  plt.rcParams.update({'font.size': 14,
9
  'figure.figsize': (10, 8),
@@ -77,11 +79,14 @@ def train_neural_network(model, inputs, outputs, optimizer, epochs=1000, lr_sche
77
 
78
 
79
  def load_model(model_path):
80
- checkpoint = torch.load(model_path)
81
  model_config = checkpoint['model_config']
82
  model = NeuralNetwork(model_config['layer_sizes'], dropout_rate=model_config['dropout_rate'])
83
  model.load_state_dict(checkpoint['model_state_dict'])
84
  print(f"Model loaded from {model_path}")
 
 
 
85
  return model
86
 
87
  def inverse_design(ply_number, y_target, n_restarts=20, epochs=1000, use_lbfgs=False):
@@ -95,8 +100,6 @@ def inverse_design(ply_number, y_target, n_restarts=20, epochs=1000, use_lbfgs=F
95
  output_mean = torch.tensor(data.output_mean)
96
  output_std = torch.tensor(data.output_std)
97
 
98
-
99
- model.eval()
100
  weights = torch.tensor([1.0, 1.0, 1.0, 0.0], dtype=torch.float32)
101
  bounds = torch.tensor([[350., 450.], [100., 500.], [450., 550.]], dtype=torch.float32) # Initial_Temp, Punch_Velocity, Cooling_Time
102
  best = {"loss": float('inf'), "input": None, "output": None}
@@ -132,7 +135,7 @@ def inverse_design(ply_number, y_target, n_restarts=20, epochs=1000, use_lbfgs=F
132
 
133
  with torch.no_grad():
134
  var = bounds[:, 0] + (bounds[:, 1] - bounds[:, 0]) * torch.sigmoid(z)
135
- input_raw = torch.cat([torch.tensor([ply_number]), var]).unsqueeze(0)
136
  input_norm = (input_raw - input_mean) / input_std
137
  output_pred = model(input_norm)
138
  output_pred = data.denormalize_output(output_pred.numpy())
@@ -232,18 +235,15 @@ def inverse_model():
232
  # Error
233
 
234
  # Save the model
235
- model_save_path = './model_inverse_ckpt.pth'
236
- model_config = {'layer_sizes': layer_sizes,
237
- 'dropout_rate': 0.05
238
- }
239
- checkpoint = {
240
- 'model_state_dict': model.state_dict(),
241
- 'model_config': model_config
242
- }
243
- torch.save(checkpoint, model_save_path)
244
- # Load the model
245
- # model = NeuralNetwork(layer_sizes)
246
- # model.load_state_dict(torch.load(model_save_path))
247
 
248
 
249
  if __name__ == "__main__":
 
3
  import matplotlib.pyplot as plt
4
  from Dataset import Dataset
5
 
6
+ # DEVICE = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
7
+ DEVICE = torch.device('cpu')
8
+
9
  # Set global plotting parameters
10
  plt.rcParams.update({'font.size': 14,
11
  'figure.figsize': (10, 8),
 
79
 
80
 
81
  def load_model(model_path):
82
+ checkpoint = torch.load(model_path, map_location=DEVICE)
83
  model_config = checkpoint['model_config']
84
  model = NeuralNetwork(model_config['layer_sizes'], dropout_rate=model_config['dropout_rate'])
85
  model.load_state_dict(checkpoint['model_state_dict'])
86
  print(f"Model loaded from {model_path}")
87
+
88
+ model.to(DEVICE)
89
+ model.eval()
90
  return model
91
 
92
  def inverse_design(ply_number, y_target, n_restarts=20, epochs=1000, use_lbfgs=False):
 
100
  output_mean = torch.tensor(data.output_mean)
101
  output_std = torch.tensor(data.output_std)
102
 
 
 
103
  weights = torch.tensor([1.0, 1.0, 1.0, 0.0], dtype=torch.float32)
104
  bounds = torch.tensor([[350., 450.], [100., 500.], [450., 550.]], dtype=torch.float32) # Initial_Temp, Punch_Velocity, Cooling_Time
105
  best = {"loss": float('inf'), "input": None, "output": None}
 
135
 
136
  with torch.no_grad():
137
  var = bounds[:, 0] + (bounds[:, 1] - bounds[:, 0]) * torch.sigmoid(z)
138
+ input_raw = torch.cat([torch.tensor([ply_number]), var])
139
  input_norm = (input_raw - input_mean) / input_std
140
  output_pred = model(input_norm)
141
  output_pred = data.denormalize_output(output_pred.numpy())
 
235
  # Error
236
 
237
  # Save the model
238
+ # model_save_path = './model_inverse_ckpt.pth'
239
+ # model_config = {'layer_sizes': layer_sizes,
240
+ # 'dropout_rate': 0.05
241
+ # }
242
+ # checkpoint = {
243
+ # 'model_state_dict': model.state_dict(),
244
+ # 'model_config': model_config
245
+ # }
246
+ # torch.save(checkpoint, model_save_path)
 
 
 
247
 
248
 
249
  if __name__ == "__main__":