【发布时间】:2016-11-27 17:58:09
【问题描述】:
(Keras 1.0.7,Tensorflow r0.10)
我正在尝试实现自己的激活功能:
# Custom activation function (Radial Basis Function - RBF)
l2_norm = lambda a, b: K.sqrt(((a - b) ** 2).sum())
def rbf(x, gamma=1.0):
return K.exp(-1 * gamma * l2_norm(x[0], x[1]) ** 2)
这是我的模型的相关部分,我在其中指定了我的自定义激活函数:
model = Sequential()
# Some other layers go here
model.add(Dense(n_classes, activation=rbf))
我收到以下错误:
/raid/home/user/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorflow/python/framework/tensor_shape.pyc in assert_has_rank(self, rank)
619 """
620 if self.ndims not in (None, rank):
--> 621 raise ValueError("Shape %s must have rank %d" % (self, rank))
622
623 def with_rank(self, rank):
ValueError: Shape (?, 12) must have rank 1
尝试将x(形状为(?, 12))分割成x[0] 和x[1] 时,错误发生在return K.exp(-1 * gamma * l2_norm(x[0], x[1]) ** 2) 行。
Tensorflow slice 方法为什么会抛出这个错误?
【问题讨论】:
标签: python neural-network tensorflow keras