2017-04-25 13 views
0

テンソルフロー内のテンソルフローでkerasRパッケージを使用してRでニューラルネットワークを作成しようとしています。環境。R、keras:TypeError: 'shape'パラメータに渡された値のデータ型がfloat32で許容値のリストにありません:int32、int64

library(reticulate) 
use_condaenv("tensorflow", required = TRUE) 

py_config() 

結果は次のとおりです:ここで

あなたは私のセットアップ見ることができます

python:   C:\Users\Miguel\Anaconda3\envs\tensorflow\python.exe 
libpython:  C:/Users/Miguel/Anaconda3/envs/tensorflow/python35.dll 
pythonhome:  C:\Users\Miguel\ANACON~1\envs\TENSOR~1 
version:  3.5.3 |Continuum Analytics, Inc.| (default, Feb 22 2017, 21:28:42) [MSC v.1900 64 bit (AMD64)] 
Architecture: 64bit 
numpy:   C:\Users\Miguel\ANACON~1\envs\TENSOR~1\lib\site-packages\numpy 
numpy_version: 1.12.1 

python versions found: 
C:\Users\Miguel\Anaconda3\envs\tensorflow\python.exe 
C:\Users\Miguel\ANACON~1\python.exe 

をそして、これは私のコードです:

:このエラーメッセージをスロー

library(kerasR) 
mod <- Sequential() 
mod$add(Dense(units = 200, input_shape = 13)) 

Error in py_call_impl(callable, dots$args, dots$keywords) : 
    TypeError: Value passed to parameter 'shape' has DataType float32 not in list of allowed values: int32, int64 

Detailed traceback: 
    File "c:\users\miguel\documents\github\keras\keras\models.py", line 430, in add layer(x) 
    File "c:\users\miguel\documents\github\keras\keras\engine\topology.py", line 558, in __call__ self.build(input_shapes[0]) 
    File "c:\users\miguel\documents\github\keras\keras\layers\core.py", line 827, in build constraint=self.kernel_constraint) 
    File "c:\users\miguel\documents\github\keras\keras\legacy\interfaces.py", line 88, in wrapper return func(*args, **kwargs) 
    File "c:\users\miguel\documents\github\keras\keras\engine\topology.py", line 391, in add_weight weight = K.variable(initializer(shape), dtype=dtype, name=name) 
    File "c:\users\miguel\documents\github\keras\keras\initializers.py", line 208, in __call__ dtype=dtype, seed=self.seed) 
    File "c:\users\miguel\documents\github\keras\keras\backend\tensorflow_backend.py", l 

残念ながら、私はこのR/kerasR/tensrflow/anaconda設定の提案を見つけることはできません。あなたの助けは本当に高く評価されます。

私のセッション情報:

R version 3.3.2 (2016-10-31) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows >= 8 x64 (build 9200) 

locale: 
[1] LC_COLLATE=Spanish_Spain.1252 LC_CTYPE=Spanish_Spain.1252 
[3] LC_MONETARY=Spanish_Spain.1252 LC_NUMERIC=C     
[5] LC_TIME=Spanish_Spain.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] kerasR_0.4.1 reticulate_0.7 

loaded via a namespace (and not attached): 
[1] tools_3.3.2 Rcpp_0.12.10 knitr_1.15 
+0

浮動小数点ではなく、intを渡す必要があります。 –

答えて

0

エラーがあなたのtensorflowコードのどこかで、あなたはパラメータにfloat値を代入しようと言うが、そのパラメータがフロートすることはできません、それはint型である必要があり、

+0

ありがとうございます。しかし、キャスト:mod $ add(Dense(units = 200、input_shape = as.integer(13)))は同じエラーを生成します。私が使用したコードは[Keras Deep Learning LibraryへのRインターフェース](https://cran.r-project.org/web/packages/kerasR/vignettes/introduction.html)から取った単語ごとのものです。 – user5441653

0

私もこの問題で苦労し、https://github.com/statsmaths/kerasR/issues/13のサポートスレッドで提案されているいくつかのハックを成功させようとしました。

最終的に機能したソリューションは、kerasRライブラリを完全に放棄していましたが、RStudioチームによってkerasが採用されました。

実際に働くことの美徳と同等の機能を提供するようです。また、RStudioプロジェクトからのサポートを得ているようだが、現在のところ、PythonのDLフレームワークでは避けられないような継続的な依存関係を克服できる可能性が高い。

関連する問題