如何多次训练1个模型并在输出层进行组合?
例如:
model_one = Sequential() #model 1
model_one.add(Convolution2D(32, 3, 3, activation='relu', input_shape=(1,28,28)))
model_one.add(Flatten())
model_one.add(Dense(128, activation='relu'))
model_two = Sequential() #model 2
model_two.add(Dense(128, activation='relu', input_shape=(784)))
model_two.add(Dense(128, activation='relu'))
model_???.add(Dense(10, activation='softmax')) #combine them here
model.compile(loss='categorical_crossentropy', #continu together
optimizer='adam',
metrics=['accuracy'])
model.fit(X_train, Y_train, #continu together somehow, even though this would never work because X_train and Y_train have wrong formats
batch_size=32, nb_epoch=10, verbose=1)
Run Code Online (Sandbox Code Playgroud)
我听说我可以通过图形模型来做到这一点,但是我找不到关于它的任何文档。
编辑:答复以下建议:
A1 = Conv2D(20,kernel_size=(5,5),activation='relu',input_shape=( 28, 28, 1))
---> B1 = MaxPooling2D(pool_size=(2,2))(A1)
Run Code Online (Sandbox Code Playgroud)
抛出此错误:
AttributeError: 'Conv2D' object has no attribute 'get_shape'
Run Code Online (Sandbox Code Playgroud) 鉴于我有一个多维索引数组,如何从这些索引创建一个布尔数组?对于一维情况,它看起来像这样:
a = [1,5,6]
b = somefunction(total_array_length=10, a)
>>> [False, True, False, False, False, True, True, False, False, False]
Run Code Online (Sandbox Code Playgroud)
对于 2D 情况,它看起来像这样:
a = [[1,3],[4,2]]
b = somefunction(total_array_length=5, a)
>>> [[False, True, False, True, False], [False, False, True, False, True]]
Run Code Online (Sandbox Code Playgroud)
我想用它来为数组创建掩码。我有一个 8 维的多维数组,对于最后一个轴,我可以找到我想要保留的元素的索引。换句话说,我有一个 8D 数组,其中最后一个轴包含我想保留在原始数组中的所有索引。有谁知道如何做到这一点?
在上面的函数中,total_array_length将等于原始数组的长度。
那么我将如何为具有形状索引数组 (23,5,76,32,1,3,8,9) 的形状数组 (23,5,76,32,1,3,8,9) 执行此操作? 注意 4<9 但除此之外它具有相同的尺寸。
a.shape = (23,5,76,32,1,3,8,4)
b = somefunction(total_array_length=9, a)
b.shape =(23,5,76,32,1,3,8,9)
Run Code Online (Sandbox Code Playgroud) 例如:我有一个具有形状的张量,(5,10)我想返回一个具有形状的张量,(5,10)但是第一个元素现在应该是最后一个元素。因此[1,2,3,4,5]变得[5,4,3,2,1]和[[1,2,3,4,5],[2,3,4,5,6]]变[[2,3,4,5,6],[1,2,3,4,5]]。
如果有关系,我正在使用tensorflow后端。