SimpleNN / app.py
ricardo-lsantos's picture
fix download button
5bda5fb
raw
history blame
No virus
1.59 kB
import streamlit as st
import json
from nn import train, predict, save_model, sigmoid
# INPUTS = [[0,0],[0,1],[1,0],[1,1]]
# OUTPUTS = [[0],[1],[1],[0]]
# EPOCHS = 1000000
# ALPHAS = 20
INPUTS = [[0,0],[0,1],[1,0],[1,1]]
OUTPUTS = [[0],[1],[1],[0]]
def runNN(epoch, alpha):
# Train model
modelo = train(epochs=epoch, alpha=alpha)
print(modelo)
# Save model to file
# save_model(modelo, "modelo.json")
st.download_button(
label="Download model",
data=json.dumps(modelo),
file_name="modelo.json",
mime="application/json",
)
for i in range(4):
result = predict(INPUTS[i][0],INPUTS[i][1], activation=sigmoid)
st.write("for input", INPUTS[i], "expected", OUTPUTS[i][0], "predicted", f"{result:4.4}", "which is", "correct" if round(result)==OUTPUTS[i][0] else "incorrect")
def sidebar():
# Neural network controls
st.sidebar.header('Neural Network Controls')
st.sidebar.text('Number of epochs')
epochs = st.sidebar.slider('Epochs', 1000, 1000000, 100000)
st.sidebar.text('Learning rate')
alphas = st.sidebar.slider('Alphas', 1, 100, 20)
if st.sidebar.button('Run Neural Network'):
runNN(epochs, alphas)
def app():
st.title('Simple Neural Network App')
st.write('This is the Neural Network image we are trying to implement!')
st.image('nn.png', width=500)
sidebar()
st.markdown('''
### References
* https://www.codingame.com/playgrounds/59631/neural-network-xor-example-from-scratch-no-libs
''')
if __name__ == '__main__':
app()