pytorch / pages /8_CodeSimulator.py
eaglelandsonce's picture
Rename pages/2_CodeSimulator.py to pages/8_CodeSimulator.py
a9ad1bf verified
raw
history blame
1.64 kB
import streamlit as st
import torch
import io
import sys
# Function to execute the input code and capture print statements
def execute_code(code):
# Redirect stdout to capture print statements
old_stdout = sys.stdout
sys.stdout = mystdout = io.StringIO()
global_vars = {"torch": torch}
local_vars = {}
try:
exec(code, global_vars, local_vars)
output = mystdout.getvalue()
except Exception as e:
output = str(e)
finally:
# Reset redirect.
sys.stdout = old_stdout
return output, local_vars
st.title('PyTorch Code Runner')
# Text area for inputting the PyTorch code
code_input = st.text_area("Enter your PyTorch code here", height=300, value="""# Create two tensors of different shapes
tensor_c = torch.tensor([1, 2, 3])
tensor_d = torch.tensor([[1], [2], [3]])
# Perform addition using broadcasting
tensor_broadcast_add = tensor_c + tensor_d
print("Broadcast Addition:\\n", tensor_broadcast_add)
# Perform element-wise multiplication using broadcasting
tensor_broadcast_mul = tensor_c * tensor_d
print("Broadcast Multiplication:\\n", tensor_broadcast_mul)
""")
# Button to execute the code
if st.button("Run Code"):
# Prepend the import statement
code_to_run = "import torch\n" + code_input
# Execute the code and capture the output
output, variables = execute_code(code_to_run)
# Display the output
st.subheader('Output')
st.text(output)
# Display returned variables
if variables:
st.subheader('Variables')
for key, value in variables.items():
st.text(f"{key}: {value}")