开发者社区> 问答> 正文

简单的单矩阵tensorflow keras模型不起作用

我正在尝试设置一个简单的tf.keras模型,其中矢量作为输入馈入,输出是单个矩阵乘法的结果。

创建模型的代码行已成功但调用它进行正向传递会导致错误。

n_input_nodes = 2
n_output_nodes = 1

x = tf.keras.Input(shape=(n_input_nodes,))
W = tf.ones((n_input_nodes,n_output_nodes), dtype=tf.float32)
y = tf.matmul(x, W)

model = tf.keras.Model(inputs=x, outputs=y)

x_input = tf.constant([10,30.], shape=[1, 2])
output = model(x_input)
最后一行(即前向传递)抛出以下错误: ValueError: Argument must be a dense tensor: [array([[1.], [1.]], dtype=float32)] - got shape [1, 2, 1], but wanted [1].

输入具有形状(2,1)并且权重矩阵具有形状(2,1)。两者之间的矩阵乘法应该是有效的乘法并导致[1,1]张量; 然而,这种情况并非如此。

展开
收起
一码平川MACHEL 2019-01-21 16:49:53 2249 0
1 条回答
写回答
取消 提交回答
  • 它们需要密集张量而不是稀疏张量。考虑这种形状

    W = tf.ones((n_input_nodes,), dtype=tf.float32)
    它需要一个密集的形状(2,)密度。

    2019-07-17 23:26:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
使用TensorFlow搭建智能开发系统自动生成App UI 立即下载
从零到一:IOS平台TensorFlow入门及应用详解 立即下载
从零到一:IOS平台TensorFlow入门及应用详解(附源 立即下载