Это ошибка, которую я получил сегодня при импорте pymc, который я только что обновил. До обновления все работало нормально, но в любом случае ошибка возникает, потому что pymc\variational\opvi.py пытается импортировать «unbroadcast» из pytensor\tensor\shape, но функция «unbroadcast» не существует! Я исправил это следующим образом: сначала я прокомментировал строку импорта, затем изменил следующую строку (строка 1105 в opvi.py):
Код: Выделить всё
initial = unbroadcast(initial, *unbroadcast_axes)
кому:
Код: Выделить всё
for ax in unbroadcast_axes:
initial = pt.Rebroadcast((ax, False))(initial)
При этом pymc, кажется, работает нормально. Тем не менее, я опубликовал это как на случай, если другие столкнутся с той же проблемой, так и для того, чтобы спросить, действительно ли это исправление правильное, потому что это исправление, созданное ИИ, которому я не доверяю. Кроме того, у меня нет абсолютно никакого опыта работы с pymc, и я только начинаю изучать pymc.
У меня pymc версии 5.23.0, pytensor версии 2.31.7, это произошло сегодня, когда я установил pymc-extras, и я использую Mamba в качестве менеджера пакетов и программирую на VScode.
Редактировать: если попробую, еще одна странность для импорта pymc_extras происходит следующее:
AttributeError: модуль 'pymc' не имеет атрибута 'distributions'
Поскольку pymc_extras\distributions\discrete.py имеет следующее в строке 109:
Код: Выделить всё
class GeneralizedPoisson(pm.distributions.Discrete):
Так получилось, что в файлах pymc есть папка с именем дистрибутивы, которая содержит файл с именем дистрибутив.py, в котором определен дискретный класс (строка 633), но все же, заменив приведенное выше на pm.distribution
Редактировать 2: игнорировать редактирование, просто похоже, что этот конкретный блокнот вёл себя странно, я скопировал что-то в другой блокнот, и это не дало этого ошибка.
Подробнее здесь:
https://stackoverflow.com/questions/798 ... shape-when