小编ryh*_*h12的帖子

在CNN模型中计算Conv层的输出大小

在卷积神经网络中,如何知道特定转换层的输出?(我正在使用keras构建CNN模型)

例如,如果我使用一维转换层,其中number_of_filters = 20,kernel_size = 10和input_shape(500,1)

 cnn.add(Conv1D(20,kernel_size=10,strides=1, padding="same",activation="sigmoid",input_shape=(Dimension_of_input,1)))
Run Code Online (Sandbox Code Playgroud)

如果我使用的是二维转换层,其中number_of_filters = 64,kernal_size =(5,100),input_shape =(5,720,1)(高度,宽度,通道)

 Conv2D(64, (5, 100),
       padding="same",
       activation="sigmoid",
       data_format="channels_last",
       input_shape=(5,720,1)
Run Code Online (Sandbox Code Playgroud)

以上两个转换层的输出数量是多少?在卷积神经网络中,是否有任何方程可用来了解卷积层的输出数量?

neural-network conv-neural-network keras keras-layer

5
推荐指数
1
解决办法
1973
查看次数

如何仅在自动编码器训练期间保存编码器部分的最佳权重?

我使用 keras 和张量流来实现带有 CNN 的深度自动编码器:

所以基本上该模型类似于:

    input_data = Input(shape=(40,500,1))

    #encoder  
    x= Conv2D(32,kernel_size=(3,3), padding="same",activation='linear')(input_data)       
    encoded= Conv2D(15,kernel_size=(1,2), strides=(1,2), padding="same",activation='linear')(x)  


    #decoder             
    x= Conv2DTranspose(15,kernel_size=(1,2), padding="same",activation='linear')(encoded)        
    x= Conv2DTranspose(32,kernel_size=(3,3), padding="same",activation='linear')(x)
    decoded = Conv2DTranspose(1, (3, 3), activation=activationfuntion, padding="same")(x)

    autoencoder = Model(inputs=input_data,outputs=decoded)
    encoder = Model(inputs=input_data,outputs=encoded)  
Run Code Online (Sandbox Code Playgroud)

为了在训练期间保存最佳模型权重,我使用 ModelCheckpoint:

        autoencoder.compile(loss='mean_squared_error', optimizer='rmsprop');

        checkpoint=ModelCheckpoint('bestweight.best.hdf5',monitor='val_loss',verbose=1,save_best_only=True,mode='min');   
        callbacks_list=[checkpoint]

        history_info =autoencoder.fit(x_train, x_train,
                        batch_size=batch_size,
                        epochs=50,
                        validation_data=(x_validation,x_validation),
                        callbacks=callbacks_list,
                        shuffle=True)
Run Code Online (Sandbox Code Playgroud)

然后在测试数据集上进行测试:

 autoencoder.load_weights('bestweight.best.hdf5');
 autoencoder.predict(test_data);
Run Code Online (Sandbox Code Playgroud)

我的问题是:

我知道如何保存整个自动编码器的最佳权重,但是有没有办法只保存编码部分的最佳训练权重,以便我稍后可以使用它进行测试。所以我可以这样使用它:

 encoder.load_weights('encoderbestweight.best.hdf5');
 encoder.predict(test_data);
Run Code Online (Sandbox Code Playgroud)

python autoencoder keras tensorflow

4
推荐指数
1
解决办法
3687
查看次数

使用 savetxt 时添加到现有内容(避免覆盖)PYTHON

我正在使用 savetxt 将名为“newresult”的 numpy 数组保存到文件中。

np.savetxt("test.csv", newresult, delimiter=",")
Run Code Online (Sandbox Code Playgroud)

'newresult' numpy 数组在一个循环内,所以在每个循环中 newresult 的内容都会改变。我想将新内容添加到 test.csv 文件中。

但是在每个循环中

 np.savetxt("test.csv", newresult, delimiter=",")
Run Code Online (Sandbox Code Playgroud)

正在覆盖 test.csv 的内容,而我想添加到现有内容中。

例如,

循环 1:

 newresult=
   [[ 1  2 3 ]
    [ 12  13  14]]
Run Code Online (Sandbox Code Playgroud)

循环 2

newresult=
      [[ 4  6 8 ]
       [ 19  14  15]]
Run Code Online (Sandbox Code Playgroud)

test.csv 内容是:

  1, 2 ,3
  12,13,14
  4,6,8
  19,14,15
Run Code Online (Sandbox Code Playgroud)

python arrays numpy python-3.x

2
推荐指数
1
解决办法
4162
查看次数

在字符串的单元格数组中找到最大数字(MATLAB)

如果我有一个由字符串组成的单元格数组M(其中一些是字符串包含单词,其他包含数字)

M={'r' '2'  '17'
   '2' 's'  '15'
   '5' '10' 'rr'
   }
Run Code Online (Sandbox Code Playgroud)

如何在第二列中获得最大数量,那么答案将是10?

matlab cell-array

1
推荐指数
1
解决办法
142
查看次数

使用正则表达式模式(JAVA)获取两个表达式之间的所有子字符串

我有以下字符串(str):

 String  str="${name}/${family}/${child}/${fname}"
Run Code Online (Sandbox Code Playgroud)

我在java中使用什么正则表达式模式来获取“${”和“}”之间的所有子字符串并将它们保存在一个arraylist中,因此结果将是一个具有以下值的数组列表:“name”、“family”、“孩子”,“名字”

java regex string arraylist

0
推荐指数
1
解决办法
319
查看次数