Skip to content

Commit

Permalink
api docs
Browse files Browse the repository at this point in the history
  • Loading branch information
dfm committed Nov 20, 2018
1 parent 558a649 commit 9870cb2
Show file tree
Hide file tree
Showing 3 changed files with 170 additions and 4 deletions.
154 changes: 150 additions & 4 deletions docs/_static/notebooks/k2-24-2.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -200,16 +200,16 @@
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"logp = 2,538.2, ||grad|| = 0.30819: 100%|██████████| 29/29 [00:00<00:00, 57.65it/s] \n",
"logp = 3,004.3, ||grad|| = 692.73: 100%|██████████| 54/54 [00:01<00:00, 41.96it/s] \n",
"logp = 4,839.4, ||grad|| = 6,068: 100%|██████████| 695/695 [00:17<00:00, 39.84it/s] \n"
"logp = 2,010.2, ||grad|| = 0.17778: 100%|██████████| 35/35 [00:00<00:00, 63.94it/s] \n",
"logp = 2,204.1, ||grad|| = 0.22811: 100%|██████████| 42/42 [00:00<00:00, 49.04it/s] \n",
"logp = 4,841.4, ||grad|| = 978.65: 100%|██████████| 1249/1249 [00:32<00:00, 37.93it/s]\n"
]
}
],
Expand Down Expand Up @@ -256,6 +256,7 @@
" omega=omega,\n",
" r_star=rstar,\n",
" m_star=mstar,\n",
" b=b,\n",
" )\n",
"\n",
" lc = exoplanet.StarryLightCurve(u, r_star=rstar)\n",
Expand Down Expand Up @@ -290,6 +291,151 @@
"model0, soln0 = build_model()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"with model0:\n",
" result, func, args = exoplanet.utils.eval_in_model(model0.obs, return_func=True, profile=True)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(68.33818922)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"func(*args)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Function profiling\n",
"==================\n",
" Message: /Users/dforeman/research/projects/dfm/exoplanet/exoplanet/utils.py:17\n",
" Time in 2 calls to Function.__call__: 1.670885e-02s\n",
" Time in Function.fn.__call__: 1.658106e-02s (99.235%)\n",
" Time in thunks: 1.629901e-02s (97.547%)\n",
" Total compile time: 1.678204e+00s\n",
" Number of Apply nodes: 144\n",
" Theano Optimizer time: 1.381569e+00s\n",
" Theano validate time: 3.431535e-02s\n",
" Theano Linker time (includes C, CUDA code generation/compiling): 1.467879e-01s\n",
" Import time 5.626464e-02s\n",
" Node make_thunk time 1.410229e-01s\n",
" Node sigmoid(InplaceDimShuffle{x,x,0}.0) time 1.939797e-02s\n",
" Node Elemwise{Composite{(i0 + (i1 * i2))}}(TensorConstant{(1, 1, 1) of 1.0}, sigmoid.0, Elemwise{cos,no_inplace}.0) time 1.499081e-02s\n",
" Node Elemwise{Composite{(i0 - (i1 * (Composite{(i0 * arctan2((sqrt((i1 - i2)) * i3), (sqrt((i1 + i2)) * (i1 + i4))))}(i2, i3, i4, i5, i6) - (scalar_sigmoid(i7) * sin(Composite{(i0 * arctan2((sqrt((i1 - i2)) * i3), (sqrt((i1 + i2)) * (i1 + i4))))}(i2, i3, i4, i5, i6)))) * i8))}}(InplaceDimShuffle{x,x,0}.0, TensorConstant{(1, 1, 1) ..4309189535}, TensorConstant{(1, 1, 1) of 2.0}, TensorConstant{(1, 1, 1) of 1.0}, sigmoid.0, Elemwise{cos,no_inplace}.0, Elemwise{Sin}[(0, 0)].0, InplaceDimShuffle{x,x,0}.0, Elemwise{exp,no_inplace}.0) time 1.413298e-02s\n",
" Node Elemwise{Composite{(i0 - sqr(i1))}}[(0, 1)](TensorConstant{(1, 1, 1) of 1.0}, sigmoid.0) time 1.326609e-02s\n",
" Node Elemwise{Mul}[(0, 0)](Elemwise{Composite{exp(((i0 - i1) - i2))}}.0, Elemwise{exp,no_inplace}.0, Elemwise{exp,no_inplace}.0) time 1.629114e-03s\n",
"\n",
"Time in all call to theano.grad() 3.060994e+01s\n",
"Time since theano import 171.645s\n",
"Class\n",
"---\n",
"<% time> <sum %> <apply time> <time per call> <type> <#call> <#apply> <Class name>\n",
" 49.8% 49.8% 0.008s 4.06e-03s C 2 1 exoplanet.theano_ops.kepler.solver.KeplerOp\n",
" 33.8% 83.5% 0.006s 4.66e-05s C 118 67 theano.tensor.elemwise.Elemwise\n",
" 6.6% 90.2% 0.001s 5.41e-04s C 2 1 exoplanet.theano_ops.starry.limbdark.LimbDarkOp\n",
" 3.7% 93.8% 0.001s 4.99e-05s C 12 6 theano.tensor.basic.Join\n",
" 1.4% 95.3% 0.000s 5.78e-05s C 4 2 theano.tensor.basic.Alloc\n",
" 1.2% 96.5% 0.000s 8.83e-06s Py 22 6 theano.ifelse.IfElse\n",
" 1.2% 97.6% 0.000s 9.61e-05s C 2 1 exoplanet.theano_ops.celerite.solve.SolveOp\n",
" 1.0% 98.6% 0.000s 7.89e-05s C 2 1 exoplanet.theano_ops.celerite.factor.FactorOp\n",
" 0.7% 99.3% 0.000s 1.38e-05s C 8 4 theano.tensor.elemwise.Sum\n",
" 0.4% 99.7% 0.000s 1.19e-06s C 60 31 theano.tensor.elemwise.DimShuffle\n",
" 0.2% 99.9% 0.000s 1.50e-06s C 22 11 theano.tensor.subtensor.Subtensor\n",
" 0.0% 100.0% 0.000s 7.15e-07s C 8 4 theano.tensor.basic.Reshape\n",
" 0.0% 100.0% 0.000s 1.07e-06s C 2 1 theano.compile.ops.Shape_i\n",
" 0.0% 100.0% 0.000s 2.38e-07s C 8 4 theano.compile.ops.Rebroadcast\n",
" 0.0% 100.0% 0.000s 9.54e-07s C 2 3 theano.tensor.opt.MakeVector\n",
" 0.0% 100.0% 0.000s 9.54e-07s C 2 1 exoplanet.theano_ops.starry.get_cl.GetClOp\n",
" ... (remaining 0 Classes account for 0.00%(0.00s) of the runtime)\n",
"\n",
"Ops\n",
"---\n",
"<% time> <sum %> <apply time> <time per call> <type> <#call> <#apply> <Op name>\n",
" 49.8% 49.8% 0.008s 4.06e-03s C 2 1 KeplerOp{tol=1e-08, maxiter=2000}\n",
" 11.4% 61.2% 0.002s 9.28e-04s C 2 1 Elemwise{Composite{(sqrt((sqr(((((i0 * i1 * i2 * i3 * i4) / i5) - ((i0 * i6 * i2 * i3 * i7) / i5)) - i8)) + sqr(((i9 * i10) - i11)))) / i12)}}[(0, 4)]\n",
" 6.6% 67.8% 0.001s 5.41e-04s C 2 1 LimbDarkOp\n",
" 5.1% 72.9% 0.001s 1.03e-04s C 8 4 Elemwise{cos,no_inplace}\n",
" 4.6% 77.4% 0.001s 9.27e-05s C 8 4 Elemwise{Sin}[(0, 0)]\n",
" 3.9% 81.3% 0.001s 3.16e-04s C 2 1 Elemwise{Composite{(((i0 * i1 * i2 * i3 * i4) / i5) + ((i0 * i6 * i2 * i3 * i7) / i5))}}\n",
" 3.7% 85.0% 0.001s 4.99e-05s C 12 6 Join\n",
" 2.2% 87.1% 0.000s 1.78e-04s C 2 1 Elemwise{Composite{(((i0 * i1) - i2) / i3)}}[(0, 1)]\n",
" 1.8% 89.0% 0.000s 4.93e-05s C 6 3 Elemwise{Composite{(i0 + (i1 * i2))}}\n",
" 1.8% 90.8% 0.000s 1.46e-04s C 2 1 Elemwise{Composite{((i0 * (i1 - i2)) / i3)}}\n",
" 1.4% 92.2% 0.000s 5.78e-05s C 4 2 Alloc\n",
" 1.2% 93.4% 0.000s 8.83e-06s Py 22 6 if{inplace}\n",
" 1.2% 94.5% 0.000s 9.61e-05s C 2 1 SolveOp{J=2, n_rhs=1}\n",
" 1.0% 95.5% 0.000s 7.89e-05s C 2 1 FactorOp{J=2, n_rhs=-1}\n",
" 0.9% 96.4% 0.000s 7.34e-05s C 2 1 Elemwise{Mul}[(0, 1)]\n",
" 0.7% 97.1% 0.000s 1.78e-05s C 6 3 Elemwise{second,no_inplace}\n",
" 0.6% 97.7% 0.000s 4.91e-05s C 2 1 Sum{axis=[1, 2], acc_dtype=float64}\n",
" 0.3% 98.0% 0.000s 1.28e-05s C 4 2 Elemwise{Composite{exp((i0 * i1 * i2))}}\n",
" 0.3% 98.2% 0.000s 2.05e-05s C 2 1 Elemwise{Composite{((i0 * i1) + log(i2))}}[(0, 0)]\n",
" 0.2% 98.4% 0.000s 1.44e-06s C 20 10 Subtensor{int64}\n",
" ... (remaining 49 Ops account for 1.59%(0.00s) of the runtime)\n",
"\n",
"Apply\n",
"------\n",
"<% time> <sum %> <apply time> <time per call> <#call> <id> <Apply name>\n",
" 49.8% 49.8% 0.008s 4.06e-03s 2 62 KeplerOp{tol=1e-08, maxiter=2000}(Elemwise{Composite{((i0 * (i1 - i2)) / i3)}}.0, Alloc.0)\n",
" 11.4% 61.2% 0.002s 9.28e-04s 2 100 Elemwise{Composite{(sqrt((sqr(((((i0 * i1 * i2 * i3 * i4) / i5) - ((i0 * i6 * i2 * i3 * i7) / i5)) - i8)) + sqr(((i9 * i10) - i11)))) / i12)}}[(0, 4)](TensorConstant{(1, 1, 1) of -1.0}, Elemwise{cos,no_inplace}.0, Elemwise{Composite{((i0 * i1 * sqr(i2)) ** i3)}}[(0, 2)].0, Elemwise{Composite{(i0 - sqr(i1))}}[(0, 1)].0, Elemwise{cos,no_inplace}.0, Elemwise{Composite{(i0 + (i1 * i2))}}.0, Elemwise{Sin}[(0, 0)].0, Elemwise{Sin}[(0, 0)].0, TensorConstan\n",
" 6.6% 67.8% 0.001s 5.41e-04s 2 109 LimbDarkOp(Elemwise{Composite{((i0 * i1) / i2)}}[(0, 1)].0, Elemwise{Composite{(sqrt((sqr(((((i0 * i1 * i2 * i3 * i4) / i5) - ((i0 * i6 * i2 * i3 * i7) / i5)) - i8)) + sqr(((i9 * i10) - i11)))) / i12)}}[(0, 4)].0, Elemwise{second,no_inplace}.0, Elemwise{Composite{(((i0 * i1) - i2) / i3)}}[(0, 1)].0)\n",
" 4.6% 72.3% 0.001s 3.71e-04s 2 67 Elemwise{cos,no_inplace}(KeplerOp{tol=1e-08, maxiter=2000}.1)\n",
" 4.1% 76.4% 0.001s 3.31e-04s 2 71 Elemwise{Sin}[(0, 0)](KeplerOp{tol=1e-08, maxiter=2000}.1)\n",
" 3.9% 80.3% 0.001s 3.16e-04s 2 88 Elemwise{Composite{(((i0 * i1 * i2 * i3 * i4) / i5) + ((i0 * i6 * i2 * i3 * i7) / i5))}}(TensorConstant{(1, 1, 1) of -1.0}, Elemwise{Sin}[(0, 0)].0, Elemwise{Composite{((i0 * i1 * sqr(i2)) ** i3)}}[(0, 2)].0, Elemwise{Composite{(i0 - sqr(i1))}}[(0, 1)].0, Elemwise{cos,no_inplace}.0, Elemwise{Composite{(i0 + (i1 * i2))}}.0, Elemwise{cos,no_inplace}.0, Elemwise{Sin}[(0, 0)].0)\n",
" 2.2% 82.5% 0.000s 1.78e-04s 2 104 Elemwise{Composite{(((i0 * i1) - i2) / i3)}}[(0, 1)](Elemwise{Sin}[(0, 0)].0, Elemwise{Composite{(((i0 * i1 * i2 * i3 * i4) / i5) + ((i0 * i6 * i2 * i3 * i7) / i5))}}.0, TensorConstant{(1, 1, 1) of 0.0}, Elemwise{exp,no_inplace}.0)\n",
" 2.0% 84.4% 0.000s 1.61e-04s 2 137 Join(TensorConstant{1}, Elemwise{second,no_inplace}.0, Elemwise{Composite{((i0 * i1) + (i2 * i3))}}.0, Elemwise{Composite{((i0 * i1) - (i2 * i3))}}[(0, 1)].0)\n",
" 1.8% 86.2% 0.000s 1.46e-04s 2 55 Elemwise{Composite{((i0 * (i1 - i2)) / i3)}}(TensorConstant{(1, 1, 1) ..5307179586}, TensorConstant{[[[-1.0216..270e+01]]]}, Elemwise{Composite{(i0 - (i1 * (Composite{(i0 * arctan2((sqrt((i1 - i2)) * i3), (sqrt((i1 + i2)) * (i1 + i4))))}(i2, i3, i4, i5, i6) - (scalar_sigmoid(i7) * sin(Composite{(i0 * arctan2((sqrt((i1 - i2)) * i3), (sqrt((i1 + i2)) * (i1 + i4))))}(i2, i3, i4, i5, i6)))) * i8))}}.0, Elemwise{exp,no_inplace}.0)\n",
" 1.8% 88.0% 0.000s 1.46e-04s 2 76 Elemwise{Composite{(i0 + (i1 * i2))}}(TensorConstant{(1, 1, 1) of 1.0}, sigmoid.0, Elemwise{cos,no_inplace}.0)\n",
" 1.4% 89.4% 0.000s 1.13e-04s 2 134 Join(TensorConstant{1}, Elemwise{second,no_inplace}.0, Elemwise{cos,no_inplace}.0, Elemwise{Sin}[(0, 0)].0)\n",
" 1.4% 90.8% 0.000s 1.11e-04s 2 30 Alloc(sigmoid.0, TensorConstant{3515}, TensorConstant{5}, Shape_i{0}.0)\n",
" 1.2% 92.0% 0.000s 9.61e-05s 2 139 SolveOp{J=2, n_rhs=1}(Join.0, Join.0, FactorOp{J=2, n_rhs=-1}.0, FactorOp{J=2, n_rhs=-1}.1, InplaceDimShuffle{0,x}.0)\n",
" 1.0% 92.9% 0.000s 7.89e-05s 2 138 FactorOp{J=2, n_rhs=-1}(Alloc.0, Join.0, Join.0, Join.0)\n",
" 0.9% 93.8% 0.000s 7.34e-05s 2 114 Elemwise{Mul}[(0, 1)](TensorConstant{[[[0.08333..8333333]]]}, LimbDarkOp.0)\n",
" 0.6% 94.5% 0.000s 4.99e-05s 2 89 Elemwise{second,no_inplace}(TensorConstant{(1, 3515, .. 1) of 0.0}, InplaceDimShuffle{x,x,x,0}.0)\n",
" 0.6% 95.1% 0.000s 4.91e-05s 2 119 Sum{axis=[1, 2], acc_dtype=float64}(Elemwise{Mul}[(0, 1)].0)\n",
" 0.5% 95.5% 0.000s 3.90e-05s 2 133 Elemwise{Sin}[(0, 0)](Elemwise{mul,no_inplace}.0)\n",
" 0.5% 96.0% 0.000s 3.90e-05s 2 131 Elemwise{cos,no_inplace}(Elemwise{mul,no_inplace}.0)\n",
" 0.3% 96.4% 0.000s 1.41e-05s 4 74 if{inplace}(Elemwise{lt,no_inplace}.0, Elemwise{Mul}[(0, 4)].0, TensorConstant{[]})\n",
" ... (remaining 124 Apply instances account for 3.64%(0.00s) of the runtime)\n",
"\n",
"Here are tips to potentially make your code run faster\n",
" (if you think of new ones, suggest them on the mailing list).\n",
" Test them first, as they are not guaranteed to always provide a speedup.\n",
" - Try the Theano flag floatX=float32\n",
"We don't know if amdlibm will accelerate this scalar op. arctan2\n",
"We don't know if amdlibm will accelerate this scalar op. arccos\n",
" - Try installing amdlibm and set the Theano flag lib.amdlibm=True. This speeds up only some Elemwise operation.\n"
]
}
],
"source": [
"func.profile.summary()"
]
},
{
"cell_type": "code",
"execution_count": 6,
Expand Down
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ exoplanet

<p>
<a href="https://travis-ci.org/dfm/exoplanet"><img src="https://img.shields.io/travis/dfm/exoplanet/master.svg?style=flat"/></a>
<a href="https://travis-ci.org/dfm/exoplanet"><img src="https://img.shields.io/readthedocs/exoplanet.svg?style=flat"/></a>
<br>
<a href="https://rodluger.github.io/starry"><img src="https://img.shields.io/badge/powered_by-starry-EB5368.svg?style=flat"/></a>
<a href="https://celerite.readthedocs.io"><img src="https://img.shields.io/badge/powered_by-celerite-EB5368.svg?style=flat"/></a>
Expand Down
19 changes: 19 additions & 0 deletions docs/user/api.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
.. module:: exoplanet

.. _api:

API documentation
=================

Orbits
------

.. autoclass:: exoplanet.orbits.KeplerianOrbit
:inherited-members:

Light curve models
------------------

.. autoclass:: exoplanet.light_curve.StarryLightCurve
:inherited-members:

0 comments on commit 9870cb2

Please sign in to comment.