如何将 DNN R 代码转换为 Python keras 代码?

Posted

技术标签:

【中文标题】如何将 DNN R 代码转换为 Python keras 代码?【英文标题】:How can I convert DNN R code into Python keras code? 【发布时间】:2022-01-14 07:12:47 【问题描述】:

我用 R 编写了一个 DNN 代码,我也想在 python 中运行它。

我也在 python 中尝试过,但是在 python 中运行时有很大的不同。

我的 R 代码如下所示。

dnn.f=dbn.dnn.train(x.train, y.train, hidden = c(100, 100, 100), activationfun = "sigm")

我在python中试过的代码是这样的。

from tensorflow.keras.models import Sequential 
from tensorflow.keras.layers import Dense      
from tensorflow.keras.layers import Dropout    
model = Sequential()
model.add( Dense(100, activation='sigmoid', input_shape=(22,)) ) 
model.add( Dropout(0) ) 
model.add( Dense(100, activation='sigmoid' ) )
model.add( Dropout(0) )
model.add( Dense(100, activation='sigmoid' ) )
model.add( Dropout(0) )
model.add( Dense(1, activation='sigmoid') ) 
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()

如何在 python 中得到类似的结果? 提前谢谢!

【问题讨论】:

【参考方案1】:

值得一提的是,您不需要为此切换到 python,keras 在 R 中可用。您可以在 R 中使用 keras 定义类似的模型,如下所示:

library(keras)
model <- keras_model_sequential(input_shape = c(22)) %>%
  layer_dense(100, activation = "relu") %>%
  layer_dropout(.4) %>%
  layer_dense(100, activation = "relu") %>%
  layer_dropout(.4) %>%  
  layer_dense(100, activation = "relu") %>%
  layer_dropout(.4) %>%
  layer_dense(1, activation = "sigmoid")

model %>% compile(loss = 'binary_crossentropy', 
                  optimizer = 'adam', metrics = 'accuracy')
model # prints summary by default

【讨论】:

感谢您的友好回复。但我认为绘制学习曲线并在 R 中尝试其他方法对我来说有点困难,所以我尝试在 python 中实现这段代码以获得类似的结果。 但是我不知道 R 中的“dbn.dnn”函数在隐藏层中使用了“relu”激活函数。谢谢!!

以上是关于如何将 DNN R 代码转换为 Python keras 代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 TensorFlow 模型转换为 TFLite 模型

将聚合函数从 R 转换为 python [重复]

Keras入门搭建深度神经网络(DNN)解决多分类问题

如何将 Python 列表转换为 Python Dataframe?

如何将表格十六进制颜色代码#RRGGBB 转换为 R、G、B 值

将数学函数从 Python 转换为 C++