private void Recall(bool reconstruct) { string[] sp = textBox1.Text.Split(','); if (sp.Length != 2) { label1.Text = "You need to enter <neuron>,<layer>!"; label1.Refresh(); return; } try { int neuron = int.Parse(sp[0]); int layer = int.Parse(sp[1]); string c = (layer == LAYERS.Length - 1) ? listBox1.Items[neuron].ToString() : "(not a category)"; double[] a = (reconstruct) ? new double[LAYERS[layer]] : new double[NUM_CATEGORIES]; a[neuron] = 1; double[] r = (reconstruct) ? _network.Reconstruct(a, layer) : _network.GenerateInput(a); Bitmap bm; _atoi.Convert(r, out bm); label1.Text = "Reconstructing " + c + ", length of reconstruction: " + r.Length; label1.Refresh(); pictureBox1.Image = bm; pictureBox1.Refresh(); } catch (Exception ex) { label1.Text = ex.Message + "\n" + ex.StackTrace + "\n"; label1.Text += "Reconstruction input params invalid. neuron should be < size of layer."; label1.Refresh(); } }