操作系统:Linux MINTGNU Octave version 7.1.0
我想在Octave中创建一个神经网络。
我已经安装并加载了以下pkgs:
pkg list
Package Name | Version | Installation directory
--------------+---------+-----------------------
io *| 2.6.4 | /home/siou/snap/octave/306/.local/share/octave/api-v57/packages/io-2.6.4
optim *| 1.6.2 | /home/siou/snap/octave/306/.local/share/octave/api-v57/packages/optim-1.6.2
statistics *| 1.5.2 | /home/siou/snap/octave/306/.local/share/octave/api-v57/packages/statistics-1.5.2
struct *| 1.0.18 | /home/siou/snap/octave/306/.local/share/octave/api-v57/packages/struct-1.0.18
然而,当我试图运行:
net = newff(TrainingPatterns,TrainingTargets,[neurons],{'logsig'});
我得到以下错误
error: 'newff' undefined near line 66, column 15
error: called from
NeuralNetworkDMC at line 66 column 13
您试图使用的newff
函数是nnet
包的一部分,您没有安装。
nnet包目前没有维护,最后一个版本是在2010年,所以它可能不能很好地与Octave 7一起工作(当nnet是最后一个版本时,Octave的最后一个版本是3.2.4)。你得自己测试一下。然而,虽然没有新的nnet版本,但这些年来,存储库已经发生了一些变化,这些变化可能会更好地工作。两者都会在安装过程中给出警告(我刚刚尝试过),但它们似乎无害。就我个人而言,我会从开发源代码安装。
对于nnet包,你有两个选择:1)安装最新的nnet版本(2010年发布);2)安装开发"版本";(上次更改是在2019年)。
(选项1)安装最新的nnet版本(版本0.1.13)
由于nnet被列为未维护,pkg install -forge nnet
命令将无法工作。您需要自己下载已发布的tarball。你可以在https://sourceforge.net/projects/octave/files/Octave Forge Packages/Individual Package Releases/nnet-0.1.13.tar.gz下载它。下载后,您可以使用以下命令从Octave中安装它:
# assuming it was downloaded to Downloads/
pkg install "Downloads/nnet-0.1.13.tar.gz"
安装后,您需要使用pkg load nnet
(选项2)从开发源/当前nnet开发版本安装
nnet包位于https://sourceforge.net/p/octave/nnet/的mercurial存储库中。要克隆存储库,您需要安装mercurial。您还需要GNU make。因为你在Mint上,你可以从命令行(而不是在Octave中)执行此操作。
apt install mercurial make
hg clone http://hg.code.sf.net/p/octave/nnet octave-nnet
cd octave-net
make install
完成后,您可以启动Octave并加载pkg load nnet