- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Keras。在以下代码中,model
将 [a0, a1]
、[b0, b1, b2]
作为输入并给出 [a0 *b0, a0*b1, a0*b2, a1*b0, a1*b1, a1*b2]
作为输出:
from keras import backend as K
from keras.models import Model
from keras.models import Input
from keras.layers import Dense
def mix(ts):
t0 = K.expand_dims(ts[0], axis=-1)
t1 = K.expand_dims(ts[1], axis=1)
return K.batch_flatten(t0 * t1)
a = Input(shape=(2,))
b = Input(shape=(3,))
c = Lambda(mix)([a, b])
model = Model(inputs=[a,b], outputs=c)
这是测试:
u = np.array([1,2]).reshape(1,2)
v = np.array([3,4,5]).reshape(1,3)
print(model.predict([u,v]))
[[ 3.4.5.6.8.10.]]
但是,如果我尝试将 Dense
层连接到 Lambda
层,则会收到错误:
from keras import backend as K
from keras.models import Model
from keras.models import Input
from keras.layers import Dense
def mix(ts):
t0 = K.expand_dims(ts[0], axis=-1)
t1 = K.expand_dims(ts[1], axis=1)
return K.batch_flatten(t0 * t1)
a = Input(shape=(2,))
b = Input(shape=(3,))
c = Lambda(mix)([a, b])
d = Dense(2)(c)
model = Model(inputs=[a,b], outputs=d)
这是我收到的错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-0f7f977a1e79> in <module>()
7 b = Input(shape=(3,))
8 c = Lambda(mix)([a, b])
----> 9 d = Dense(2)(c)
10
11 model = Model(inputs=[a,b], outputs=d)
~\Anaconda3\envs\mind\lib\site-packages\keras\engine\base_layer.py in __call__(self, inputs, **kwargs)
429 'You can build it manually via: '
430 '`layer.build(batch_input_shape)`')
--> 431 self.build(unpack_singleton(input_shapes))
432 self.built = True
433
~\Anaconda3\envs\mind\lib\site-packages\keras\layers\core.py in build(self, input_shape)
864 name='kernel',
865 regularizer=self.kernel_regularizer,
--> 866 constraint=self.kernel_constraint)
867 if self.use_bias:
868 self.bias = self.add_weight(shape=(self.units,),
~\Anaconda3\envs\mind\lib\site-packages\keras\legacy\interfaces.py in wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name + '` call to the ' +
90 'Keras 2 API: ' + signature, stacklevel=2)
---> 91 return func(*args, **kwargs)
92 wrapper._original_function = func
93 return wrapper
~\Anaconda3\envs\mind\lib\site-packages\keras\engine\base_layer.py in add_weight(self, name, shape, dtype, initializer, regularizer, trainable, constraint)
247 if dtype is None:
248 dtype = K.floatx()
--> 249 weight = K.variable(initializer(shape),
250 dtype=dtype,
251 name=name,
~\Anaconda3\envs\mind\lib\site-packages\keras\initializers.py in __call__(self, shape, dtype)
207 scale /= max(1., fan_out)
208 else:
--> 209 scale /= max(1., float(fan_in + fan_out) / 2)
210 if self.distribution == 'normal':
211 # 0.879... = scipy.stats.truncnorm.std(a=-2, b=2, loc=0., scale=1.)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
如何正确连接 Dense
层到 Lambda
层?
最佳答案
在这种情况下,您需要设置 Lambda 层的输出形状,因为它无法自动推断。手动传递 output_shape
:
c = Lambda(mix, output_shape=(6,))([a, b])
或者更好的是,传递一个函数来根据该层的输入张量的形状计算输出形状:
def mix_output_shape(input_shape):
# input_shape[0] is the shape of first input tensor
# input_shape[1] is the shape of second input tensor
return (input_shape[0][0], input_shape[0][1] * input_shape[1][1])
# ...
c = Lambda(mix, mix_output_shape)([a, b])
关于python - 如何在 Keras 中正确连接 Dense 层和 Lambda 层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53169455/
为什么 get_weights() 返回的权重值与实际权重不同?我认为初始化后这两种方法应该显示相同的权重。 import tensorflow as tf import os sess = tf.S
我正在尝试使用 Keras。 当我尝试以下代码时: from keras.layers import Dense 我收到以下错误: Traceback (most recent call last):
我正在构建一个模型,该模型使用循环层 (GRU) 将一个字符串转换为另一个字符串。我尝试过使用 Dense 层和 TimeDistributed(Dense) 层作为最后一层,但我不明白使用 retu
this question of mine 的答案让我期望 Eigen 中的产品(对于具有 1/4 非消失条目的矩阵)稠密矩阵 * 稠密 vector 应该跑赢稀疏矩阵*密集 vector 。 我不仅
我正在尝试为上下文强盗问题 (https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part
from keras import layers from keras import models model = models.Sequential() model.add(layers.Conv2
我目前正在学习深度学习和Keras。当我执行此代码时,我收到奇怪的错误:“TypeError:无法使用非浮点dtype构建Dense层”,我无法找出问题所在。我想念什么?如何解决这个奇怪的错误? 错误
我正在处理 pandas 数据框并且有一个像这样的框架: Year Value 2012 10 2013 20 2013 25 2014 30 我想做一个等同于 DENSE_RANK ()
我在 Tensorflow 中有一个网络,我想定义一个函数,通过 tf.layers.dense 层(显然是同一层)传递它的输入。我看到了 reuse 参数,但为了正确使用它,我似乎需要保留一个全局变
在转换自定义 tensorflow 图时,我看到与将密集层从 pb 格式转换为 DLC 格式有关的错误: 2017-11-02 13:43:35,260 - 305 - WARNING - WARNI
我需要在稀疏矩阵上使用线性回归。我的结果一直很差,所以我决定在一个稀疏表示的非稀疏矩阵上测试它。数据取自https://www.analyticsvidhya.com/blog/2021/05/mul
这个问题已经有答案了: How to pivot Spark DataFrame? (10 个回答) 已关闭 6 年前。 我有一个数据框,如下所示: item_id week_id sale am
我正在尝试为序数回归创建一个模型,正如这个 paper 所解释的那样.它的主要部分是在最后一层共享权重,而不是为了获得秩单调性的偏差(基本上确保 P[Y>N] 必须始终大于 P[Y>N-1] 对于任何
我有一个简单的序列模型,使用 TimeDistributed(Dense...) 作为 LSTM 层之后的最后一层。我正在以 20 个时间步长的顺序训练时间序列数据。损失函数是Mean Absolut
我有点误解如何为我的数据创建一个简单的序列。 数据具有以下维度: X_train.shape (2369, 12) y_train.shape (2369,) X_test.shape (592, 1
这个问题在这里已经有了答案: CSS-only masonry layout (4 个答案) 关闭 4 年前。 您可以这样想,因为我们在 Facebook 上上传了多张图片(可能尺寸不同),它们在新
我正在制作一个解决回归问题的 DNN。 首先我加载了一个预训练的 VGG16 网络,然后我制作了几个完全连接的隐藏层。最后一层有一个输出标量的节点。 我认为输出的形状应该类似于 [batch_size
在 tensorflow layers.dense(inputs, units, activation) 中实现了一个具有任意激活函数的多层感知器层。 输出=激活(matmul(输入,权重)+偏差)
如果我只使用这样的单层: layer = tf.layers.dense(tf_x, 1, tf.nn.relu) 这只是具有单个节点的单层吗? 或者它实际上是一组只有一个节点的层(输入层、隐藏层、输
池化层定义在tensorflow/python/layers/pooling.py. 有最大值池化和均值池化。 1、tf.layers.max_pooling2d
我是一名优秀的程序员,十分优秀!