Ich arbeite an einem Bewässerungssystem, bei dem ein Hauptrohr Wasser an mehrere Unterpipes liefert, die jeweils von einem Elektroverfahren (Ein/Aus-Zustand) gesteuert werden. Ein Drucksensor wird auf das Hauptrohr platziert, um den Gesamtwasserdruck zu messen. Kombinationen (Da es 24 = 1624 = 16 Kombinationen gibt). Zustände. > Wäre ein maschinelles Lernmodell geeignet oder gibt es ein besseres physikalisches Modell, das Druck basierend auf Ventilzuständen berechnen kann? Erfahren Sie die Druckmuster: < /p>
import numpy as np
import tensorflow as tf
from tensorflow import lite
from sklearn.model_selection import train_test_split
# Function to log test results
def save_test_result(input_data, predicted_value, file_name="test_results.txt"):
with open(file_name, "a") as f:
f.write(f"Input: {input_data.tolist()} -> Predicted Pressure: {predicted_value:.2f} bars\n")
# 1. Génération de données synthétiques réalistes
def generate_synthetic_data(n_samples=1000):
# États aléatoires des vannes (0 = fermée, 1 = ouverte)
data_x = np.random.randint(0, 2, (n_samples, 4))
# Simulation de la pression en fonction des vannes ouvertes
data_y = np.zeros(n_samples)
for i in range(n_samples):
open_valves = np.sum(data_x[i]) # Nombre de vannes ouvertes
data_y[i] = 4.0 - 0.5 * open_valves + np.random.normal(0, 0.1) # Bruit ajouté
return data_x, data_y
# Génération des données
data_x, data_y = generate_synthetic_data(n_samples=1000)
# Séparation en ensembles d'entraînement et de test
train_x, test_x, train_y, test_y = train_test_split(data_x, data_y, test_size=0.2, random_state=42)
# 2. Création du modèle
model = tf.keras.Sequential([
tf.keras.layers.Dense(16, activation="relu", kernel_regularizer="l2", input_shape=(4,)),
tf.keras.layers.Dropout(0.2), # Réduit le surapprentissage
tf.keras.layers.Dense(8, activation="relu"),
tf.keras.layers.Dense(1) # Sortie : pression prédite
])
# Compilation du modèle
model.compile(optimizer="adam", loss="mse", metrics=["mae"])
# 3. Entraînement du modèle avec validation croisée
history = model.fit(train_x, train_y, epochs=50, validation_split=0.2, verbose=1)
# 4. Évaluation du modèle sur l'ensemble de test
test_loss, test_mae = model.evaluate(test_x, test_y, verbose=0)
print(f"Test Loss: {test_loss:.4f}, Test MAE: {test_mae:.4f}")
# 5. Conversion du modèle en TFLite (optimisé pour l'embarqué)
converter = lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [lite.Optimize.DEFAULT] # Quantification pour réduire la taille
tflite_model = converter.convert()
# Sauvegarde du modèle TFLite
with open("irrigation_model.tflite", "wb") as f:
f.write(tflite_model)
print("Modèle converti en TFLite et sauvegardé !")
# 6. Test de prédiction avec un échantillon
sample_input = np.array([[1, 1, 0, 0]]) # 2 vannes ouvertes
predicted_pressure = model.predict(sample_input).flatten()[0]
print(f"Pression prédite pour {sample_input}: {predicted_pressure:.2f} bars")
# Sauvegarde du test et du résultat dans un fichier
save_test_result(sample_input, predicted_pressure)
print("Résultat du test sauvegardé dans test_results.txt")
Ich arbeite an einem Bewässerungssystem, bei dem ein Hauptrohr Wasser an mehrere Unterpipes liefert, die jeweils von einem Elektroverfahren (Ein/Aus-Zustand) gesteuert werden. Ein Drucksensor wird auf das Hauptrohr platziert, um den Gesamtwasserdruck zu messen. Kombinationen (Da es 24 = 1624 = 16 Kombinationen gibt). Zustände. > Wäre ein maschinelles Lernmodell geeignet oder gibt es ein besseres physikalisches Modell, das Druck basierend auf Ventilzuständen berechnen kann? Erfahren Sie die Druckmuster: < /p> [code]import numpy as np import tensorflow as tf from tensorflow import lite from sklearn.model_selection import train_test_split
# Function to log test results def save_test_result(input_data, predicted_value, file_name="test_results.txt"): with open(file_name, "a") as f: f.write(f"Input: {input_data.tolist()} -> Predicted Pressure: {predicted_value:.2f} bars\n")
# Simulation de la pression en fonction des vannes ouvertes data_y = np.zeros(n_samples) for i in range(n_samples): open_valves = np.sum(data_x[i]) # Nombre de vannes ouvertes data_y[i] = 4.0 - 0.5 * open_valves + np.random.normal(0, 0.1) # Bruit ajouté
return data_x, data_y
# Génération des données data_x, data_y = generate_synthetic_data(n_samples=1000)
# Séparation en ensembles d'entraînement et de test train_x, test_x, train_y, test_y = train_test_split(data_x, data_y, test_size=0.2, random_state=42)
# 2. Création du modèle model = tf.keras.Sequential([ tf.keras.layers.Dense(16, activation="relu", kernel_regularizer="l2", input_shape=(4,)), tf.keras.layers.Dropout(0.2), # Réduit le surapprentissage tf.keras.layers.Dense(8, activation="relu"), tf.keras.layers.Dense(1) # Sortie : pression prédite ])
# Compilation du modèle model.compile(optimizer="adam", loss="mse", metrics=["mae"])
# 3. Entraînement du modèle avec validation croisée history = model.fit(train_x, train_y, epochs=50, validation_split=0.2, verbose=1)
# 4. Évaluation du modèle sur l'ensemble de test test_loss, test_mae = model.evaluate(test_x, test_y, verbose=0) print(f"Test Loss: {test_loss:.4f}, Test MAE: {test_mae:.4f}")
# 5. Conversion du modèle en TFLite (optimisé pour l'embarqué) converter = lite.TFLiteConverter.from_keras_model(model) converter.optimizations = [lite.Optimize.DEFAULT] # Quantification pour réduire la taille tflite_model = converter.convert()
# Sauvegarde du modèle TFLite with open("irrigation_model.tflite", "wb") as f: f.write(tflite_model)
print("Modèle converti en TFLite et sauvegardé !")
# 6. Test de prédiction avec un échantillon sample_input = np.array([[1, 1, 0, 0]]) # 2 vannes ouvertes predicted_pressure = model.predict(sample_input).flatten()[0] print(f"Pression prédite pour {sample_input}: {predicted_pressure:.2f} bars")
# Sauvegarde du test et du résultat dans un fichier save_test_result(sample_input, predicted_pressure) print("Résultat du test sauvegardé dans test_results.txt")
Ich werde es mit einem Beispiel erklären. class Student
{
public int RollId { get; set; }
public string Name { get; set; }
public int StateId { get; set; }
}
Ich versuche, eine nicht-sparige Binärmatrix zu invertieren (mod 2). Ich versuche es mit sehr sehr großen Matriuren wie 100_000 bis 100_000 zu tun. Ich habe Bibliotheken wie Sympy, Numpy, Numba...
scipy.fftpack -Paket bietet eine große Anzahl von Routinen, die sich auf diskrete Fourier -Transformationen beziehen. Ich muss nur die 1. und 2. Ableitung einer Funktion unter Verwendung von DST...