# Learning rate scheduling for Variational Inference

**URL:** <https://discourse.pymc.io/t/learning-rate-scheduling-for-variational-inference/13075>\
**Category:** v5\
**Tags:** variational\_inferenc\
**Created:** [October 10, 2023, 10:47am UTC](https://discourse.pymc.io/t/learning-rate-scheduling-for-variational-inference/13075 "2023-10-10T10:47:09Z")\
**Posts on this page:** 5\
**Page:** 2

<div class="post-metadata">

**Author:** ![alvarop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/alvarop/32/3368_2.png) [@alvarop](https://discourse.pymc.io/u/alvarop)\
**Post date:** [November 14, 2023, 9:08am UTC](https://discourse.pymc.io/t/learning-rate-scheduling-for-variational-inference/13075/21 "2023-11-14T09:08:33Z")

</div>

Hi Jesse,

I’ve got some time again to try and get this done 🙂

I’m getting the following error when trying the print ops: `ValueError: Length of DropDims{axis=0}.0 cannot be determined`.

---

<div class="post-metadata">

**Author:** ![jessegrabowski](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/jessegrabowski/32/5010_2.png) [@jessegrabowski](https://discourse.pymc.io/u/jessegrabowski)\
**Post date:** [November 14, 2023, 12:51pm UTC](https://discourse.pymc.io/t/learning-rate-scheduling-for-variational-inference/13075/22 "2023-11-14T12:51:21Z")

</div>

There’s a typo in my code ☹

`pytensor.printing.Print` creates an Op class instance that you then need to pass `item` into. The class initializer has a single argument, the name of the object being printed. So the correct syntax is:

` loss_or_grads = [pytensor.printing.Print(f'loss_item_{i}')(item) for i, item in enumerate(loss_or_grads)]`

---

<div class="post-metadata">

**Author:** ![alvarop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/alvarop/32/3368_2.png) [@alvarop](https://discourse.pymc.io/u/alvarop)\
**Post date:** [November 14, 2023, 12:57pm UTC](https://discourse.pymc.io/t/learning-rate-scheduling-for-variational-inference/13075/23 "2023-11-14T12:57:16Z")

</div>

Ahh, sorry didn’t notice.

I’ve actually tried using a callback—rather than wrapping the optimiser—and got things working. I kind of like using a callback better, probably because I’m used to keras. Shall I open a PR and move the discussion there?

---

<div class="post-metadata">

**Author:** ![jessegrabowski](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/jessegrabowski/32/5010_2.png) [@jessegrabowski](https://discourse.pymc.io/u/jessegrabowski)\
**Post date:** [November 14, 2023, 12:59pm UTC](https://discourse.pymc.io/t/learning-rate-scheduling-for-variational-inference/13075/24 "2023-11-14T12:59:08Z")

</div>

Yea sounds great, just tag me on the PR

---

<div class="post-metadata">

**Author:** ![alvarop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/alvarop/32/3368_2.png) [@alvarop](https://discourse.pymc.io/u/alvarop)\
**Post date:** [November 14, 2023, 1:31pm UTC](https://discourse.pymc.io/t/learning-rate-scheduling-for-variational-inference/13075/25 "2023-11-14T13:31:22Z")

</div>

Opened an issue: [ENH: Implement learning rate scheduling for variational inference · Issue #7010 · pymc-devs/pymc · GitHub](https://github.com/pymc-devs/pymc/issues/7010)

[Previous page](https://discourse.pymc.io/t/learning-rate-scheduling-for-variational-inference/13075.md?page=1)
