【问题标题】:Warning when adding Regularization to embedding layer将正则化添加到嵌入层时出现警告
【发布时间】:2021-01-28 17:32:01
【问题描述】:

当我为我的分类数据添加 l2 正则化到我的嵌入时:

    emb_layer = []
    cat_dim = len(cat_ix)

    X = Input(shape=(cat_dim,))
    X_split = Lambda(lambda x: tf.split(x, cat_dim, 1))(X)
    
    for i in range(len(cat_ix)):
        cardinality = int(df[cat_ix[i]].nunique())
        embed_dim = int(min(np.ceil(cardinality/2),10))

        embedding = Embedding(cardinality + 1, embed_dim, name=cat_ix[i],embeddings_regularizer = l2(1e-4))(X_split[i])
        
        emb_layer.append(embedding)
    
    #Finalizing 
    emb_layer = Concatenate(axis=2)(emb_layer)
    emb_layer = Flatten(name = 'embedding')(emb_layer)

我收到以下警告:

UserWarning: Converting sparse IndexedSlices to a dense Tensor of unknown shape. This may consume a large amount of memory
 "Converting sparse IndexedSlices to a dense Tensor of unknown shape. "

【问题讨论】:

    标签: tensorflow keras embedding


    【解决方案1】:

    通过像这样添加正则化来修复它:

    embedding = Embedding(cardinality + 1, embed_dim, name=cat_ix[i])(X_split[i])
    embedding.embeddings_regularizer = l2(1e-4)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多