theano profile
所以我建议的关闭防火墙命令是
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
.. _tut_profiling:
=========================
Profiling Theano function
=========================
.. note::
This method replace the old ProfileMode. Do not use ProfileMode
anymore.
Old:
#vim ~/.theanorc
find [global] add:
Mode = ProfileMode
Besides checking for errors, another important task is to profile your
code in terms of speed and/or memory usage.
You can profile your
functions using either of the following two options:
1. Use Theano flag :attr:`config.profile` to enable profiling.
- To enable the memory profiler use the Theano flag:
:attr:`config.profile_memory` in addition to :attr:`config.profile`.
- Moreover, to enable the profiling of Theano optimization phase,
use the Theano flag: :attr:`config.profile_optimizer` in addition
to :attr:`config.profile`.
- You can also use the Theano flags :attr:`profiling.n_apply`,
:attr:`profiling.n_ops` and :attr:`profiling.min_memory_size`
to modify the quantity of information printed.
#vim ~/.theanorc
find [global]
add
Profile = True
2. Pass the argument :attr:`profile=True` to the function :func:`theano.function <function.function>`. And then call :attr:`f.profile.print_summary()` for a single function.
- Use this option when you want to profile not all the
functions but one or more specific function(s).
- You can also combine the profile of many functions:
.. doctest::
:hide:
profile = theano.compile.ProfileStats()
f = theano.function(..., profile=profile) # doctest: +SKIP
g = theano.function(..., profile=profile) # doctest: +SKIP
... # doctest: +SKIP
profile.print_summary()
if profile is not work:
add lines above is useful......
The profiler will output one profile per Theano function and profile
that is the sum of the printed profiles. Each profile contains 4
sections: global info, class info, Ops info and Apply node info.
In the global section, the "Message" is the name of the Theano
function. theano.function() has an optional parameter ``name`` that
defaults to None. Change it to something else to help you profile many
Theano functions. In that section, we also see the number of times the
function was called (1) and the total time spent in all those
calls. The time spent in Function.fn.__call__ and in thunks is useful
to understand Theano overhead.
to run the example:
THEANO_FLAGS=optimizer_excluding=fusion:inplace,profile=True python doc/tutorial/profiling_example.py
The output:
.. literalinclude:: profiling_example_out.prof