Henk wrote: ↑
Sat Oct 13, 2018 10:30 am
After training a network it saves network weights in a database. But once in a while it fails. So all tuning was for nothing for new weights weren't stored.
Message: Test method Skipper3.Tests.NetworkTest.TrainNetwork threw exception:
System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Cannot open database "Skipper3" requested by the login. The login failed.
Login failed for user 'hp\Henk'.
A database, when used properly, is more reliable than a file, not less reliable.
A database will give you a reliable guarantee that the data was saved.
A database can give you time ordered generations of your work.
A database has many more advantages.
A database can save floating point numbers in native floating point format and retrieve them very quickly.
If you use a memory mapped database like FastDB or Monetdb, you have an ultra fast memory mapped file at your disposal, with all the reliability kinks worked out.
When your login failed, there are basically just a few possibilities of what went wrong:
1. You gave the wrong user name
2. You gave a wrong password
3. You used integrated security and did not give rights to the user who was connecting
4. The DLL used for performing the queries was not in scope or was the wrong "bitness" (e.g. you have a 32 bit DLL but your app is 64 bits)
But of course, a plain file will also work. On the other hand, many of these things can go wrong when you are trying to use a file:
http://pubs.opengroup.org/onlinepubs/00 ... rno.h.html
So it can be more problematic than you might imagine.
E.g. do you have permissions to the folder?
E.g. the file is locked by another user
E.g. the disk is full
A database has a nice way to tell you what is wrong.
With an ordinary file, you will have to do some operating system specific lookups, which are hard to make portable.