Untitled 32
Untitled 32
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM, Dropout, InputLayer
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.regularizers import l2
# Load dataset
df = pd.read_excel("dataset_28112024new.xlsx")
df = df.loc[:, ~df.columns.str.contains('^Unnamed')]
# Define input/output
input_cols = ['Ao', 'GBW', 'PM', 'CMRR', 'PSRR']
output_cols = ['W1,2 (um)', 'W3,4 (um)', 'W5,8 (um)', 'W6 (um)', 'W7
(um)']
X = df[input_cols]
y = df[output_cols]
# Normalize
scaler_X = StandardScaler()
scaler_y = StandardScaler()
X_scaled = scaler_X.fit_transform(X)
y_scaled = scaler_y.fit_transform(y)
# Train-test split
X_train, X_test, y_train, y_test = train_test_split(X_scaled,
y_scaled, test_size=0.1, random_state=42)
plt.figure(figsize=(10, 5))
plt.bar(x - 1.5*width, 1 - np.array(match_rate_dnn_paper), width,
label='DNN (paper)', color='blue')
plt.bar(x - 0.5*width, 1 - np.array(match_rate_dnn_pred[:5]), width,
label='DNN (dataset)', color='skyblue')
plt.bar(x + 0.5*width, 1 - np.array(match_rate_rnn_paper), width,
label='RNN (paper)', color='green')
plt.bar(x + 1.5*width, 1 - np.array(match_rate_rnn_pred[:5]), width,
label='RNN (dataset)', color='lightgreen')
plt.xticks(x, specs)
plt.ylabel("Relative Error")
plt.title("Relative Error Comparison: Paper vs Dataset Prediction")
plt.legend()
plt.grid(True, axis='y', linestyle='--')
plt.tight_layout()
plt.show()