Spaces:
Running
Running
File size: 2,789 Bytes
728a6ed 5bd77b5 8bb6bcc 7f1aca2 4b990c7 a0a3cb8 7f1aca2 f39a294 5201e45 96f874d 027697d 5201e45 96f874d 027697d f39a294 96f874d 027697d 96f874d 628bb6f 731de2f 628bb6f e16c1f3 7b64b2c 7d34933 027697d 6fa5810 8079e07 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# https://github.com/google-research/tensorflow-coder/blob/master/tf_coder/tf_coder_main.py
import streamlit as st
from tf_coder.value_search import colab_interface, value_search_settings
import io
from contextlib import redirect_stdout
from streamlit_ace import st_ace
st.set_page_config(page_icon='π©βπ»', layout="wide", initial_sidebar_state="collapsed")
col1, col2, col3 = st.columns([5, 5, 3])
with col1:
st.write('#### Inputs')
inputs = st_ace(placeholder="The input tensor(s) specified as a dictionary", value="{'rows': [10, 20, 30],\n'cols': [1,2,3,4]}", language="python", theme="solarized_dark", auto_update=True)
with col2:
st.write('#### Output')
output = st_ace(placeholder="The output tensor", value="[[11, 12, 13, 14],\n[21, 22, 23, 24],\n[31, 32, 33, 34]]", language="python", theme="solarized_dark", auto_update=True)
with col3:
st.write('#### Constants')
constants = st_ace(placeholder="Optional list of scalar constants", value="[]", language="python", theme="solarized_dark", auto_update=True)
st.write("#### Description")
description = st.text_input(label="", placeholder="An optional natural language description of the operation", value="add two vectors with broadcasting to get a matrix")
with st.expander("βοΈ Search Options", expanded=False):
settings_kwargs = dict()
settings_kwargs["require_all_inputs_used"] = st.checkbox("Require All Inputs", value=True)
settings_kwargs["only_minimal_solutions"] = st.checkbox("Only Minimal Solutions", value=False)
settings_kwargs["max_solutions"] = st.slider("Maximum number of solutions", value=1, min_value=1, step=1, max_value=256)
settings_kwargs["timeout"] = st.slider("Timeout in seconds", value=300, min_value=1, step=10, max_value=300)
if st.button("π Search for Tensor Ops!"):
i = eval(inputs)
o = eval(output)
c = eval(constants)
settings = value_search_settings.from_dict({
'timeout': settings_kwargs["timeout"],
'only_minimal_solutions': settings_kwargs["only_minimal_solutions"],
'max_solutions': settings_kwargs["max_solutions"],
'require_all_inputs_used': settings_kwargs["require_all_inputs_used"],
'require_one_input_used': not settings_kwargs["require_all_inputs_used"],
})
with st.spinner("Searching for solution..."):
with io.StringIO() as buf, redirect_stdout(buf):
results = colab_interface.run_value_search_from_colab(i, o, c, description, settings)
stdout = buf.getvalue()
st.code(stdout, language='bash')
st.write(dir(results.benchmark))
st.write(results.index())
for solution in results.solution:
st.code(solution, language='python')
st.write(results.total_time)
st.code(results.statistics) |