R语言全连接神经网络Error in py_call_impl(callable, dots$args, dots$keywords) : ValueError: in user code

深度学习报错

  • 一级目录

一级目录

老师让我做ANN去对比一下,以前有很多方法可以做,用 nnet包/RSNNS包/lattice 包等等,之前碍于深度学习环境没有搭好,就没用keras,这回可以以使用了,就想用一下.感觉应该不难,但是还是出了问题.
就是下面这种情况

 Error in py_call_impl(callable, dots$args, dots$keywords) : 
  ValueError: in user code:

    C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py:571 train_function  *
        outputs = self.distribute_strategy.run(
    C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:951 run  **
        return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
    C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2290 call_for_each_replica
        return self._call_for_each_replica(fn, args, kwargs)
    C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2649 _call_for_each_replica
        return fn(*args, **kwargs)
    C:\Users\Bpbim-01\anaconda3\envs\r-tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py:531 train_step  **
        y_pred = self(x, training=True)
    C:\Users\Bpbim-01\ana 

我感觉我过程完全没有问题,怎么改都是报错。最后找到了问题,数据输入不对
在训练集的X需要改成matrix如下:

 train_x <- as.matrix(train_data[,-length(train_data)])

这样就可以了,找了好几个小时,我都要吐血了,也不是我找到了,是以前好像遇到过,类似方法解决了。
对简单的方法就是使用str()一下数据集,要是显示data.frame应该就是不能运行的。
PS: to_categorical()这个函数在使用的时候,内部的数据一定时从0开始算的,如果用正常情况下标签数据XX<-as.factor(XX),里面的数据会从1开始的计算。所以XX带入到 to_categorical()要减去一个1。也就是to_categorical((XX-1),num = x)。(上面这条没有经过代码验证,是当时做的时候有这么记忆)

你可能感兴趣的:(R,Rstudio,tensorflow,神经网络,r语言,tensorflow)