python - 如何生成自定义张量流训练/验证数据,
问题描述
我正在尝试根据特定字符的出现次数对一堆序列进行分类。我想要一个具有一维输入的网络,因此输入(可变长度)可以一次输入一个字符。然后我想要一个浮动分类,在处理每个字符后更新。
我是 tensforflow 新手,使用以下教程:https ://www.tensorflow.org/tutorials/text/text_classification_rnn
当我尝试使用完全不同的数据集时,其中很多似乎无关紧要。
我已经生成了我的(训练/验证 70-30%)数据并将它们保存在以下形式的字典中:{sequence_string: classification}
.
我已经开始研究以下用于构建模型的代码:
model = tf.keras.Sequential([
tf.keras.layers.Embedding(2 ** SEQUENCE_MAX_LENGTH, 64),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64, return_sequences=True)),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(32)),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.compile(loss='binary_crossentropy',
optimizer=tf.keras.optimizers.Adam(1e-4),
metrics=['accuracy'])
history = model.fit(
TRAINING_DATA, << Doesnt work because my training data format is completely off
epochs=10,
validation_data=TEST_DATA,
validation_steps=30
)
这是要使用的正确 API 吗?如何将我当前的数据转换为可用的训练集?
解决方案
你能分享你的数据样本和目标输出吗?(抱歉还不能评论帖子)
您建议一次输入一个字符,并有一个不断更新的预测。
这样做有一个问题,因为循环神经网络具有一组固定的权重,因此具有固定的输入大小。
您可以通过向网络提供字符子串来模仿“一次一个字符”的预测(可能用于绘图目的)。这确实意味着用于预测的输入字符的数量是有限的。
前任。
第一个预测:[0, 0, 0] -> A 类
第二个预测:['T', 0, 0] -> B 类
第三个预测:['G', 'T', 0] -> B 类
第 4 个预测:['A', 'G', 'T'] -> C 类
推荐阅读
- php - 尝试在 Laravel 中使用 guzzle 使用 bulksms.com API 但返回错误
- rabbitmq - 一个通道多通道交换或一个通道多通道交换
- javascript - React js - 有没有其他方法来优化我的条件代码
- image-segmentation - 使用自定义数据集注释图像以训练 YOLO
- docusignapi - DocuSign 何时为 Chrome 80 做好准备?- sameSite cookie 更改
- c# - 在迁移中编写更新 sql 脚本
- angular - 如何限制角料垫芯片的字符大小?
- java - Java中的贝塞尔曲线与点
- c# - C# WCF 客户端参数异常 XmlNode[] 无法转换为类型“...”
- ios - 如何在我的 ios 应用程序中检索嵌套的 firebase 数据?