<jupyter_start><jupyter_text>nbTensorFlowPlaygroundFor starters, how far can we get just embedding the TensorFlow playground HTML in an IFrame?Each control in the playground is configurable via a URL fragment; in addition, the display of many of the controls can be suppressed, allowing the activity to be constrained to a particular configuration.<jupyter_code>## Seems to only work properly if we access the playground vian an httpserver
# In terminal root (production container should autorun this)
# nohup python3 -m http.server 8999 --directory tensorflow_playground &<jupyter_output><empty_output><jupyter_text>We can access the page via a `jupyter-server-proxy` path:  Hiding Options and Parameter ValuesHide options are `=true` / `=false`; *none* options can have the argument omitted;Toolbar:- Play buttons:  - `resetButton_hide`:  - `playButton_hide`:  - `stepButton_hide`:- Parameters:  - `learningRate_hide`,  `learningRate` [*0.00001*, *0.0001*, *0.001*, *0.003*, *0.01*, *0.03*, *0.1*, *0.3*, *1*, *3*, *10*];  - `activation_hide`, `activation` [*relu*, *tanh*, *sigmoid*, *linear*];- `regularization_hide`, `regularization` [*none*, *L1*, *L2*];- `regularizationRate_hide`, `regularizationRate` [*0*, *0.001*, *0.001*, *0.003*, *0.01*, *0.01*, *0.03*, *0.1*, *0.3*, *1*, *3*, *10*];- `problem_hide`, `problem` [*classification*, *regression*];Central panel:- `numHiddenLayers_hide`, `networkShape` [ *`int`,`int`*, eg `=4.2`];Left sidebar:- `dataset_hide`, `dataset` [*circle*, *xor*, *gauss*, *spiral*}, `reg_dataset` [*reg-plane*, *reg-gauss*]; this is sensitive to the `problem` selection;- `percTrainData_hide`,  `percTrainData` (`int` in range (0, 100)];- `noise_hide`, `noise` [0..50 step 5];- `batchSize_hide`, `batchSize` [1..30 step 1] (10);Bottom right:- `showTestData_hide`, `showTestData` [*false*, *true*];- `discretize_hide`, `discretize` [*false*, *true*].Other parameters:- `seed` [float 0..1];- `initZero` [`false`, `true`]; initialise hidden and output neuron display to zero; Model featuresShown with default values:- `x=true`- `y=true`- `xTimesY=false`- `xSquared=false`- `ySquared=false`- `cosX=false`- `sinX=false`- `cosY=false`- `sinY=false`<jupyter_code>from IPython.display import IFrame

url = '/proxy/8999/index_min.html#activation=tanh&batchSize=10&dataset=circle&regDataset=reg-plane&learningRate=0.3&regularizationRate=0&noise=40&networkShape=6,3&seed=0.24774&showTestData=true&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&hideText=false'

a  = IFrame(url, height=900, width=1000)
a<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1744916820702403, 'fraction_numerical': 0.04288354898336414, 'mean_word_length': 7.2, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '42428', 'license': 'Apache-2.0', 'n_tokens_mistral': 1024, 'n_tokens_neox': 929, 'n_words': 238, 'path': 'nbPlayground.ipynb', 'repo_name': 'ouseful-backup/playground', 'size': '2705'}