Closed
Description
Hi, I'm trying to train a model with the Embedding layer, however, it does not work. Here is the example code:
// set up the model
var inputs = keras.Input(shape: (5), name: "text", dtype: TF_DataType.DtInt32Ref);
var embed = keras.layers.Embedding(1000, 64, input_length: 5).Apply(inputs);
var embed_flat = keras.layers.Flatten().Apply(embed);
var output = keras.layers.Dense(10).Apply(embed_flat);
var model = keras.Model(inputs, output, name: "test");
// init input and labels
var input_array = np.random.randint(1000, size: (100, 5)).ravel().ToArray<int>();
var x_train = new NDArray(input_array, (100, 5));
var labels = np.random.randint(10, size: (100, 1)).ravel().ToArray<int>();
var y_train = new NDArray(labels, (100));
var opt = keras.optimizers.SGD(5e-2f);
model.compile(opt, keras.losses.SparseCategoricalCrossentropy(from_logits: true), metrics: new[] { "accuracy" });
model.summary();
model.fit(x_train, y_train, 10, 10, 1, 0.0f);
The error information:
Tensorflow.InvalidArgumentError: var and delta do not have the same shape[1000,64] [50,64]