相关疑难解决方法(0)

InvalidArgumentError:无法计算MatMul,因为输入#0(从零开始)应该是浮点张量,但是是双张量[Op:MatMul]

有人可以解释一下tensorflow的eager-mode工作原理。我正在尝试建立一个简单的回归,如下所示:

编辑:我正在更新我的问题,这是我的完整代码,现在问题来自梯度计算,它返回零。我检查了非零的损失值。

import tensorflow as tf
tfe = tf.contrib.eager
tf.enable_eager_execution()
import numpy as np
def make_model():
    net = tf.keras.Sequential()
    net.add(tf.keras.layers.Dense(4, activation='relu'))
    net.add(tf.keras.layers.Dense(1))
    return net

def compute_loss(pred, actual):
    return tf.reduce_mean(tf.square(tf.subtract(pred, actual)))

def compute_gradient(model, pred, actual):
    """compute gradients with given noise and input"""
    with tf.GradientTape() as tape:
        loss = compute_loss(pred, actual)
    grads = tape.gradient(loss, model.variables)
    return grads, loss

def apply_gradients(optimizer, grads, model_vars):
    optimizer.apply_gradients(zip(grads, model_vars))

model = make_model()
optimizer = tf.train.AdamOptimizer(1e-4)

x = np.linspace(0,1,1000)
y = x+np.random.normal(0,0.3,1000)
y = y.astype('float32')
train_dataset …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow eager-execution

6
推荐指数
1
解决办法
5113
查看次数

标签 统计

eager-execution ×1

keras ×1

python ×1

tensorflow ×1