def save_grid_to_db(self, model=None):
if model is not None:
self.model = model
f_instance = Formulation.query.get(self.f_id)
f_instance.formulation_data_grid.delete()
# prepare data lines to plot
X, y, data_traces = self.get_formulation_training_data()
# train model to fit data lines
scaler = StandardScaler().fit(X)
# prepare mesh grid to plot
max_t, max_f = np.amax(X, axis=0)
min_t, min_f = np.amin(X, axis=0)
xv, yv = np.meshgrid(np.arange(floor(min_t), ceil(max_t)),
np.arange(floor(min_f), ceil(max_f)),
indexing='ij')
xv = xv.reshape((xv.shape[0], xv.shape[1], -1))
yv = yv.reshape((yv.shape[0], yv.shape[1], -1))
grid_xys = np.concatenate((xv, yv), axis=2).reshape((-1, 2))
# predict z for grid
grid_zs = self.model.predict(scaler.transform(grid_xys)).reshape((-1))
for x, y, z in zip(grid_xys[:, 0], grid_xys[:, 1], grid_zs):
f_instance.formulation_data_grid.append(FormulationDataGrid(x_value=x, y_value=y, z_value=z))
db.session.commit()
评论列表
文章目录