tensorflow/models · error · ValueError

The first layer size should be multiple of 2!

Error message

The first layer size should be multiple of 2!

What it means

Error "The first layer size should be multiple of 2!" thrown in tensorflow/models.

Source

Thrown at official/recommendation/neumf_model.py:163

    params: Dict of hyperparameters.

  Raises:
    ValueError: if the first model layer is not even.
  Returns:
    model:  a keras Model for computing the logits
  """
  num_users = params["num_users"]
  num_items = params["num_items"]

  model_layers = params["model_layers"]

  mf_regularization = params["mf_regularization"]
  mlp_reg_layers = params["mlp_reg_layers"]

  mf_dim = params["mf_dim"]

  if model_layers[0] % 2 != 0:
    raise ValueError("The first layer size should be multiple of 2!")

  # Initializer for embedding layers
  embedding_initializer = "glorot_uniform"

  def mf_slice_fn(x):
    x = tf.squeeze(x, [1])
    return x[:, :mf_dim]

  def mlp_slice_fn(x):
    x = tf.squeeze(x, [1])
    return x[:, mf_dim:]

  # It turns out to be significantly more effecient to store the MF and MLP
  # embedding portions in the same table, and then slice as needed.
  embedding_user = tf_keras.layers.Embedding(
      num_users,
      mf_dim + model_layers[0] // 2,
      embeddings_initializer=embedding_initializer,

View on GitHub (pinned to e006f5f0d5)

When it happens

Trigger: Thrown at official/recommendation/neumf_model.py:163 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tensorflow/models@e006f5f0d5 (2026-08-24). Data as JSON: /api/errors/1fc0d96af6d0ce60. Report an issue: GitHub.