Определение модели в учебном пособии кераса «Вероятностные байесовские нейронные сети» приводит к ошибке »атрибута:« ОбъPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Определение модели в учебном пособии кераса «Вероятностные байесовские нейронные сети» приводит к ошибке »атрибута:« Объ

Сообщение Anonymous »

Я пытаюсь запустить вероятностные байесовские нейронные сети Керас, чтобы получить понимание байесовских нейронных сетей (BNN). Учебное пособие содержит ноутбук Google-Colab, поэтому вы можете запустить его непосредственно в браузере. Однако, когда я пытаюсь тренировать BNN в первый раз (глава Train Bnn с небольшим обучением подмножества ), он бросает эту ошибку:

Код: Выделить всё

AttributeError                            Traceback (most recent call last)
 in ()
3 small_train_dataset = train_dataset.unbatch().take(train_sample_size).batch(batch_size)
4
----> 5 bnn_model_small = create_bnn_model(train_sample_size)
6 run_experiment(bnn_model_small, mse_loss, small_train_dataset, test_dataset)

2 frames
/usr/local/lib/python3.10/dist-packages/tf_keras/src/engine/input_spec.py in assert_input_compatibility(input_spec, inputs, layer_name)
249                 )
250         if spec.min_ndim is not None:
--> 251             ndim = x.shape.rank
252             if ndim is not None and ndim < spec.min_ndim:
253                 raise ValueError(

AttributeError: 'tuple' object has no attribute 'rank'
Сообщение об ошибке, вероятно, относится к определению модели в ячейке до:
Определение модели

Код: Выделить всё

def create_bnn_model(train_size):
inputs = create_model_inputs()
features = keras.layers.concatenate(list(inputs.values()))
features = layers.BatchNormalization()(features)

# Create hidden layers with weight uncertainty using the DenseVariational layer.
for units in hidden_units:
features = tfp.layers.DenseVariational(
units=units,
make_prior_fn=prior,
make_posterior_fn=posterior,
kl_weight=1 / train_size,
activation="sigmoid",
)(features)

# The output is deterministic: a single point estimate.
outputs = layers.Dense(units=1)(features)
model = keras.Model(inputs=inputs, outputs=outputs)
return model
< /code>
Код для начала обучения является следующим:

 начало обучения < /strong> < /p>
num_epochs = 500
train_sample_size = int(train_size * 0.3)
small_train_dataset = train_dataset.unbatch().take(train_sample_size).batch(batch_size)

bnn_model_small = create_bnn_model(train_sample_size)
run_experiment(bnn_model_small, mse_loss, small_train_dataset, test_dataset)
Я попытался обернуть функции - tensor в tf.keras.input - слой, но он не решил проблему


Подробнее здесь: https://stackoverflow.com/questions/789 ... works-lead
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»