<p>According to this paper <a href="https://arxiv.org/abs/1512.05287" rel="noreferrer">https://arxiv.org/abs/1512.05287</a> that is used for implementation of the <strong>variational_recurrent</strong> dropouts, you can think about as follows,</p>

<ul>
<li><p><code>input_keep_prob</code> - probability that dropping out input connections.</p></li>
<li><p><code>output_keep_prob</code> - probability that dropping out output connections.</p></li>
<li><code>state_keep_prob</code> - Probability that droping out recurrent connections.</li>
</ul>

<p>See the diagram below, </p>

<p><a href="https://i.stack.imgur.com/VJQ3I.png" rel="noreferrer"><img src="https://i.stack.imgur.com/VJQ3I.png" alt="enter image description here"></a></p>

<p>If you set the <code>variational_recurrent</code> to be true you will get an <strong>RNN</strong> that's similar to the model in right and otherwise in left.</p>

<p>The basic differences in above two models are,</p>

<ul>
<li><p><strong>Variational RNN</strong> repeats the same dropout mask at each time
step for both <strong>inputs</strong>, <strong>outputs</strong>, and <strong>recurrent layers</strong> (drop
the same network units at each time step).</p></li>
<li><p><strong>Native RNN</strong> uses different dropout masks at each time step for the
<strong>inputs</strong> and <strong>outputs</strong> alone (no dropout is used with the recurrent
connections since the use of different masks with these connections
leads to deteriorated performance).</p></li>
</ul>

<p>In the above diagram, coloured connections represent the dropped-out connections, with different colours corresponding to different dropout masks. Dashed lines correspond to standard connections with no dropout.</p>

<p>Therefore, if you use a <strong>variational RNN</strong> you can set all three probability parameters according to your requirement.</p>

<p>Hope this helps.</p>
tensorflow - how to use variational recurrent dropout correctly
<p>The tensorflow <a href="https://www.tensorflow.org/api_docs/python/tf/contrib/rnn/DropoutWrapper" rel="nofollow noreferrer">config dropout wrapper</a> has three different dropout probabilities that can be set: <code>input_keep_prob, output_keep_prob, state_keep_prob</code>. </p>

<p>I want to use variational dropout for my LSTM units, by setting the <code>variational_recurrent</code> argument to true. However, I don't know which of the three dropout probabilities I have to use for variational dropout to function correctly. </p>

<p>Can someone provide help?</p>