尝试训练 keras 模型时,出现错误:没有为任何变量提供梯度

时间:2021-07-02 14:50:21

标签: python tensorflow keras

我正在准备来自 csv 文件的数据,其中训练数据和测试数据存储在不同的文件中。我的代码如下:

pathAsk = 'ask.csv'
pathBid = 'bid.csv'
pathLabels = 'labels.csv'
types = [tf.constant(0, dtype=tf.float32)] * 2500
types_label = [tf.int32]

datasetAsk = tf.data.experimental.CsvDataset(pathAsk, types , header=False, field_delim = ";")
datasetBid = tf.data.experimental.CsvDataset(pathBid, types , header=False, field_delim = ";")
datasetLabels = tf.data.experimental.CsvDataset(pathLabels, types_label, header=False)


def to_categorical(dataset):
    dataset = tf.one_hot(tf.cast(dataset, tf.int32), 6)
    return dataset

datasetLabels = datasetLabels.map(to_categorical)


def preprocessX(*fields):
    return tf.stack(fields[:2500])/5000 

train_ds = datasetAsk.map(preprocessX).batch(32)
label_ds = datasetLabels.batch(32)




inputs = keras.Input(shape=(2500), name="ask")
x = keras.layers.Embedding(1000, 64)
x = keras.layers.Dense(64, activation=keras.activations.relu)(inputs)
x = keras.layers.Dense(32, activation=keras.activations.relu)(x)
outputs = keras.layers.Dense(6, activation=keras.activations.relu)(x)

model = keras.Model(inputs, outputs)
model.compile(
    loss = keras.losses.MeanSquaredError(),
    optimizer = keras.optimizers.Adam(),
    metrics=['accuracy'],
    )
keras.utils.plot_model(model, "multi_input_and_output_model.png", show_shapes=True)

model.fit(train_ds, validation_data=label_ds, epochs=50)

我的模型抛出异常:没有为任何变量提供梯度:['dense / kernel: 0', 'dense / bias: 0', 'dense_1 / kernel: 0', 'dense_1 / bias: 0', '密集_2/内核:0','密集_2/偏差:0']。

我需要做什么才能开始训练模型?感谢您的帮助!

0 个答案:

没有答案