print([name for name in dir(tf.random) if not name.startswith('_')][:20])Dive into Deep Learning · §1.7
APIs change; the skill of looking things up doesn’t
discover · inspect · read · verify.
Motivation
No book covers a whole framework, and the libraries keep changing under us. The durable skill is a four-move loop, run without leaving the notebook, repeated until the call does what you want.
The official docs remain the source of truth: bookmark your framework’s reference and tutorial pages.
Discover
Know roughly where a tool should live, but not its name? dir lists a module’s contents; the names alone sketch what is on offer:
['Algorithm', 'Generator', 'all_candidate_sampler', 'categorical', 'create_rng_state', 'experimental', 'fixed_unigram_candidate_sampler', 'fold_in', ...
Skip the _-prefixed internals. In a notebook, module. + Tab gives the same list, filtered as you type, usually the fastest way to turn up a name.
Inspect · read
help(...) prints the docstring: arguments, defaults, return value, often an example.
In Jupyter, ones? opens the docstring in a side pane, and ones?? shows the source code: the final word when a docstring is terse or ambiguous.
Verify
Docstrings drift out of date; a running call does not lie:
<tf.Tensor: shape=(4,), dtype=float32, numpy=array([1., 1., 1., 1.], dtype=float32)>
Exactly the promised shape and values. This discover → inspect → read → verify loop outlives every function in this book.
Assistants
An assistant usually produces a plausible function and a working call in seconds. Treat the suggestion like a knowledgeable colleague’s tip: a good starting point that still gets a two-line check before you build on it.
Glance at the signature (help / ?), then run a small example. A suggestion that survives both is one you can rely on.
Wrap-up
dir (or Tab-completion).help / ?; read the source with ??.