当标签是输入时(对于自动编码器),如何使用tf.data.Dataset.from_tensor_s-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

当标签是输入时(对于自动编码器),如何使用tf.data.Dataset.from_tensor_s

2019-12-30 09:55:51 291 0

我试图使用这段代码来创建一个广泛和深入的自动编码器。(我有一个Dataframe,我试图把它转换成一个tf.fdata.dataset):

# A utility method to create a tf.data dataset from a Pandas Dataframe
def df_to_dataset(dataframe, shuffle=True, batch_size=256):
    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
train_ds=df_to_dataset(train,shuffle=False)
val_ds=df_to_dataset(val,shuffle=False)


因为我想要一个自动编码器,我想要相同的输入和输出。我试着这样的:


def df_to_dataset(dataframe, shuffle=True, batch_size=256):
    dataframe = dataframe.copy()
    ds = tf.data.Dataset.from_tensor_slices((dict(dataframe),dict(dataframe)))
    if shuffle:
        ds = ds.shuffle(buffer_size=len(dataframe))
    ds = ds.batch(batch_size)
    return ds
train_ds=df_to_dataset(train,shuffle=False)
val_ds=df_to_dataset(val,shuffle=False)

# numeric_ cols
for header in NUMERICAL_COLUMNS:
    feature_columns.append(feature_column.numeric_column(header))    

feature_layer = tf.keras.layers.DenseFeatures(feature_columns)

feature_layer_inputs = {}
for header in cols:
    feature_layer_inputs[header] = tf.keras.Input(shape=(1,), name=header)


encoder_num=feature_layer(feature_layer_inputs)
encoder_num=tf.keras.layers.Dense(10,activation='relu',name='encoder1')(encoder_num)
encoder_num=tf.keras.layers.Dense(6,activation='sigmoid',name='encoder2')(encoder_num)
encodernum = tf.keras.Model(inputs=[v for v in feature_layer_inputs.values()], outputs=encoder_num)

encodernum.compile(optimizer="adam",
              loss='mean_squared_error',
              metrics=['accuracy'])

history = encodernum .fit(train_ds,
          validation_data=val_ds,
          epochs=3)

但我得到这个错误:

ValueError: No data provided for "outputlayer_num". Need data for each key in: ['outputlayer_num']

在tensorflow文档中,他们只对target使用了一列,我没有发现任何使用panda dataframe创建的数据集的自动编码器。 有人知道如何使一个自动编码器使用熊猫数据aframe作为输入和DenseFeature层来选择两个不同类型的列吗? 问题来源StackOverflow 地址:/questions/59378986/how-to-use-tf-data-dataset-from-tensor-slices-when-the-label-is-the-input-for-a

取消 提交回答
全部回答(0)
相关问答

3

回答

专有云升级aliyun-python-sdk-core后报错。而location-readonly.aliyuncs.com域名可以通过curl访问。

萌萌怪兽 2018-10-15 20:46:31 52492浏览量 回答数 3

6

回答

osscmd,一条命令上传和下载的python工具

wood23 2012-06-30 12:08:18 41135浏览量 回答数 6

5

回答

设置跨域资源共享CORS并使用JS表单PostObject直接上传到OSS

wood23 2015-02-12 08:11:09 41496浏览量 回答数 5

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 148561浏览量 回答数 22

41

回答

OSS FTP工具发布啦

oss-dev 2015-12-23 16:58:56 66880浏览量 回答数 41

43

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 142938浏览量 回答数 43

251

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 309435浏览量 回答数 251

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 483550浏览量 回答数 24

30

回答

基础语言百问-Python

薯条酱 2017-05-17 18:01:13 66181浏览量 回答数 30

21

回答

OSS新手视频教程!

聚小编 2013-01-14 18:09:51 59097浏览量 回答数 21
+关注
0
文章
13401
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载