如何将 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 模型
如何将 Python 列表转换为 Python Dataframe?