awacke1 commited on
Commit
560f1db
·
1 Parent(s): ea9d80f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +86 -0
app.py ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import torch
3
+ import torch.nn as nn
4
+ import torch.optim as optim
5
+ from keras.models import Sequential
6
+ from keras.layers import Dense
7
+ from keras.optimizers import Adam
8
+
9
+ # Set up Streamlit layout
10
+ st.title("PyTorch vs Keras Comparison")
11
+
12
+ # Define PyTorch model
13
+ class PyTorchModel(nn.Module):
14
+ def __init__(self, input_size, hidden_size, output_size):
15
+ super(PyTorchModel, self).__init__()
16
+ self.fc1 = nn.Linear(input_size, hidden_size)
17
+ self.fc2 = nn.Linear(hidden_size, output_size)
18
+
19
+ def forward(self, x):
20
+ x = torch.relu(self.fc1(x))
21
+ x = self.fc2(x)
22
+ return x
23
+
24
+ # Define Keras model
25
+ def KerasModel(input_size, hidden_size, output_size):
26
+ model = Sequential()
27
+ model.add(Dense(hidden_size, activation='relu', input_shape=(input_size,)))
28
+ model.add(Dense(output_size))
29
+ return model
30
+
31
+ # Define example NLP tasks
32
+ nlp_tasks = {
33
+ 'Task 1: Sentiment Analysis': {
34
+ 'PyTorch': {
35
+ 'model': PyTorchModel(100, 64, 2),
36
+ 'optimizer': optim.Adam,
37
+ },
38
+ 'Keras': {
39
+ 'model': KerasModel(100, 64, 2),
40
+ 'optimizer': Adam,
41
+ }
42
+ },
43
+ 'Task 2: Text Classification': {
44
+ 'PyTorch': {
45
+ 'model': PyTorchModel(200, 128, 5),
46
+ 'optimizer': optim.SGD,
47
+ },
48
+ 'Keras': {
49
+ 'model': KerasModel(200, 128, 5),
50
+ 'optimizer': Adam,
51
+ }
52
+ }
53
+ }
54
+
55
+ # Select NLP task
56
+ task = st.sidebar.selectbox("Select NLP Task", list(nlp_tasks.keys()))
57
+
58
+ # Select framework
59
+ framework = st.sidebar.selectbox("Select Framework", ['PyTorch', 'Keras'])
60
+
61
+ # Get model and optimizer for selected task and framework
62
+ model = nlp_tasks[task][framework]['model']
63
+ optimizer = nlp_tasks[task][framework]['optimizer']
64
+
65
+ # Display model summary
66
+ st.subheader(f"{framework} Model Summary")
67
+ st.text(model)
68
+
69
+ # Display optimizer details
70
+ st.subheader(f"{framework} Optimizer Details")
71
+ st.text(optimizer)
72
+
73
+ # Perform example computations
74
+ if st.button("Perform Computation"):
75
+ # Perform forward pass
76
+ input_data = torch.randn(1, model.fc1.in_features)
77
+ output = model(input_data)
78
+ st.write(f"Output: {output}")
79
+
80
+ # Perform backward pass
81
+ loss = output.mean()
82
+ optimizer = optimizer(model.parameters(), lr=0.01)
83
+ optimizer.zero_grad()
84
+ loss.backward()
85
+ optimizer.step()
86
+ st.write("Backward pass completed.")