Skip to content

Instantly share code, notes, and snippets.

@bmcfee
Created May 10, 2017 19:41
Show Gist options
  • Save bmcfee/089ff8f68aff89b0ec18f583f54f0de2 to your computer and use it in GitHub Desktop.
Save bmcfee/089ff8f68aff89b0ec18f583f54f0de2 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pumpp\n",
"import h5py"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"C = pumpp.feature.CQT(name='cqt', sr=44100, hop_length=4096, log=True, conv='tf')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"B = pumpp.task.BeatTransformer(sr=44100, hop_length=4096)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"P = pumpp.Pump(C, B)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"datum = P('/home/bmcfee/data/MedleyDB_sample/Audio/LizNelson_Rainfall/LizNelson_Rainfall_MIX.wav')"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'beat/_valid': array([[0, 0]]), 'beat/beat': array([[[False],\n",
" [False],\n",
" [False],\n",
" ..., \n",
" [False],\n",
" [False],\n",
" [False]]], dtype=bool), 'beat/downbeat': array([[[False],\n",
" [False],\n",
" [False],\n",
" ..., \n",
" [False],\n",
" [False],\n",
" [False]]], dtype=bool), 'beat/mask_downbeat': array([False], dtype=bool), 'cqt/mag': array([[[[-60.45588684],\n",
" [-56.91991043],\n",
" [-64.60596466],\n",
" ..., \n",
" [-80. ],\n",
" [-80. ],\n",
" [-80. ]],\n",
" \n",
" [[-60.5687294 ],\n",
" [-57.38772202],\n",
" [-61.41232681],\n",
" ..., \n",
" [-80. ],\n",
" [-80. ],\n",
" [-80. ]],\n",
" \n",
" [[-61.04840088],\n",
" [-58.86682129],\n",
" [-57.50798798],\n",
" ..., \n",
" [-75.88668823],\n",
" [-74.88679504],\n",
" [-70.69407654]],\n",
" \n",
" ..., \n",
" [[-65.34263611],\n",
" [-60.15421295],\n",
" [-59.2531662 ],\n",
" ..., \n",
" [-80. ],\n",
" [-80. ],\n",
" [-80. ]],\n",
" \n",
" [[-65.20644379],\n",
" [-61.90522385],\n",
" [-57.836483 ],\n",
" ..., \n",
" [-80. ],\n",
" [-80. ],\n",
" [-80. ]],\n",
" \n",
" [[-65.43597412],\n",
" [-64.44393921],\n",
" [-57.01498795],\n",
" ..., \n",
" [-80. ],\n",
" [-80. ],\n",
" [-80. ]]]], dtype=float32), 'cqt/phase': array([[[[ 1.40390837e+00],\n",
" [ 1.50876081e+00],\n",
" [ 1.53741777e+00],\n",
" ..., \n",
" [ 1.91018534e+00],\n",
" [ 1.60638404e+00],\n",
" [ -5.47881901e-01]],\n",
" \n",
" [[ 1.21011412e+00],\n",
" [ 7.63346970e-01],\n",
" [ 1.21743667e+00],\n",
" ..., \n",
" [ 9.93008493e-04],\n",
" [ -7.67094553e-01],\n",
" [ 5.39158344e-01]],\n",
" \n",
" [[ 9.93348539e-01],\n",
" [ -1.74790490e-02],\n",
" [ 3.73399168e-01],\n",
" ..., \n",
" [ -5.14139295e-01],\n",
" [ 1.18385446e+00],\n",
" [ 2.87618685e+00]],\n",
" \n",
" ..., \n",
" [[ 1.70295131e+00],\n",
" [ 1.21126425e+00],\n",
" [ 1.33812416e+00],\n",
" ..., \n",
" [ 2.14315009e+00],\n",
" [ 1.38004375e+00],\n",
" [ -2.85812318e-01]],\n",
" \n",
" [[ 1.37173688e+00],\n",
" [ 4.30214912e-01],\n",
" [ 3.83782387e-01],\n",
" ..., \n",
" [ 2.80652738e+00],\n",
" [ 2.77391362e+00],\n",
" [ -3.04661632e+00]],\n",
" \n",
" [[ 1.11487710e+00],\n",
" [ -4.43137944e-01],\n",
" [ -6.32018566e-01],\n",
" ..., \n",
" [ -2.12892151e+00],\n",
" [ -1.42968285e+00],\n",
" [ -1.63801491e-01]]]], dtype=float32)}"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datum"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"with h5py.File('/tmp/arr.h5', mode='w') as hf:\n",
" hf.update(datum)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"np.savez('/tmp/arr.npz', **datum)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.13 ms ± 42.6 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
]
}
],
"source": [
"%%timeit \n",
"with h5py.File('/tmp/arr.h5', mode='r', ) as hf:\n",
" cqt = hf['cqt/phase'].value"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6.17 ms ± 40.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"%%timeit \n",
"with np.load('/tmp/arr.npz') as nf:\n",
" cqt = nf['cqt/phase']"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-rw-rw-r-- 1 bmcfee bmcfee 7078759 Apr 28 16:35 /tmp/arr.h5\r\n",
"-rw-rw-r-- 1 bmcfee bmcfee 7073691 Apr 28 16:35 /tmp/arr.npz\r\n"
]
}
],
"source": [
"!ls -l /tmp/arr.*"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import crema.utils"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = crema.utils.load_h5('/tmp/arr.h5')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.26 ms ± 59.5 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"%%timeit\n",
"data = crema.utils.load_h5('/tmp/arr.h5')"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"13.2 ms ± 31.6 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"%%timeit\n",
"data = dict(np.load('/tmp/arr.npz'))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data1 = dict(np.load('/tmp/arr.npz'))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data2 = crema.utils.load_h5('/tmp/arr.h5')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data1.keys() == data2.keys()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all([np.allclose(data1[k], data2[k]) for k in data1])"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.5",
"language": "python",
"name": "python3.5"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment