Keras k_pool2d后端函数引发类型错误

时间:2019-11-12 10:07:03

标签: r keras incompatibletypeerror

我需要使用R的Keras后端函数进行一些操作,而k_pool2d函数却出现以下类型错误:

library(keras)

m <- array(matrix(c(1, 1, 1, 0, 0, 
                    0, 1, 1, 1, 0, 
                    0, 0, 1, 1, 1, 
                    0, 0, 1, 1, 0, 
                    0, 1, 1, 0, 0), nrow=5, ncol=5, byrow=TRUE), dim=c(1, 5, 5, 1))

m <- k_constant(m)

k_pool2d(m, pool_size=c(2, 2), strides=c(1, 1), padding="valid", data_format="channels_last", pool_mode="max")
  

py_call_impl(可调用,dots $ args,dots $ keywords)错误:TypeError:只能将元组(而非“列表”)连接到元组

     

详细的回溯:     在pool2d中的文件“ /usr/local/share/.virtualenvs/r-tensorflow/lib/python2.7/site-packages/tensorflow/python/keras/backend.py”,行4613       步幅=(1,)+步幅+(1,)

我知道strides=c(1, 1)是一个列表而不是一个元组,但是例如,pool_size=c(2, 2)不会引发此错误。尝试使用k_conv2d函数也不会引发此错误。

如果我尝试将c(1, 1)转换为带有tuple(c(1, 1))的元组,则会引发新的错误:

  

as.integer(strides)错误:无法将“ environment”类型强制为“ integer”类型的向量

此新错误是as.integer(tuple(c(1, 1)))m类型(即“环境”)之间冲突的结果。

你们中有人遇到过同样的问题吗?

谢谢。

0 个答案:

没有答案