【问题标题】:How can I convert DNN R code into Python keras code?如何将 DNN R 代码转换为 Python keras 代码?
【发布时间】: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 中得到类似的结果? 提前谢谢!

【问题讨论】:

    标签: python r keras deep-learning


    【解决方案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”激活函数。谢谢!!
    猜你喜欢
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2022-12-30
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多