'Failed to convert a NumPy array to a Tensor (Unsupported object type float) when training using fit_generator
I got an error when training a model using fit_generator.
Here is the Python generator code:
def get_generator(features, labels,batch_size=1):
for n in range(int(len(features)/batch_size)):
yield(features[n*batch_size:(n+1)*batch_size],labels[n*batch_size:(n+1)*batch_size])
here is the model:
from tensorflow.keras import Model
from tensorflow.keras.layers import Dense, Input, BatchNormalization
input_shape = (4,)
output_shape = (1,)
model_input = Input(input_shape)
batch_1 = BatchNormalization(momentum=0.8)(model_input)
dense_1 = Dense(100, activation='relu')(batch_1)
batch_2 = BatchNormalization(momentum=0.8)(dense_1)
output = Dense(3, activation='sigmoid')(batch_2)
model = Model([model_input], output)
optimizer = tf.keras.optimizers.Adam(learning_rate=1e-2)
model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])
I get an error when I trying to run the generator:
for epoch in range(epochs):
train_generator = get_generator(training_features,training_labels,batch_size=batch_size)
validation_generator = get_generator(validation_features,validation_labels,batch_size=10)
model.fit_generator(train_generator,steps_per_epoch=train_steps,validation_data=validation_generator,validation_steps=1)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
