python - Tensorflow 数据集 Titanic 导入问题
问题描述
我不知道如何导入 Tensorflow 2 的内置数据集。他们的文档不是很直观,我习惯使用 csvs。
如何让“泰坦尼克号”数据集与基本模型一起使用?有没有很好的资源来学习 Tensorflow 的 API 来流水线化他们的数据集?
对于下面的代码,我得到错误: ValueError: Layersequential_54 expects 1 个输入,但它收到了 13 个输入张量
import tensorflow as tf
import tensorflow_datasets as tfds
from tensorflow.keras.optimizers import Adam
data = tfds.load("titanic",split='train', as_supervised=True).map(lambda x,y: (x,y)).batch(10)
model = tf.keras.models.Sequential([tf.keras.layers.Dense(2,activation='relu'),
tf.keras.layers.Dense(13, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')])
model.compile(optimizer=Adam(learning_rate=0.01), loss='categorical_crossentropy', metrics=
['accuracy'])
model.fit(data,epochs=30)
解决方案
数据的导入似乎是正确的,但是您使用categorical_crossentropy
的自然需要 one-hot 编码标签(目标),可以使用以下方法生成:
from keras.utils import to_categorical
labels = to_categorical(labels)
但是对于两类(二进制)问题,您需要使用binary_crossentropy
并且仍然可以维护您的dense
层:
tf.keras.layers.Dense(1, activation='sigmoid')])
最后,您需要在此处添加标签(目标)来训练网络并可能添加批量大小
model.fit(data, labels, epochs=30, batch_size=80)
推荐阅读
- google-apps-script - 使用 Google Ads 脚本在电子表格列中搜索值
- facebook - 将 Instagram 帐户连接到稍后或 Creator Studio 问题 {"error_type": "OAuthException", "code": 400, "error_message": "Session invalid"}
- linux - -w 在 perl 脚本进程执行中指定什么
- c++ - 编译器不同意接受这个 view::keys 代码
- java - 日期大于或小于使用 java8 功能的 java 中的当前日期
- javascript - 帮助 wordpress 导航菜单
- python - Python:添加数据帧时的for循环迭代
- ios - 为什么 NSShadow 和 CALayer 的 shadowOffset 通过 CGSize 类型而不是 CGPoint 类型表示
- c++ - 如何“原子地”总结 C++ 向量的元素?
- java - Apache cxf rest客户端代理可以与反应接口一起使用吗