Spaces:
Runtime error
Runtime error
import streamlit as st | |
import torch | |
import torch.nn as nn | |
import torch.optim as optim | |
from keras.models import Sequential | |
from keras.layers import Dense | |
from keras.optimizers import Adam | |
# Set up Streamlit layout | |
st.title("PyTorch vs Keras Comparison") | |
# Define PyTorch model | |
class PyTorchModel(nn.Module): | |
def __init__(self, input_size, hidden_size, output_size): | |
super(PyTorchModel, self).__init__() | |
self.fc1 = nn.Linear(input_size, hidden_size) | |
self.fc2 = nn.Linear(hidden_size, output_size) | |
def forward(self, x): | |
x = torch.relu(self.fc1(x)) | |
x = self.fc2(x) | |
return x | |
# Define Keras model | |
def KerasModel(input_size, hidden_size, output_size): | |
model = Sequential() | |
model.add(Dense(hidden_size, activation='relu', input_shape=(input_size,))) | |
model.add(Dense(output_size)) | |
return model | |
# Define example NLP tasks | |
nlp_tasks = { | |
'Task 1: Sentiment Analysis': { | |
'PyTorch': { | |
'model': PyTorchModel(100, 64, 2), | |
'optimizer': optim.Adam, | |
}, | |
'Keras': { | |
'model': KerasModel(100, 64, 2), | |
'optimizer': Adam, | |
} | |
}, | |
'Task 2: Text Classification': { | |
'PyTorch': { | |
'model': PyTorchModel(200, 128, 5), | |
'optimizer': optim.SGD, | |
}, | |
'Keras': { | |
'model': KerasModel(200, 128, 5), | |
'optimizer': Adam, | |
} | |
} | |
} | |
# Select NLP task | |
task = st.sidebar.selectbox("Select NLP Task", list(nlp_tasks.keys())) | |
# Select framework | |
framework = st.sidebar.selectbox("Select Framework", ['PyTorch', 'Keras']) | |
# Get model and optimizer for selected task and framework | |
model = nlp_tasks[task][framework]['model'] | |
optimizer = nlp_tasks[task][framework]['optimizer'] | |
# Display model summary | |
st.subheader(f"{framework} Model Summary") | |
st.text(model) | |
# Display optimizer details | |
st.subheader(f"{framework} Optimizer Details") | |
st.text(optimizer) | |
# Perform example computations | |
if st.button("Perform Computation"): | |
# Perform forward pass | |
input_data = torch.randn(1, model.fc1.in_features) | |
output = model(input_data) | |
st.write(f"Output: {output}") | |
# Perform backward pass | |
loss = output.mean() | |
optimizer = optimizer(model.parameters(), lr=0.01) | |
optimizer.zero_grad() | |
loss.backward() | |
optimizer.step() | |
st.write("Backward pass completed.") |