gpt4 book ai didi

python - 如何在 Tensorflow 训练期间将 [3751,4] 数据集密集并 reshape 为 [1,6] 数据集

转载 作者:行者123 更新时间:2023-11-30 09:47:35 28 4
gpt4 key购买 nike

我正在训练一个特征形状为[3751,4]的模型,我想使用Tensorflow中内置的 reshape 和层密集函数来使输出标签具有形状[1,6]。

现在我的模型中有两个隐藏层,它们将执行以下操作:

input_layer = tf.reshape(features["x"], [-1,11,11,31,4])
first_hidden_layer = tf.layers.dense(input_layer, 4, activation=tf.nn.relu)
second_hidden_layer = tf.layers.dense(first_hidden_layer, 5, activation=tf.nn.relu)
output_layer = tf.layers.dense(second_hidden_layer, 6)

现在我可以得到 [?,11,11,31,6] 的 output_layer 形状。

如何进一步塑造训练节点集,以便最终将节点连接到形状 [1,6]?

最佳答案

形状 [3751, 4] 无法直接 reshape 为 [-1,11,11,31,4],因为 3751*4 = 15004 不能被 11*11*31*4 = 14964 整除。

<小时/>

OP评论后进行编辑

您可以展平数据集并将其作为单个示例提供。见下文

假设tf.shape(input_feat)==[3751, 4]:

input_layer = tf.reshape(input_feat, [1,-1])
first_hidden_layer = tf.layers.dense(input_layer, 4, activation=tf.nn.relu)
second_hidden_layer = tf.layers.dense(first_hidden_layer, 5, activation=tf.nn.relu)
output_layer = tf.layers.dense(second_hidden_layer, 6)
<小时/>

原始答案

由于您使用的是密集层,因此在网络开始时不 reshape 输入特征将可以正常工作并提供类似的结果。唯一的区别是图层中的权重会移动位置,但这不会影响您的结果。

如果我们假设tf.shape(input_feat) == [3751, 4],则以下代码片段应该可以正常工作

input_layer = tf.identity(input_feat)
first_hidden_layer = tf.layers.dense(input_layer, 4, activation=tf.nn.relu)
second_hidden_layer = tf.layers.dense(first_hidden_layer, 5, activation=tf.nn.relu)
output_layer = tf.layers.dense(second_hidden_layer, 6)

关于python - 如何在 Tensorflow 训练期间将 [3751,4] 数据集密集并 reshape 为 [1,6] 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50477280/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com