【发布时间】:2020-10-02 17:28:35
【问题描述】:
我编写了一个自定义 TensorFlow 模型。但是,当我将单个张量传递给它时,它会将该张量的每个元素视为单个输入,因此会给出批量输出。
例如。我的输入张量的形状为 [3,1],其值:
tf.Tensor(
[[0.7001484 ]
[0.2581525 ]
[0.04169908]], shape=(3, 1), dtype=float32)
与此相对应,我应该得到一个形状为 (3,) 的向量。但我得到的是 3x3 张量:
tf.Tensor(
[[0.31234854 0.3224371 0.36521438]
[0.32561225 0.3294511 0.3449366 ]
[0.33208787 0.33271718 0.33519495]], shape=(3, 3), dtype=float32)
我的模型
class MAE_Model(tf.keras.Model):
def __init__(self):
super(MAE_Model, self).__init__()
self.h_fin = EnsembleBlock()
self.ipt = tf.keras.layers.InputLayer(input_shape=(3,1), batch_size=None)
self.fc_1 = tf.keras.layers.Dense(16, activation='relu')
self.fc_2 = tf.keras.layers.Dense(16, activation='relu')
self.classifier = tf.keras.layers.Dense(3, activation='softmax')
def call(self, inputs):
x = self.h_fin(inputs) # this returns a vector of shape [3] E.g. x = [1., 2., 3.]
x = tf.reshape(x, (3,1))
print(x)
x = self.ipt(x)
x = self.fc_1(x)
x = self.fc_2(x)
return self.classifier(x)
这里,print(x) 打印一个 (3,1) 张量,类似于上面的示例。有没有办法解决这个问题? 我希望模型将 x 视为单个输入(整个)而不是一些批量输入
【问题讨论】:
标签: python tensorflow keras