import tensorflow as tf
import pandas as pd
pets = {'pets': [[2, 4],[ 3, 8],[0 , -1],[1, 0]]} #猫0,狗1,兔子2,猪3
df = pd.DataFrame(pets)
column = tf.feature_column.categorical_column_with_identity(key='pets',
num_buckets=20)
column = tf.feature_column.categorical_column_with_hash_bucket(
key='pets',
hash_bucket_size=15,
)
pets_f_c = tf.feature_column.numeric_column('pets', dtype=tf.int32)
column = tf.feature_column.embedding_column(pets_f_c, 3)
indicator = tf.feature_column.indicator_column(column)
dataset = tf.data.Dataset.from_tensor_slices((dict(df)))
example_batch = next(iter(ds))
feature_layer = tf.keras.layers.DenseFeatures(column)
print(feature_layer(example_batch).numpy())
ds = dataset
for feature_batch in ds.take(1):
print('Some feature keys:', list(feature_batch.keys()))
print()
print('A batch of class:', feature_batch['pets'].numpy())
print(tf.keras.layers.DenseFeatures([indicator])(feature_batch).numpy())
color_embeding = feature_column.embedding_column(color_column, 7)
color_embeding_dense_tensor = feature_column.input_layer(color_data, [color_embeding])
builder = _LazyBuilder(color_data)
color_column_tensor = color_column._get_sparse_tensors(builder)
tf.random.set_seed(123)
color_data = {'color': [['E','F'], ['G','B'], ['B','B'], ['A','F']]} # 4行样本
color_column = tf.feature_column.categorical_column_with_vocabulary_list(
'color', ['A', 'B', 'C', 'D', 'G', 'E', 'F'], dtype=tf.string, default_value=-1)
indicator = tf.feature_column.indicator_column(color_column)
color_embeding = tf.feature_column.embedding_column(color_column, 7)
df = pd.DataFrame(color_data)
dataset = tf.data.Dataset.from_tensor_slices((dict(df)))
ds = dataset
ds = ds.batch(4)
example_batch = next(iter(ds))
feature_layer = tf.keras.layers.DenseFeatures(color_embeding)
print(feature_layer(example_batch).numpy())
color_data = {'color': [['A'], ['B'], ['C'], ['D'], ['E'], ['F']]} # 4行样本
color_column = tf.feature_column.categorical_column_with_vocabulary_list(
'color', ['A', 'B', 'C', 'D', 'G', 'E', 'F'], dtype=tf.string, default_value=-1)
indicator = tf.feature_column.indicator_column(color_column)
color_embeding = tf.feature_column.embedding_column(color_column, 7)
df = pd.DataFrame(color_data)
dataset = tf.data.Dataset.from_tensor_slices((dict(df)))
ds = dataset
ds = ds.batch(11)
example_batch = next(iter(ds))
feature_layer = tf.keras.layers.DenseFeatures(color_embeding)
print(feature_layer(example_batch).numpy())
color_column = tf.feature_column.categorical_column_with_vocabulary_list(
'color', ['A', 'B', 'C', 'D', 'G', 'E', 'F'], dtype=tf.string, default_value=-1)
color_embeding = tf.feature_column.embedding_column(color_column, 2)
feature_layer = tf.keras.layers.DenseFeatures(color_embeding)
color_data1 = {'color': [['E','F'], ['G','B'], ['B','B'], ['A','F'], ['A', 'C'], ['D', 'D'], ['F', 'F']]} # 4行样本
color_data2 = {'color': [['A'], ['B'], ['C'], ['D'], ['E'], ['F']]} # 4行样本
df1 = pd.DataFrame(color_data1)
df2= pd.DataFrame(color_data2)
dataset1 = tf.data.Dataset.from_tensor_slices((dict(df1)))
dataset2 = tf.data.Dataset.from_tensor_slices((dict(df2)))
ds1 = dataset1
ds2 = dataset2
ds1 = ds1.batch(11)
ds2 = ds2.batch(11)
example_batch1 = next(iter(ds1))
print(feature_layer(example_batch1).numpy())
example_batch2 = next(iter(ds2))
print(feature_layer(example_batch2).numpy())
参考1
https://www.jianshu.com/p/fceb64c790f3