0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
1

Подключить библиотеку FANN

04.01.2017, 14:02. Показов 3567. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто знает как можно подключить FANN к проекту C#? мучался уже неделю, никак не получается это сделать. Вот вроде как написано, но так ничего и не взлетело
http://leenissen.dk/fann/wp/
https://github.com/joelself/FannCSharp
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2017, 14:02
Ответы с готовыми решениями:

Подключить библиотеку
Я сам только-только начинаю разбираться в C#. Хотел к своему проекту подключить библиотеку, но в...

Подключить библиотеку
Требуется, чтобы C# не ругался на строчку using AForge.Imaging.Filters.ColorFiltering; Я скачал...

Как подключить библиотеку?
Нужно подключит эту библиотеку и нарисовать линию в консосли. Библиотеку написал, но подключить не...

Подключить библиотеку к проекту
Собрал я библиотеку классов с кодом using System; namespace TestLib { public class...

17
Администратор
Эксперт .NET
17075 / 13418 / 5232
Регистрация: 17.03.2014
Сообщений: 27,456
Записей в блоге: 1
04.01.2017, 16:25 2
Dimarik__1, непонятно в чем тут сложность. На гитхабе все подробно расписано. Раз не получается, то давай еще раз по шагам

1) Создаем ноый проект (я создал консольное приложение т.к. собирался брать пример именно для консоли)
2) Качаем архив с библиотекой со страницы релизов. Что и когда выбирать описано на гитхабе. Я же скачал архив FANNCSharpReleasex86.zip
3) Создаем папку Libs\FANNCSharp в папке с solution и распаковываем туда архив
4) Добавляем reference на сборку Libs\FANNCSharp\FANNCSharp.dll
5) В свойствах проекта прописываем post build событие для копирования неуправляемых dll библиотеки
Windows Batch file
1
2
3
xcopy "$(SolutionDir)\Libs\FANNCSharp\fanndouble.dll" "$(TargetDir)" /y /d
xcopy "$(SolutionDir)\Libs\FANNCSharp\fannfixed.dll"  "$(TargetDir)" /y /d
xcopy "$(SolutionDir)\Libs\FANNCSharp\fannfloat.dll"  "$(TargetDir)" /y /d
Это заканчивает универсальную подготовительную часть. Далее специфика для конкретного примера который я решил попробовать - SimpleTrain

6) Взял исходный код файла SimpleTrain.cs и вставил его вместо стандартного кода консольного приложения
7) Скачал файл xor.data, включил его в состав проекта и настроил его копирование в выходной каталог.
8) Убрал относительные пути из примера, оставив только имена файлов
9) Запустил проект, увидел вывод на экране и файл xor_float.net в выходном каталоге
1
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
05.01.2017, 14:34  [ТС] 3
xcopy "$(SolutionDir)\Libs\fanndoubled.dll" "$(TargetDir)" /y /d
вот это я написал. В результате

Ошибка 1155 выход из команды "xcopy "D:\!OpenCVКластеризация\\Libs\fanndoubled.dll" "D:\!OpenCVКластеризация\OpenCVКластеризация\bin\x64\Debug" /y /d" с кодом 4. OpenCVКластеризация

Добавлено через 16 секунд
NeuralNet net = new NeuralNet(NetworkType.LAYER, num_layers, num_input, num_neurons_hidden, num_output);
Вот на этой строчке вылетает такая ошибка:
Инициализатор типа "FannWrapperFloat.fannfloatPINVOKE" выдал исключение.

Добавлено через 15 секунд
попробовал так сделать. Вроде скомпилировалось.
xcopy "D:\!OpenCVКластеризация\OpenCVКластеризация\Libs\FANNCSharp\fanndoubled.dll " "D:\!OpenCVКластеризация\OpenCVКластеризация\bin\x64\Debug" /y /d
Но все равно вылетает на строчке кода
NeuralNet net = new NeuralNet(NetworkType.LAYER, num_layers, num_input, num_neurons_hidden, num_output);
Инициализатор типа "FannWrapperFloat.fannfloatPINVOKE" выдал исключение.
0
Администратор
Эксперт .NET
17075 / 13418 / 5232
Регистрация: 17.03.2014
Сообщений: 27,456
Записей в блоге: 1
05.01.2017, 14:48 4
Цитата Сообщение от Dimarik__1 Посмотреть сообщение
Инициализатор типа "FannWrapperFloat.fannfloatPINVOKE" выдал исключение.
Что написано во вложенном исключении?
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
05.01.2017, 15:17  [ТС] 5
Вот скрины
Миниатюры
Подключить библиотеку FANN   Подключить библиотеку FANN   Подключить библиотеку FANN  

0
Администратор
Эксперт .NET
17075 / 13418 / 5232
Регистрация: 17.03.2014
Сообщений: 27,456
Записей в блоге: 1
05.01.2017, 15:29 6
Dimarik__1, в innerexception видно инициализатор другого типа выдал исключение. Значит нужно смотреть что находится в его вложенном исключении. Чтобы не заниматься этим до бесконечности выложи полный текст исключения (его можно получить с помощью ссылки "Скопировать сведения исключения в буфер обмена")
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
05.01.2017, 16:29  [ТС] 7
Код
System.TypeInitializationException не обработано
  HResult=-2146233036
  Message=Инициализатор типа "FannWrapperFloat.fannfloatPINVOKE" выдал исключение.
  Source=FANNCSharp
  TypeName=FannWrapperFloat.fannfloatPINVOKE
  StackTrace:
       в FannWrapperFloat.fannfloatPINVOKE.new_uintArray(Int32 jarg1)
       в FANNCSharp.uintArray..ctor(Int32 nelements)
       в FANNCSharp.Double.NeuralNet..ctor(NetworkType netType, UInt32 numLayers, UInt32[] args)
       в OpenCVКластеризация.Form1.buttonTestNeural_Click(Object sender, EventArgs e) в d:\!OpenCVКластеризация\OpenCVКластеризация\Form1.cs:строка 4213
       в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в System.Windows.Forms.ButtonBase.WndProc(Message& m)
       в System.Windows.Forms.Button.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       в OpenCVКластеризация.Program.Main() в d:\!OpenCVКластеризация\OpenCVКластеризация\Program.cs:строка 19
       в System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       в System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.TypeInitializationException
       HResult=-2146233036
       Message=Инициализатор типа "SWIGExceptionHelper" выдал исключение.
       Source=FANNCSharp
       TypeName=SWIGExceptionHelper
       StackTrace:
            в FannWrapperFloat.fannfloatPINVOKE.SWIGExceptionHelper..ctor()
            в FannWrapperFloat.fannfloatPINVOKE..cctor()
       InnerException: System.DllNotFoundException
            HResult=-2146233052
            Message=Не удается загрузить DLL "fannfloatd": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E)
            Source=FANNCSharp
            TypeName=""
            StackTrace:
                 в FannWrapperFloat.fannfloatPINVOKE.SWIGExceptionHelper.SWIGRegisterExceptionCallbacks_fannfloat(ExceptionDelegate applicationDelegate, ExceptionDelegate arithmeticDelegate, ExceptionDelegate divideByZeroDelegate, ExceptionDelegate indexOutOfRangeDelegate, ExceptionDelegate invalidCastDelegate, ExceptionDelegate invalidOperationDelegate, ExceptionDelegate ioDelegate, ExceptionDelegate nullReferenceDelegate, ExceptionDelegate outOfMemoryDelegate, ExceptionDelegate overflowDelegate, ExceptionDelegate systemExceptionDelegate)
                 в FannWrapperFloat.fannfloatPINVOKE.SWIGExceptionHelper..cctor()
            InnerException:
0
Администратор
Эксперт .NET
17075 / 13418 / 5232
Регистрация: 17.03.2014
Сообщений: 27,456
Записей в блоге: 1
05.01.2017, 16:46 8
Цитата Сообщение от Dimarik__1 Посмотреть сообщение
Не удается загрузить DLL "fannfloatd": Не найден указанный модуль.
Вот и ответ. Можно упростить команды для post build шага которые я привел ранее и просто копировать все dll
Windows Batch file
1
xcopy "$(SolutionDir)\Libs\FANNCSharp\*.dll" "$(TargetDir)" /y /d
1
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
05.01.2017, 17:12  [ТС] 9
С переменными среды такая ошибка:
xcopy "$(SolutionDir)\Libs\FANNCSharp\*.dll" "$(TargetDir)" /y /d
Ошибка 1 выход из команды "xcopy "D:\!OpenCVКластеризация\\Libs\FANNCSharp\*.dll" "D:\!OpenCVКластеризация\OpenCVКластеризация\bin\x64\Debug" /y /d
" с кодом 4. OpenCVКластеризация
0
Администратор
Эксперт .NET
17075 / 13418 / 5232
Регистрация: 17.03.2014
Сообщений: 27,456
Записей в блоге: 1
05.01.2017, 18:02 10
Dimarik__1, не знаю в чем дело. Это надо на твоем компьютере. Убери эту команду и скопируй файлы вручную пока.
1
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
05.01.2017, 18:36  [ТС] 11
не помогло. Можете скинуть ваш проект, который работает полностью?

Добавлено через 4 минуты
у меня файлы внутри папки D:\!OpenCVКластеризация\OpenCVКластеризация\bin\x64\Debug
Я скачивал архив FANNCSharp.DoubleDebugx64 - не помогло ничего.
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
05.01.2017, 18:48  [ТС] 12
вроде как у меня 64 разрядное приложение. Пытался подключить библиотеку к пустому проекту. Ничего не получилось. Та же самая ошибка
Вложения
Тип файла: zip WindowsFormsApplication1.zip (2.36 Мб, 16 просмотров)
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
05.01.2017, 18:49  [ТС] 13
Вы можете глянуть на мои исходники? Может я что не так делаю? Спасибо
0
Администратор
Эксперт .NET
17075 / 13418 / 5232
Регистрация: 17.03.2014
Сообщений: 27,456
Записей в блоге: 1
05.01.2017, 21:00 14
Dimarik__1, попробовал твой проект. Запустился без ошибок. У тебя случайно не установлен антивирус Avast? Если да, то добавь папку с проектом в список исключений или вообще отключи его. На всякий случай прикладываю два моих тестовых проекта. Первый консольный под x86 с использованием FANNCSharpReleasex86.zip и с xcopy. Второй под Windows Forms + x64 + FANNCSharp.FloatReleasex64.zip. Оба запускаются без ошибок на моей машине.

P.S. Вижу ты качаешь Debug версии библиотеки. Напрасно. Лучше брать Release т.к. врядли ты собираешься заниматься отладкой этой библиотеки.
Вложения
Тип файла: zip FannTest.zip (245.2 Кб, 37 просмотров)
Тип файла: zip FannTest2.zip (180.1 Кб, 25 просмотров)
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
05.01.2017, 21:17  [ТС] 15
касперский у меня. отключил и все равно не пашет
0
Администратор
Эксперт .NET
17075 / 13418 / 5232
Регистрация: 17.03.2014
Сообщений: 27,456
Записей в блоге: 1
05.01.2017, 21:21 16
Dimarik__1, попробуй для эксперимента отключить его и посмотри поможет ли это.
0
0 / 0 / 1
Регистрация: 27.12.2014
Сообщений: 298
05.01.2017, 21:27  [ТС] 17
А твой проект норм отработал. Странно

Добавлено через 28 секунд
отключение антивируса не помогло. может с Debug связано

Добавлено через 4 минуты
Да. Подключил Realise и все заработало
0
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 4
21.02.2020, 23:03 18
Всем, привет. Простите, что поднимаю столь старую тему, но создавать новую на тему FANN, кажется уже нет смысла.
Практически доделал программу, обучил, сохранил файл
C#
1
 net.Save("skynet.ann");
, но не могу понять как загрузить результаты обучения обратно в в NeuralNet ?

C#
1
2
net = new NeuralNet(NetworkType.LAYER, num_layers, num_input, num_neurons_hidden, num_output);
net.CreateFromFile("skynet.ann");
//Error CS1061 'NeuralNet "does not contain a definition for" CreateFromFile "and could not find an extension method" CreateFromFile "that takes the type" NeuralNet "as the first argument (possibly using the directive or a reference to the assembly).

С другими версиями FANN работало, но в последних понять не могу.
Помогите, пожалуйста.
0
21.02.2020, 23:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2020, 23:03
Помогаю со студенческими работами здесь

Не удается подключить библиотеку, написанную на C
Стоит задача написания программы для связи пока что двух ПК посредством интерфейса CAN. Имеется...

Как подключить библиотеку Math
как её подключить? думал, что как-нить using System.Math;, а чёт никак... как воспользоваться...

Как подключить библиотеку AngleSharp?
Уважаемые, задам совсем нубский вопрос. Появился интерес попытаться попарсить сайты, для чего...

Не могу подключить библиотеку algib
Кто делал дискретное двумерное преобразование фурье? Нужно преобразовать таким образом картинку. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru