RNN doubt in implementation vs theory

RNN - as per the lectures, Si = sigmoid ( UXi + WSi-1 + b ) and Output = O( VSi + c)

In code,

hidden = i2h(input+hidden concatenation)

output = i2o(input+hidden concatenation) ( different sets of weights as compared to i2h)

How does one correlate these? is hidden same as Si? In that case why is output not V*hidden but a totally different set of weights applied to input+hidden concatenation?

Hi @tejaswi_lakshmi,
Please refer this thread: Query regarding RNN implementation using nn.Linear