Tensorflow處理變長特徵

處理流程:

  1. 變長特徵分割成變長數組
  2. 變長數據填充成規則數組,組成n * m的矩陣 (keras.preprocessing.sequence.pad_sequences)
  3. 每一行數據進行embedding,結果可以按權重求平均、直接求平均、求最大值 得到 n*1結果矩陣

第3步求平均可以用tf.nn.lookup_embedding_sparse 來做,也可以在Embedding之後再加一層MaxPooling2D或者AVGPooling2D。

參考:

# Define the Keras model
model = Sequential()
model.add(Embedding(num_distinct_words, embedding_output_dims, input_length=max_sequence_length))
model.add(Dropout(0.50))
model.add(Conv1D(filters=32, kernel_size=2, padding='same', activation='relu'))
model.add(Dropout(0.50))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dropout(0.50))
model.add(Dense(1, activation='sigmoid'))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章