我通过keras为R在R中构建了一个图像分类模型.
精度达到98%左右,而python的准确性却很差.
R的Keras版本是2.1.3,而python是2.1.5
以下是R型号代码:
model=keras_model_sequential()
model=model %>%
layer_conv_2d(filters = 32,kernel_size = c(3,3),padding = 'same',input_shape = c(187,256,3),activation = 'elu')%>%
layer_max_pooling_2d(pool_size = c(2,2)) %>%
layer_dropout(.25) %>% layer_batch_normalization() %>%
layer_conv_2d(filters = 64,kernel_size = c(3,3),padding = 'same',activation = 'relu') %>%
layer_max_pooling_2d(pool_size = c(2,2)) %>%
layer_dropout(.25) %>% layer_batch_normalization() %>% layer_flatten() %>%
layer_dense(128,activation = 'relu') %>%
layer_dropout(.25)%>%
layer_batch_normalization() %>%
layer_dense(6,activation = 'softmax')
model %>%compile(
loss='categorical_crossentropy',
optimizer='adam',
metrics='accuracy'
)
Run Code Online (Sandbox Code Playgroud)
我尝试在python中使用相同的输入数据重建相同的模型.
虽然,性能完全不同.精度甚至低于30%
因为R keras正在为run keras调用python.使用相同的模型架构,它们应该获得类似的性能.
我想知道这个问题是否由preprocess引起,但仍然显示我的python代码:
model=Sequential()
model.add(Conv2D(32,kernel_size=(3,3),activation='relu',input_shape=(187,256,3),padding='same'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(BatchNormalization())
model.add(Conv2D(64, (3, 3), activation='relu',padding='same'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(BatchNormalization())
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.25))
model.add(BatchNormalization())
model.add(Dense(len(label[1]), activation='softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)
这是一个简单的分类.我和大多数指令一样.
找不到别人面临同样的问题.所以想问问它是如何发生以及如何解决的.谢谢
这是一个巨大的差异,因此代码中可能存在错误或数据中存在意外的情况,但从in中复制Keras
结果比看起来更困难,因为在侧面设置种子是不够的。相反,您应该使用,它附带了和 的R 库。请注意,为了获得完全的重现性,您需要。另请参阅堆栈和tf文档。另外,这里是一个使用 github 版本和公共数据集的示例。另外,请注意类似接受参数的函数。R
Python
R
set.seed
use_session_with_seed
tensorflow
keras
use_session_with_seed(..., disable_gpu=TRUE, disable_parallel_cpu=TRUE)
kerasformula
layer_dropout
seed
归档时间: |
|
查看次数: |
170 次 |
最近记录: |