Я хочу использовать выходные переменные NN в качестве входных данных в другой функции, но столкнулся с ошибкой, подобной этой: «Только тензоры, созданные явно пользователем (графические листья), поддерживают протокол Deepcopy в данный момент». Для переменных из переменных требуется градиент,
Я попытался изменить выходные переменные на значения numpy, но в этом случае обратное распространение не работает, поскольку он рассматривает значения numpy как переменные, которым не нужен градиент.
output = model(SOC[13])
# Three output values of NN
Rs=output[0]
R1=output[1]
C1=output[2]
# Using these variables in another function
num1=[Rs*R1*C1,R1+Rs]
den1=[C1*R1,1]
G = control.tf(num,den)
Этодолжно работать, но выдает ошибку.
14 num=[Rs*R1*C1,R1+Rs]
15 den=[C1*R1,1]
---> 16 G = control.tf(num,den)
~\Anaconda3\lib\site-packages\control\xferfcn.py in __init__(self, *args)
106
107 """
--> 108 args = deepcopy(args)
109 if len(args) == 2:
110 # The user provided a numerator and a denominator.
~\Anaconda3\lib\site-packages\torch\tensor.py in __deepcopy__(self, memo)
16 def __deepcopy__(self, memo):
17 if not self.is_leaf:
---> 18 raise RuntimeError("Only Tensors created explicitly by the user "
19 "(graph leaves) support the deepcopy protocol at the moment")
20 if id(self) in memo: