- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想构建一个 CNN,它可以是行数不变但列数可变的馈送矩阵。我从this blog开始但它在某些时候使用了 Flatten
层。根据this GitHub issue , Flatten
层不能与未完全定义形状的数据一起使用。我用了this answer像这样构建一个 CNN:
from keras import Input, Model
from keras.layers import Conv2D, MaxPooling2D, Dense, Dropout, Lambda, Activation
from keras.optimizers import SGD
import keras.backend as K
input = Input(shape=(None, 60, 1))
x = Conv2D(list_of_neurons[0], (3, 3), padding='same', activation='relu')(input)
x = MaxPooling2D(pool_size=(2, 2))(x) # None x 30
x = Conv2D(list_of_neurons[1], (3, 3), padding='same', activation='relu')(x)
x = MaxPooling2D(pool_size=(2, 2))(x) # None x 15
x = Conv2D(list_of_neurons[2], (3, 3), padding='same', activation='relu')(x)
x = MaxPooling2D(pool_size=(3, 3))(x) # None x 5
x = Lambda(lambda k: K.batch_flatten(k))(x)
x = Dense(list_of_neurons[3])(x)
x = Activation("relu")(x)
x = Dropout(dropout)(x)
output = Dense(1, activation='sigmoid')(x)
self._model = Model(inputs=input, outputs=output)
self._model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
self._model.summary()
但是,当我尝试运行脚本时出现错误:
Traceback (most recent call last):
File "/home/kuba/Dropbox/MGR Jakub Kustra/implementacja/first_cnn.py", line 66, in <module>
mlp = MLP([60, 60, 120, 120], 0.3)
File "/home/kuba/Dropbox/MGR Jakub Kustra/implementacja/models.py", line 22, in __init__
x = Dense(list_of_neurons[3])(x)
File "/home/kuba/anaconda3/lib/python3.6/site-packages/keras/engine/topology.py", line 576, in __call__
self.build(input_shapes[0])
File "/home/kuba/anaconda3/lib/python3.6/site-packages/keras/layers/core.py", line 830, in build
constraint=self.kernel_constraint)
File "/home/kuba/anaconda3/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 87, in wrapper
return func(*args, **kwargs)
File "/home/kuba/anaconda3/lib/python3.6/site-packages/keras/engine/topology.py", line 397, in add_weight
weight = K.variable(initializer(shape),
File "/home/kuba/anaconda3/lib/python3.6/site-packages/keras/initializers.py", line 204, in __call__
scale /= max(1., float(fan_in + fan_out) / 2)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
错误发生在initializers.py
中的这一行:
def __call__(self, shape, dtype=None):
fan_in, fan_out = _compute_fans(shape)
scale = self.scale
if self.mode == 'fan_in':
scale /= max(1., fan_in)
elif self.mode == 'fan_out':
scale /= max(1., fan_out)
else:
scale /= max(1., float(fan_in + fan_out) / 2) # <<<<<<<< HERE
if self.distribution == 'normal':
stddev = np.sqrt(scale)
return K.truncated_normal(shape, 0., stddev,
dtype=dtype, seed=self.seed)
else:
limit = np.sqrt(3. * scale)
return K.random_uniform(shape, -limit, limit,
dtype=dtype, seed=self.seed)
fan_in
变量是None
。我认为 Dense
层可以提供不同大小的数据。我该如何克服这个问题?
最佳答案
不幸的是,由于一个简单的原因,您的方案无法实现:您的Flatten
后面跟着一个Dense
层。为了为 Dense
层分配张量,为什么现在应该输入形状 - 因为分配器应该分配形状为 (input_shape, output_shape)
的权重矩阵。这是您的错误来源。
您提供的问题中提出的解决方案解决了一些不同的任务。那里的问题与这样一个事实有关 - 有时需要指定批处理的形状,这就是 batch_flatten
旨在解决的问题。
关于python - 如何在 Keras 中展平不同大小的数据并在下一层中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48244919/
您好,我有一个使用 JSON.Stringify 输出到此的对象 {"0":["test1","ttttt","","","","","","","",""],"1":["test2","ghjgjh
我有以下数据框,它是执行 groupby + 聚合总和的结果: df.groupby(['id', 'category']).agg([pd.Series.sum])
我有一个 3D 三角形带(见插图)。三角形不在一个平面内。 我想展平三角形带,使所有三角形都位于第一个三角形的平面内。 计划是围绕与第一个三角形的连接边旋转第二个三角形,使其与第一个三角形在同一平面内
简单地说,我正在寻找可在 iOS 上使用的与 NSBezierPath 的 -bezierPathByFlatteningPath 等效的方法。这对我来说是直接处理 CGPath 的函数还是 UIBe
假设我有以下 JToken: @"{ ""data"": [ { ""company"": { ""ID"": ""12
如果我在多个分支中处理单个功能,我会使用 git pull branch1 branch2 branch3 将所有更改 pull 入我的主分支。但是,每个分支的所有提交日志也会被复制。如何将提交日志扁
这个问题在这里已经有了答案: How do I make a flat list out of a list of lists? (33 个答案) 关闭6年前。 假设我们有一个返回列表(或有限迭代器)
给定如下模式: root |-- first_name: string |-- last_name: string |-- degrees: array | |-- element: struc
我有一个包含多个列的表,其中一些列是相同长度的数组。我想解除它们的嵌套,以获得包含来自不同行中的数组的值的结果。 所以有这样一张 table : 我想去: 这是其中一个数组列的工作方式: WITH d
我最近买了一台 RICOH THETA S,用于在 360 vr 中录制足球比赛。 我想使用 ffmpeg 将我用我的相机录制的鱼眼电影展平,这可能吗? enter image description
这是我的 question 的后续.是否可以将表格展平为如下所示,而不是数据透视表: data = {'year': ['2016', '2016', '2015', '2014', '2013'],
我目前正在将我的 jruby/java2d 图形绘制/布局应用程序移植到 macruby/cocoa。因此我需要获取开放的 NSBezierPath 与封闭的 NSBezierPath 的交点。 在
是否有一种简单的方法来展平一组 try 以给出尝试值的成功或失败? 例如: def map(l:List[Int]) = l map { case 4 => Failure(new Excepti
我有一个包含数百万行的“服务”表。每行对应于工作人员在给定日期和时间间隔内提供的服务(每行都有一个唯一的 ID)。在某些情况下,工作人员可能会在重叠的时间范围内提供服务。我需要编写一个查询来合并重叠的
我在使用Elastic Search(ES)检索JSON对象时遇到问题。现在,当我尝试使用下面的请求正文从ES查询一些数据时, "_source": [ "data.id", "dat
我有一个订单流(来源是订单列表)。每个订单都有一个 Customer 和一个 OrderLine 列表。 我想要实现的是拥有一个以客户为键的 map ,以及属于该客户的所有订单行,在一个简单的列表中作
给定一个如下所示的复杂对象: case class Complex ( id: Long, name: String, nested: Seq[Complex] ) 实际上,这可能会变成这
我很好奇你如何将数组 Promise 映射的结果展平。我有一个函数 Promise.maps 一组值,它们本身就是 promise (需要解析)并返回一个数组。所以,我得到类似的结果: [ [1, 2
我是 CouchDB 的新手,我只是想评估它在常见任务中的实用性。其中一项任务是生成报告。我的问题是:如果我有这样的文档结构: { "_id": "29763f342ab34fd7b579fd4
假设我们有这样的 map : %{"a": %{"b": 2, "c":5}, "d": 1} 有没有类似this function的东西(js回答同一问题)内置elixr? 最终结果应该是: %{"
我是一名优秀的程序员,十分优秀!