InvalidArgumentError: журналы и метки тензорного потока все еще не транслируются - PullRequest
0 голосов
/ 05 мая 2020

Я пытался построить Re sNet как сверточную модель для классификации изображений RGB, я использовал набор данных изображений cifar-10 для обучения моей модели. Когда я скомпилировал и оценил модель, у меня была ошибка недопустимого аргумента, в которой говорилось, что логиты и метки должны транслироваться, я не уверен, что это за источник этой ошибки. Как мне избавиться от этой ошибки? может ли кто-нибудь указать мне, что не так со мной? есть идея исправить это? спасибо

моя текущая попытка :

    h = Conv2D(filters=32, kernel_size=(3,3), padding='same', activation='relu', input_shape=input_shape)(h)
    h = Conv2D(filters=32, kernel_size=(3,3), activation='relu')(h)
    h = MaxPooling2D(pool_size=(2,2))(h)
    h = Dropout(0.25)(h)
    h = Flatten()(h)
    h = Dense(512, activation='relu')(h)
    h = Dense(10, activation='softmax')(h)
    model = Model(inputs=x, outputs=h)
    return model

my_model = resNet_2(train_imgs)
my_model.compile(optimizer="adam", loss="categorical_crossentropy", metrics="accuracy")
model_history = my_model.fit(train_imgs, train_label_one_hot, batch_size=64, epochs=20, validation_data=(test_imgs, test_label_one_hot))
my_model.evaluate(train_imgs, train_label_one_hot)
my_model.evaluate(test_imgs, test_label_one_hot)

ошибка

InvalidArgumentError                      Traceback (most recent call last)
<ipython-input-40-5a4cccc5d1ec> in <module>()
      3 # my_model.summary()
      4 # ## use cifar-10 image dataset
----> 5 my_history = my_model.fit(train_imgs, train_label_one_hot, batch_size=64, epochs=20, validation_data=(test_imgs,

test_label_one_hot)) 6 my_model .evaluate (train_imgs, train_label_one_hot) 7 my_model.evaluate (test_imgs, test_label_one_hot)

8 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/execute.py

в quick_execute (op_name, num_outputs, вводы, attrs, ctx, name) 58 ctx_intensure (python) .TFE_Py_Execute (ctx._handle, device_name, op_name, ---> 60 входов, attrs, num_outputs) 61 кроме core._NotOkStatusException как e: 62, если имя не None:

InvalidArgumentError:  logits and labels must be broadcastable: logits_size=[192,10] labels_size=[64,10]
   [[node categorical_crossentropy/softmax_cross_entropy_with_logits (defined at

: 5)] ] [Op: __ inference_train_function_119387]

Я не понимаю, почему произошла эта ошибка, это проблема моей модели или неправильная настройка яркости входа / выхода? есть ли быстрый способ отследить ошибку и заставить оценку модели работать нормально? какая-нибудь мысль? спасибо

update :

здесь я использовал расширение Тейлора для построения моей вычислительной модели, использование exp_order означает, что я использовал серию Тейлора из 2 членов или порядка приближения . может кто-нибудь почему моя модель выдала такую ​​ошибку? любой способ исправить это? спасибо

1 Ответ

0 голосов
/ 05 мая 2020

Ошибка возникает из-за этой части кода

def get_exp(x, exp_order):
        x_ = x[..., None] 
        x_ = tf.tile(x_, multiples=[1, 1, exp_order + 1]) 
        pows = tf.range(0, exp_order + 1, dtype=tf.float32)
        x_p = tf.pow(x_, pows)
        return x_p

, когда exp_order = 2, тогда tf.tile делает размер x_ трем кратным. Когда ваши входные данные имеют размер batch_size = 64, в приведенном выше коде ожидается, что размер будет 192. Когда я ввожу exp_order = 0, он запускает код без каких-либо проблем. Так что вам нужно обновить эту часть кода. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...