Skip to content

Instantly share code, notes, and snippets.

@arokem
Created December 9, 2014 23:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arokem/f91d436af3f0d3084af4 to your computer and use it in GitHub Desktop.
Save arokem/f91d436af3f0d3084af4 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "",
"signature": "sha256:254e40cc50e34253609dcc8cfc24637c6753a05d8eb956e7f5ebdc58625f0c90"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"%load_ext memory_profiler"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from dipy.data import read_stanford_labels\n",
"import nibabel as nib\n",
"hardi_img, gtab, labels_img = read_stanford_labels()\n",
"data = hardi_img.get_data()\n",
"candidate_sl = [s[0] for s in nib.trackvis.read(\n",
" '/Users/arokem/source/dipy/doc/examples/lr-superiorfrontal.trk',\n",
" points_space='voxel')[0]]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Dataset is already in place. If you want to fetch it again, please first remove the folder /Users/arokem/.dipy/stanford_hardi \n",
"All files already in /Users/arokem/.dipy/stanford_hardi."
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"candidate_sl = candidate_sl * 6"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import dipy.tracking.life as life\n",
"fiber_model = life.FiberModel(gtab)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"len(candidate_sl)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"55188"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for i in np.arange(0, 16):\n",
" this = 2 ** i\n",
" print(\"Number of streamlines: %s\"%this)\n",
" %memit fiber_fit = fiber_model.fit(data, candidate_sl[:this], affine=np.eye(4))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Number of streamlines: 1\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"/Users/arokem/anaconda3/envs/py2/lib/python2.7/site-packages/memory_profiler.py:68: UserWarning: psutil module not found. memory_profiler will be slow\n",
" warnings.warn(\"psutil module not found. memory_profiler will be slow\")\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 353.93 MiB, increment: 2.70 MiB\n",
"Number of streamlines: 2\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 355.88 MiB, increment: 1.95 MiB\n",
"Number of streamlines: 4\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 356.99 MiB, increment: 1.11 MiB\n",
"Number of streamlines: 8\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 347.34 MiB, increment: 4.05 MiB\n",
"Number of streamlines: 16\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 297.30 MiB, increment: 8.16 MiB\n",
"Number of streamlines: 32\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 316.82 MiB, increment: 20.69 MiB\n",
"Number of streamlines: 64\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 348.77 MiB, increment: 37.71 MiB\n",
"Number of streamlines: 128\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 439.76 MiB, increment: 99.91 MiB\n",
"Number of streamlines: 256\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 547.12 MiB, increment: 156.11 MiB\n",
"Number of streamlines: 512\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 805.96 MiB, increment: 359.49 MiB\n",
"Number of streamlines: 1024\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 1322.99 MiB, increment: 891.96 MiB\n",
"Number of streamlines: 2048\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 2254.77 MiB, increment: 1688.54 MiB\n",
"Number of streamlines: 4096\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 3012.15 MiB, increment: 2189.89 MiB\n",
"Number of streamlines: 8192\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 4300.14 MiB, increment: 3414.67 MiB\n",
"Number of streamlines: 16384\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 4553.35 MiB, increment: 3113.25 MiB\n",
"Number of streamlines: 32768\n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"peak memory: 4592.92 MiB, increment: 1854.17 MiB\n"
]
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"m = [353.93, 355.88, 356.99, 347.34, 297.30, 316.82, 348.77, \n",
" 439.76, 547.12, 805.96, 1322.99, 2254.77, 3012.15, 4300.14, 4553.35, 4592.92] "
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig, ax = plt.subplots()\n",
"ax.plot(2 ** np.arange(16), m, 'o-')\n",
"ax.set_ylabel('Memory usage (MiB)')\n",
"ax.set_xlabel('# streamlines')\n",
"p = np.polyfit(2 ** np.arange(16), m, 1)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nFV9HA/p3AB8C7gW+HhHLShZVETQ0zGfq1Lk8+mgP9tuvmYaGkZxxxslZh2VmVpU6GnPZBrzdznkR\nEXsULaqd1N6YS0PDfMaNm0NT0+R36+rqJjJlyignGDOraVmMuXSLiP7tPMousXRk6tS52yUWgKam\nyUybNi+jiMzMqltNLNu4eXPbvX+bNnUvcSRmZrWhJpJL797Nbdb36bO1xJGYmdWGmkguY8eOpK5u\n4nZ1dXUTGDPmtIwiMjOrbnntRFkpOrqJ8he/mM+5587jhBO606/fVsaMOc2D+WZW8zJbuLJa7Lff\nyRx11Mk8+GDWkZiZVb+a6BYDWLwYjj8+6yjMzGpDzSSXRYtgxIisozAzqw01k1zccjEzK52aGNB/\n7TUYMgQ2bIDuvrXFzOxdJb9Dv5o8/DAMH+7EYmZWKkVNLpL+U9I6Scty6gZJmifpWUlzJQ3Iee1q\nSSskPS1pZE79cEnL0temdDUOd4mZmZVWsVsuPwZGt6obD8yLiMOA+9PnSBoGnA8MS8+ZLqmlqXYz\ncFlEDAWGSmr9nh1ycjEzK62iJpeIeBDY0Kr6TGBGWp4BnJ2WzyLZ6XJLRKwi2ZxshKR9gf4RsTg9\n7vacc/KIwTPFzMxKLYsxl8ERsS4trwMGp+X9gNU5x60G9m+jfk1an5fnn4cePWD/vM8wM7Ndlekd\n+hERkgo6XW3SpEnvluvr61m/vp7jjwcVfC6EmVnlaWxspLGxsejXKfpUZElDgHsi4sj0+dNAfUSs\nTbu8HoiID0oaDxAR306Puw+4Dng+PebwtP6zwCkR8fk2rrXDVOR//EfYay+4+upifUIzs8pVTVOR\nZwMXp+WLgbtz6i+Q1EvSwcBQYHFErAXelDQiHeC/MOecTnkw38ys9IracpE0EzgF2ItkfOWfgV8C\ndwEHAauA8yLi9fT4CcClQDMwLiLmpPXDgduAvsC9ETG2nett13JpboYBA2DNGthzz2J8QjOzylas\nlktV36G/dCn87d/Ck09mGJSZWRmrpm6xknGXmJlZNqpyP5eGhvlMnTqXJ57owcCBzTQ0jPTGYGZm\nJVR1yaWhYT7jxs2hqWkyAGvXwrhxyRbHTjBmZqVRdd1iU6fOfTextGhqmsy0afMyisjMrPZUXXLZ\nvLntxtimTV4S2cysVKouufTu3dxmfZ8+W0sciZlZ7aq65DJ27Ejq6iZuV1dXN4ExY07LKCIzs9pT\n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\nMTOzgvv/zBvfHDVOFs0AAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x11dfef910>"
]
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment