kleine Mathe-Spielereien

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
OSWALD
User
Beiträge: 647
Registriert: Freitag 18. März 2022, 17:32

Immer noch auf das Suche nach verwertbaren synthetischen Daten
habe ich einmal Torch in einer eine MonteCarlo- Simulation verwendet .
Die erhaltenen Tensoren enthalten immer die notwenigen Kommata für eine
direkte Weiterverarbeitung.
Das ist bei numpy-arrays nicht der Fall.
Anbei der direkte Vergleich .

Gute Zeit OSWALD

Code: Alles auswählen


import torch
import matplotlib.pyplot as plt
import numpy as np

# Beispiel  mit TORCH   ergibt  direkt auswertbare  Daten  hier mit  1000 simulierten Endwerten
# plus  zusätzlicher Erweiterung der Datenmengen 

simulation_results = torch.randn(1000) * 10 + 50 # Beispiel-Daten
print("In diesem Tensor  sind die  Einzelwerte  durch Kommata getrennt : " )  
print("und deshalb für eine Weiterverarbeitung direkt verwendbar            : " , simulation_results)

# Tensor in NumPy-Array konvertieren
results_np = simulation_results.numpy()   
print("Nach  der Transformation  in einen numpy-array ")
print("ist das (ohne Kommata ) nicht mehr möglich :" , results_np)

# Histogramm plotten
plt.hist(results_np, bins=50, color='skyblue', edgecolor='black')
plt.title('Monte-Carlo-Simulation: Verteilung der Ergebnisse')
plt.xlabel('Wert')
plt.ylabel('Häufigkeit')
plt.axvline(np.mean(results_np), color='r', linestyle='--', label=f'Mittelwert: {np.mean(results_np):.2f}')
plt.legend()
plt.show()


OSWALD
User
Beiträge: 647
Registriert: Freitag 18. März 2022, 17:32

20.11.2025
Nach dieser Pseudo-Simulation ein weiteres
Beispiel zur synthetischen Datengewinnung.
OSWALD

Code: Alles auswählen


import torch
import numpy as np
import matplotlib.pyplot as plt

# Anzahl der Datenpunkte
n_samples = 100

# Feature (x) generieren: Zufällige Werte
# Wir verwenden torch.randn für eine Normalverteilung
x = torch.randn(n_samples, 3) * 10
print(x)
# Rauschen generieren
noise = torch.randn(n_samples, 1) * 2

# Target (y) generieren: y = 2*x + 5 + Rauschen (lineare Beziehung)
y = 2 * x + 5 + noise

# Visualisierung (optional)
# plt.scatter(x.numpy(), y.numpy())
# plt.xlabel("X")
# plt.ylabel("Y")
# plt.title("Synthetische Daten mit PyTorch")
# plt.show()





OSWALD
User
Beiträge: 647
Registriert: Freitag 18. März 2022, 17:32

20.11.2025
torch bietet zahlreiche Möglichkeiten
zur Generierung von verwertbaren synth. Daten
in beliebiger Menge. ein Beispiel
OSWALD

Code: Alles auswählen

import torch

torch.manual_seed(42) # Setzt den Seed für den CPU-Zufallszahlengenerator
matrix_a = torch.rand(4, 4,2)

torch.manual_seed(42)
matrix_b = torch.rand(6, 6,3)

print("Matrix A (mit Seed 42):\n", matrix_a)
print("Matrix B (mit demselben Seed 42):\n", matrix_b)
# matrix_a und matrix_b werden identisch sein

/code]
OSWALD
User
Beiträge: 647
Registriert: Freitag 18. März 2022, 17:32

21.11.2025
hier noch eine Auswahl zur Gewnerierung von Zufallsdaten mit torch
OSWALD

Code: Alles auswählen

import torch
# Create a 6x8 tensor with random values between 0 and 1
random_list = torch.rand(6,3 , 8)
print(random_list)


import torch
# Create a 2x2 tensor with random values from a normal distribution
normal_tensor = torch.randn(5, 5)
print(normal_tensor)

import torch
# Create a 4x3 tensor with random integers between 0 and 10
integer_tensor = torch.randint(0, 10, (6, 4))
print(integer_tensor)


import torch
# Set the random seed
torch.manual_seed(42)
# Create a 2x3 tensor with random values
seeded_tensor = torch.rand(5, 5)
print(seeded_tensor)




OSWALD
User
Beiträge: 647
Registriert: Freitag 18. März 2022, 17:32

21.11.2025
Hier ist etwas Geduld gefragt.
Mit jedem Start ein neues Bild, solange der Vorrat reicht.
Alles imSub-Bereich von Ki und mit torch.
ODSWAD

Code: Alles auswählen


#              Mit  jedem Start  einn neues Bild  
#              Laden eines Bildes mit Torchvision

import matplotlib.pyplot as plt
from torchvision import transforms
from PIL import Image
import requests
from io import BytesIO

# URL of the image
image_url = 'https://picsum.photos/200/300'

# Download the image
response = requests.get(image_url)
image = Image.open(BytesIO(response.content))

# Define a transform to convert the image to a tensor
transform = transforms.Compose([
    transforms.ToTensor()
])

# Apply the transform to the image
image_tensor = transform(image)

#Anzeigen des Bildes in Pytorch mit matplotlib
import matplotlib.pyplot as plt

# Convert the tensor to channel-last format
image_np = image_tensor.permute(1, 2, 0).numpy()
print("Das ist der Tensor   :",image_np)
print("shape          :  ",image_np.shape)
print("Size             :  ", image_np.size)  
# Display the image
plt.imshow(image_np)
#plt.axis('off')  # Turn off axis labels
plt.show()


Antworten