Skip to content

Instantly share code, notes, and snippets.

@philippjfr
Forked from jlstevens/gist:3994938
Created November 1, 2012 18:23
Show Gist options
  • Save philippjfr/3995537 to your computer and use it in GitHub Desktop.
Save philippjfr/3995537 to your computer and use it in GitHub Desktop.
Displaying activity in IPython notebook
{
"metadata": {
"name": "Better Activity 2"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import topo"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%run -i ./examples/gcal.ty"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"topo.sim.V1"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 4,
"text": [
"LISSOM(allow_skip_non_responding_units=True, apply_output_fns=True, beginning_of_iteration=[], continuous_learning=False, end_of_iteration=[], joint_norm_fn=<function compute_joint_norm_totals_opt at 0x389b758>, layout_location=(300, 100), mask=SheetMask(name='SheetMask00102', print_level=100), mask_init_time=5, measure_maps=True, name='V1', nominal_bounds=BoundingBox(radius=0.5), nominal_density=48.0, output_fns=[HomeostaticResponse(learning_rate=0.01, linear_slope=1.0, name='HomeostaticResponse00100', noise_magnitude=0.10000000000000001, norm_value=None, period=1.0, plastic=True, print_level=100, randomized_init=False, seed=42, smoothing=0.99099999999999999, t_init=0.14999999999999999, target_activity=0.024)], plastic=True, post_initialization_weights_output_fns=[], precedence=0.59999999999999998, print_level=100, row_precedence=0.5, strict_tsettle=None, tsettle=16)"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def imact(objs, size=1.0, show_axes=False, label_name=True, norm_type=0, fig={},\n",
" show={'interpolation':'nearest', 'cmap':plt.cm.gray}):\n",
" \"\"\"\n",
" Displays the activity array of the given list of objects in row format.\n",
"\n",
" size: An overall size factor.\n",
" show_axes: Whether or not to show axes for each subplot.\n",
" label_name: Show the object name above the subplot\n",
" norm_type: 0:No normalization, 1:Individually, 2: Together.\n",
"\n",
" fig: Extra kwargs for the pyplot figure.\n",
" show: Extra kwargs for imshow. Note: norm will override norm_type if set.\n",
" \"\"\"\n",
"\n",
" fig = plt.figure(*fig)\n",
" (width, height) = fig.get_figwidth(), fig.get_figheight()\n",
" fig.set_figwidth(width*size)\n",
" fig.set_figheight(height*size)\n",
" \n",
" if norm==1:\n",
" show= dict({'norm':matplotlib.colors.Normalize()}, **show)\n",
" if norm==2:\n",
" activities = [obj.activity for obj in objs]\n",
" vmax = min(act.max() for act in activities)\n",
" vmin = min(act.min() for act in activities)\n",
" show= dict({'norm':matplotlib.colors.Normalize(vmin=vmin, vmax=vmax)}, **show)\n",
"\n",
" plot_num = len(objs)\n",
" for (i, obj) in enumerate(objs):\n",
" ax = plt.subplot(1,plot_num,i)\n",
" if label_name: plt.title(obj.name)\n",
" if not show_axes:\n",
" ax.yaxis.set_visible(False)\n",
" ax.xaxis.set_visible(False)\n",
" imshow(obj.activity, **show)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"topo.sim.run(1)\n",
"imact([topo.sim.V1,topo.sim.Retina])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAAC1CAYAAAD86CzsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAD3dJREFUeJzt3W1o1fUbx/HP2brbcs7J5jRrLpvLyJuCFEtGmRgDsaJo\nRMYW0YPAGj2L8kFB+aSCIDAI6snyQXcgUoaRJmsIYYRUFEtTly7tRqfurs2Z5//A//U71/npmWs3\n37Nz9n5BnO/O/O38Tju7zvW7zvX9fhPJZDIpAEAQBdk+AQCYSgi6ABAQQRcAAiLoAkBABF0ACIig\nCwABEXTHWUlJiTo6OrJ9GgAmKYKupOrqahUXF6ukpERlZWVqaGhQV1fXZY+755579N5776Xd19PT\no+rq6gk6U2Bi1NfX66WXXrro/m3btmnOnDnauXOnVq1apRkzZujGG2/MwhnmD4KupEQioc8++0w9\nPT1qb2/X/v379fLLL4/oOCAfPPHEE9qyZctF97///vt6/PHHVVpaqqeeekqvv/56Fs4uvxB0Yyor\nK3XffffpwIEDkqSvvvpKt99+u6ZPn66FCxdqx44dkqSNGzeqra1NzzzzjEpKStTc3CxJKigo0KFD\nhyRdeCFv2LBB69atU0lJiW677Tbt378/eqwNGzZo7ty5mjZtmhYvXqxdu3YFfrbABQ888IBOnjyp\ntra26L5Tp05p+/btamxs1LJly7R+/Xqy3HFA0P0/mw3d2dmpHTt26M4779TBgwf18MMP64033lB3\nd7feeecdPfroozp+/Lg2bdqkuro6bd68WT09PXrrrbcu+XM//PBDbdq0SadPn9aiRYv0wgsvRN+7\n++679csvv6i3t1dPP/20HnnkEQ0MDAR5voBXVFSkhoYGtbS0RPd99NFHuuWWW7R48eIsnln+Iejq\nQsB98MEHNX36dFVVVemmm27Sxo0btWXLFq1bt06rV6+WdCFIrlixQp9++mnasZkkEgk99NBDWrJk\niQoLC7V+/Xp9//330fcbGho0bdo0SRey3sLCQv34448T9CyB4TU1NemTTz7R2bNnJUktLS1qamrK\n8lnlH4KuLgTHbdu2qbu7W62trdq9e7e+++47dXZ26uOPP1ZZWVn03549e9I+ZLtcXbeysjIaFxUV\naXBwMPr6lVde0YIFC1RaWqqysjJ1dXWpt7d3/J8gMAIrV65UeXm5tm7dqoMHD+rbb7/VY489lu3T\n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\nTkSuQmCC\n"
}
],
"prompt_number": 20
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"topo.sim."
],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment