AttributeError: объект 'list' не имеет атрибута '_in_graph_mode' происходит в optimizer.apply_gradients (grads_and_vars) - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь создать простую полностью подключенную нейронную сеть с одним скрытым слоем с наборами данных MNIST.

for epoch in range(training_epoch):
    for step in range(total_step):
        xs = x_train[step*batch_size:(step+1)*batch_size]
        ys = y_train[step*batch_size:(step+1)*batch_size]

        grads = grad(xs, ys, W, B)

        optimizer.apply_gradients(zip(grads, [W, B]))

W и B - это tf. Тип переменной:

Input_Dim = 784
H1_NN = 64
w1 = tf.Variable(tf.random.normal([Input_Dim, H1_NN], mean=0.0, stddev=1.), dtype=tf.float32)
b1 = tf.Variable(tf.zeros([H1_NN]), dtype=tf.float32)
Output_Dim = 10
w2 = tf.Variable(tf.random.normal([H1_NN, Output_Dim], mean=0.0, stddev=1.0), dtype=tf.float32)
b2 = tf.Variable(tf.zeros([Output_Dim]), dtype=tf.float32)
W = [w1, w2]
B = [b1, b2]enter code here

ошибка:

Отслеживание (последний вызов последним): Файл «C: / Users / HSNE_LP22B / PycharmProjects / 浙大 城市 学院 / mnist 手写 数字 识别 _1 隐藏 层 .py ", строка 91, в optimizer.apply_gradients (grads_and_vars) File" C: \ Users \ HSNE_LP22B \ Anaconda3 \ envs \ TF2.1 \ lib \ site-packages \ tensorflow_core \ python \ keras \ optimizer_v2 \ optimizer_v2.py ", строка 434, в файле apply_gradients self._create_slots (var_list)" C: \ Users \ HSNE_LP22B \ Anaconda3 \ envs \ TF2.1 \ lib \ site-packages \ tensorflow_core \ python \ keras \ optimizer_v2 \ adam.py ", строка 149, в _create_slots self.add_slot (var, 'm') File" C: \ Users \ HSNE_LP22B \ Anaconda3 \ envs \ TF2.1 \ lib \ site-packages \ tensorflow_core \ python \ keras \ optimizer_v2 \ optimizer_v2.py ", строка 574, в add_slot var_key = _var_key (var) File" C: \ Users \ HSNE_LP22B \ Anaconda3 \ envs \ TF2.1 \ lib \ site-p ackages \ tensorflow_core \ python \ keras \ optimizer_v2 \ optimizer_v2.py ", строка 1065, в _var_key, если var._in_graph_mode: AttributeError: объект 'list' не имеет атрибута '_in_graph_mode'

Я пробовал с optimizer.apply_gradients(zip(grads, W+B)), но это происходит

тензорный поток. python .framework.errors_impl.InvalidArgumentError: Формы всех входных данных должны совпадать: values ​​[0] .shape = [784 , 64]! = Значения [1] .shape = [64,10] [Op: Pack] имя: упаковано

...