假设以下Keras模型:
model = Sequential()
model.add(Dense(512, activation='sigmoid', input_shape=(784,)))
model.add(Dense(10, activation='softmax'))显然,我们可以通过以下方法来计算梯度:
grads = K.gradients(loss, params)它只是打电话:
tf.gradients(loss, variables, colocate_gradients_with_ops=True)这将返回,一个张量的列表,包含:
我想问一问,是否有一种简单的方法,用(512x784)+512+(10x512)+10元素“平平”一级张量(即一维数组)的所有梯度,而不对层和相应的偏差进行循环。
谢谢
发布于 2017-09-13 13:19:10
是的,使用后端函数。
#flatten the tensors
flattenedList = [K.flatten(x) for x in grads]
#concatenate them
concatenated = K.concatenate(flattenedList)https://stackoverflow.com/questions/46197153
复制相似问题