"New Neural" is an Open Source neural network engine project for the MetaTrader 5 platform. - page 73

 

Shortcomings of

  • XML syntax is redundant.[8]
  • The size of XML document is significantly larger than the binary representation of the same data. In rough estimations the value of this factor is taken as 1 order of magnitude (10 times).
  • XML document size is significantly larger than a document in alternative text-based data transfer formats (e.g.JSON[4],YAML,Protocol Buffers) and especially in data formats optimized for a particular use case.
  • XML redundancy can affect application efficiency. The cost of storing, processing, and transferring data increases.
  • XML contains metadata (about field names, class names, structure nesting), and at the same time XML is positioned as an open systems communication language. When transferring a large number of objects of the same type (the same structure) between systems, there is no point in transferring metadata repeatedly, although it is contained in each instance of the XML description.
  • For a large number of tasks you don't need all the power of XML syntax and can use much simpler and more productive solutions.

I apologize for the plagiarism.
 

I propose XML as a standard for storing configurations, networks, settings, ...

And it's only needed in the initialization/save phase.

In the process of workflow, moreover in the learning process, we don't talk about XML.

her.human:
I apologize for the plagiarism.

But monsters like Oracle, Microsoft, ... ...grit their teeth, shove their "binary" (usually commercial) standards away and turn around to open standards

Subtracting 10 MBytes of XML is no problem for modern computers

MS Word .docx document of 100 MBytes is not scary ?

If it's a problem to load a network from an XML file, it's not realistic to train it on such hardware - these are tasks of incomparable complexity

 
yu-sha:

I propose XML as a standard for storing configurations, networks, settings, ...

And it's needed only in the initialization/storage phases.

In the process of workflow and even more so in the process of training, it's not about XML

Look, your file in xml has size 916 bytes and in binary representation 64 bytes, even if you don't click on the header.

7 header variables + 1 per table = 8 ulong * 8 bytes = 64

 
Urain:

Look, your file in xml has a size of 916 bytes, and in binary representation, even if you do not click the header 64 bytes

7 header variables + 1 per table = 8 ulong * 8 bytes = 64


To open this page of the forum, I'm pumping through the Internet not less than 100 kilobytes

It's 2012 and I don't use such measurement unit as byte for a long time)

P.S.

I just suggested my own version - it's up to the public to decide

 
yu-sha:

I propose XML as a standard for storing configurations, networks, settings, ...

And it's only needed in the initialization/save phase.

In the process of workflow, and even more so in the process of training, we don't talk about any XML

To optimise network structure, it is necessary (on the fly) to change the number of neurons and connections.

Is it possible to do this?

If you don't mind, please comment your codes, you know other people's code is too long to read without any comments. Thank you.

 
her.human:

To optimize the network structure it is necessary (on the fly) to change the number of neurons and connections.

Is it possible to do this?

If it is not difficult, please comment your codes, you know, it takes a long time to understand other people's codes without comments. Thank you.

This is a training issue. Potentially - there is such a possibility, in practice, I have not used it.

Usually in the learning process, the structure of the network does not change - only the adaptive parameters are changed.

Your definition of the problem is already a meta-level, to teach the architect to change the structure of the network, so that the resulting network is trained more successfully than others.

The codes are posted "as is" - I made them for myself and, as usual, quickly, so excuse me.

In a good way, everything there should be reconsidered by bones, after the whole project will be worked out

 
yu-sha:

To open this page of the forum I download at least a hundred kilobytes through the Internet.

It's 2012 and I don't use such measurement unit as byte for a long time)

P.S.

I just offered my version - it's up to people to decide.

Let's make an experiment, create an xml loader for 1000 neurons with 100 connections per neuron, and post the file size, structure whatever you want.

I can just calculate on my knees how much space my variant 1000*1000/8=~125 Kb, and yours can't, so I can't compare...

If your version will have acceptable size why not.

 
Urain:

Not the point, memory, and on the GPU will be difficult to implement the twists of object logic, I have a pretty good idea how to implement the NS, as a complex interaction of objects within which there are functions of GPU calculations (this is about the micro level), but I can not imagine how this complex object code those whole NS to slip the GPU as several FF with different sets of weights (macro level) ???

The question is rhetorical, although if anyone presents it, I would love to hear about it.

That's why the choice was made in favor of CUDA rather than the more common OpenCL

The code in CUDA is object-oriented and it is possible to bitwise pass an object generated on the CPU

There are subtleties, but they can all be solved

 
yu-sha:

This is why I opted for CUDA rather than the more popular OpenCL

The code in CUDA is object-oriented and you can bitwise pass an object generated on the CPU

There are subtleties, but all of them can be solved

I'm not an expert in this, I believe you, it would be good.
 
Urain:
Let's put an experiment, create a grid of 1000 neurons with 100 connections per neuron, and post the file size

~6 MBytes

Network 100x1000x1 - full mesh

Attached ))

And now tell me, please, how you are going to train it ???

I know only one kind of networks which can have similar size, but they don't train and don't need to be stored. They are formed in one pass by training sample and stupidly remember it.

Such a network cannot be trained with GA by all computers of all sci-fi movies put together: the dimensionality of the search space is 100 000

Or rather, I believe that such a network will simply memorize the training sample, and you will get a screenshot of the whole story instead of a generalization.

You have to be more careful with your choice of architecture ))

Files:
UrainTask.zip  93 kb
Reason: