我正在进行一个涉及相对较大数据集的项目,遇到了一-hot编码整数编码的问题。输出的矩阵太大,无法装入我的内存中。
我想知道是否可以在Keras模型内部执行one-hot编码,因为整数编码可以很好地作为数组存放在我的内存中。
回答:
你可以在模型内部进行one-hot编码:
X = np.asarray([1,2,3,4,4,4,4,5])inp = Input((1,), dtype='int32')x = Lambda(lambda x: tf.one_hot(x[:,0], len(set(X))))(inp)out = Dense(20)(x)model = Model(inp,out)model.compile('adam','mse')print(model.summary())model.fit(X, np.random.uniform(0,1, (len(X),20)), epochs=3)