首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TensorFlow2.0:如何为numpy矩阵输入创建feature_columns

TensorFlow2.0:如何为numpy矩阵输入创建feature_columns
EN

Stack Overflow用户
提问于 2021-02-27 07:46:47
回答 1查看 40关注 0票数 0

我知道如何在Tensorflow 1.x (link here)中做到这一点。

但是对于TensorFlow2.0,如何为numpy矩阵创建feature_columns?

代码语言:javascript
复制
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import tensorflow as tf

X = iris['data']
y = iris['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
ds_train = tf.data.Dataset.from_tensor_slices((X_train, y_train))
ds_test = tf.data.Dataset.from_tensor_slices((X_test, y_test))

model = CustomModel(feature_columns, num_classes=y_train.shape[1])
model.compile()
model.compile('adam', loss='categorical_crossentropy', metrics='accuracy')

根据CustomModel的文档字符串,请求feature_columns: The Tensorflow feature columns for the dataset.

我使用sklearn中的虹膜数据集作为示例。我知道tensorflow2.0有一个虹膜数据集。如果我使用这个数据集,我就不会有这个问题。但这不是重点。我想知道如何创建特征列以馈送到tensorflow模型中,因为我已经有了numpy矩阵。

EN

回答 1

Stack Overflow用户

发布于 2021-03-21 10:58:42

TensorFlow documentation提供了我们通常需要的所有示例。如果您想创建增强的树模型,还有另一个article

我使用这个数据集只是为了说明如何使用Pandas dataframe来创建tf.data

代码语言:javascript
复制
import tensorflow as tf
import pandas as pd
from sklearn.model_selection import train_test_split

seaflow_train = pd.read_csv(
    "~/PycharmProjects/TensorFlow2/seaflow_21min.csv")

print(seaflow_train.head())
print(seaflow_train.columns)
seaflow_train['target'] = seaflow_train['pop']

seaflow_train = seaflow_train.drop(columns=['file_id', 'cell_id', 'time', 'd1', 'd2'])

train, test = train_test_split(seaflow_train, test_size=0.2)
train, val = train_test_split(train, test_size=0.2)

# A utility method to create a tf.data dataset from a Pandas Dataframe
def df_to_dataset(dataframe, shuffle=True, batch_size=32):
  dataframe = dataframe.copy()
  labels = dataframe.pop('target')
  ds = tf.data.Dataset.from_tensor_slices((dict(dataframe), labels))
  if shuffle:
    ds = ds.shuffle(buffer_size=len(dataframe))
  ds = ds.batch(batch_size)
  return ds

batch_size = 5 # A small batch sized is used for demonstration purposes
train_ds = df_to_dataset(train, batch_size=batch_size)
val_ds = df_to_dataset(val, shuffle=False, batch_size=batch_size)
test_ds = df_to_dataset(test, shuffle=False, batch_size=batch_size)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66394174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档