嵌入Keras层
嵌入
keras.layers.Embedding(input_dim,output_dim,embeddings_initializer ='uniform',embeddings_regularizer = None,activity_regularizer = None,embeddings_constraint = None,mask_zero = False,input_length = None)
将正整数(索引)转换为固定大小的粗矢量。例如。 ((4),(20)) – >((0.25,0.1),(0.6, – 0.2))
该层必须用作模型中的主要层。
先例
model = Sequential()
model.add(嵌入(1000,64,input_length = 10))
#该模型将整个网络的大小(clump,input_length)作为信息。
#信息中最大的数字(例如单词索引)应该是
#不大于999(词汇量度)。
#now model.output_shape ==(无,10,64),其中None是群集测量。
input_array = np.random.randint(1000,size =(32,10))
model.compile('rmsprop','mse')
output_array = model.predict(input_array)
确认output_array.shape ==(32,10,64)
争论
- input_dim:int> 0.词汇表的大小,例如最大整数索引+ 1。
- output_dim:int> = 0.测量厚安装。
- embeddings_initializer:嵌入框架的初始化程序。
- embeddings_regularizer:连接到嵌入网络的正则化函数。
- activity_regularizer:与层的产量相关的正则化函数(其“启动”)。
- embeddings_constraint:连接到嵌入网格的约束函数。
- mask_zero:信息自尊0是否是一种应该被掩盖的非凡的“缓冲”尊重。当使用可能需要可变长度输入的间歇层时,这很有用。如果这是真的,那么模型中的每个后续层都需要帮助隐藏或者引发特殊情况。在mask_zero被设置为True的情况下,因此,在词汇表中不能使用索引0(input_dim应该接近词汇量的大小+ 1)。
- input_length:信息安排的长度,当它是一致的时。如果您将接口Flatten,此时需要进行此争用,此时密集层上游(没有它,无法注册厚产量的状态)。
信息形态
具有形状的2D张量:(batch_size,sequence_length)。
屈服形状
具有形状的3D张量:(batch_size,sequence_length,output_dim)。