自学内容网 自学内容网

C++builder中的人工智能(29):如何在Windows项目中导入FANN库

这篇文章旨在使用由Steffen Nissen开发的FANN库实现人工神经网络。FANN库支持20多种编程语言,包括Delphi和C++ Builder。您可以在FANN的官方网站上找到完整信息和文档,并下载FANN的源文件。

步骤:

  1. 下载FANN库

    • 从Nissen的官方网站下载FANN库包(http://leenissen.dk),包含二进制文件、cmake文件、数据集、示例和src文件夹中的源代码。
  2. 创建C++ Builder应用程序

    • 添加一个高度为32像素的面板(Panel1)和两个按钮(TEST, TRAIN)到面板中。将面板对齐到Form1的底部。添加一个Memo(Memo1)到表单中,作为我们的可视化输出位置。
  3. 创建FANN_Test文件夹

    • 将所有项目文件以“FANN_”前缀保存在这个文件夹中。
  4. 添加源文件

    • 从FANN库包中复制“src”文件夹到FANN_Test文件夹中。在RAD Studio/C++ Builder/Delphi IDE中,将src文件夹拖到“FANN_Project1.exe”的Project Manager上。
  5. 包含FANN头文件

    • 在IDE菜单中,转到项目 -> 选项 -> C++编译器 -> 目录和条件 -> 包含文件搜索路径。添加FANN_Test文件夹中的“src/include”文件夹。
  6. 添加头文件

    • 在FANN_Unit1.cpp中,添加#include “floatfann.h”
  7. 测试项目

    • 通过项目 -> 构建所有项目菜单构建所有项目。如果成功,则所有步骤正确。如果有错误,请检查上述步骤。
  8. 训练FANN

    • 双击TRAIN按钮,添加训练代码,例如使用xor.data文件训练神经网络,并将训练好的网络保存为"xor_float.net"。
      /* --- TRAINING FANN (from the simple_train.c) --- */
       
      const unsigned int num_input = 2;
      const unsigned int num_output = 1;
      const unsigned int num_layers = 3;
      const unsigned int num_neurons_hidden = 3;
      const float desired_error = (const float) 0.001;
      const unsigned int max_epochs = 500000;
      const unsigned int epochs_between_reports = 1000;
       
      struct fann *ann = fann_create_standard(num_layers, num_input, num_neurons_hidden, num_output);
       
      fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
      fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);
       
      fann_train_on_file(ann, "xor.data", max_epochs, epochs_between_reports, desired_error);
       
      fann_save(ann, "xor_float.net");
       
      fann_destroy(ann);
       
      Memo1->Lines->LoadFromFile("xor_float.net");
       
      Memo1->Lines->Add("Training done on xor_float.net file as above");

  9. 测试FANN

    • 双击TEST按钮,添加测试代码,加载"xor_float.net"网络,并进行测试。
      /* ---- TESTING FANN (from the simple_test.c) ----*/
      char s[255];
       
      fann_type *calc_out;
      fann_type input[2];
       
      struct fann *ann = fann_create_from_file("xor_float.net");
       
      input[0] = -1;
      input[1] = 1;
      calc_out = fann_run(ann, input);
       
      Memo1->Lines->Add("");
      Memo1->Lines->Add("Testing ... ");
      sprintf(s, "xor test (%f,%f) -> %f\n", input[0], input[1], calc_out[0]);
      Memo1->Lines->Add(s);
      Memo1->Lines->Add("Testing Done ! ");
       
      fann_destroy(ann);

注意事项:

  • 如果您要为其他编译器编译,请不要忘记像上面那样将“src/include”添加到其项目选项中。
  • 请检查FANN库的示例、其他命令和选项,以了解其机制。

通过遵循这些步骤,您可以在C++ Builder Windows项目中成功导入和使用FANN库。这将使您能够利用FANN库的强大功能,为您的机器学习项目构建和训练人工神经网络。


原文地址:https://blog.csdn.net/caridle/article/details/143752456

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!