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

 
joo:
Why bin? Maybe a plain text file would be better, so that you could look through it with your eyes?

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


I gave the title of the topic myself. Otherwise, it is better to use other special programs. In MT5, you can watch too.

IMHO, it is more convenient to do everything in one place than to jump between different programs.

 
joo:
Why a bin? Maybe a plain text file would be better, so that you could look at it with your eyes?

The bin is the fastest in MQL5. I downloaded a 35 m html file and it took mozilla 40 minutes to open it. The text file in notepad took 8 minutes to open, but bin was read by the terminal in 18 seconds.
 
I personally don't mind:

."New Neural" is a project of Open Source neural network engine for MetaTrader 5 platform.

You yourself gave the name of the topic. Otherwise, it is better to use other special programs. You can look in MT5, too.

IMHO, it is more convenient to do everything in one place than to jump between different programs.

There is no contradiction here. Everything can really be done in mql5. xlm is a text format, you can view it in meta editor and process it with mql5 tools. There is even a work in kodobase.

Another thing is that this extremism should not be taken to extremes either.

The main requirement is that the final code should be in mql5. And if in the process of the project will be some programs (eg, grid configurators or formats converters), written in Sharp/Delphi/S++, I personally would not mind.

The main thing is that in the end everything translates into mql5.

 

MetaDriver:

...

2. Mmmm... On the one hand I agree - the format should be easy and simple, on the other hand it should be very universal, like xml. Maybe plan two options, one textual and one binary. In general, see #0.

...

The format of initialization is sort of defined, it is a binary table of links, it is a universal thing, so it will be the basis.

But the format of saving can be very different because initialization saving is done only at the start / end of the work, it is desirable that was fast, but the basis of fastness is not put.

Another thing is that there may be several options for loading,

download

  • from a graphic editor
  • from a file
  • from the bootstrap algorithm
  • random generator

and all algorithms are reduced to create a binary table of links from which the network is initialized.

 
Urain:
bin is the fastest in MQL5. I downloaded a 35 m html file and it took mozilla 40 minutes to open it, notepad text opened in 8 minutes, but bin was read in 18 sec.

This is all true. But we will not open it in FireFox. I swear on the health of my late grandmother.

The text representation is important for debugging the project. It can (and should) have a binary analog. It seems to me that this is the right way to do it.

 
Urain:

The format of initialization is sort of defined, it is a binary table of links, it is a universal thing, so it will be the basis.

But the format of saving can be very different because initialization saving is done only at the start / end of the work, it is desirable that was fast, but the basis of fastness is not put.

Another thing is that there may be several options for loading,

download

  • from a graphic editor
  • from a file
  • from the bootstrap algorithm
  • from a random generator.

and all algorithms are reduced to the creation of a binary table of links from which the grid is initialized.

I have questions here. What is meant by initialization. If loading weights, it is one thing. If configuring the grid + loading weights, that's another.

--

Right. I'll sing.

There are two ways of mapping the intermediate network configuration (structure, type) into the mql5 code.

The first: dynamic configuration of the network during initialization from library classes. Such a network abounds with dynamic arrays and links via pointers. This approach has implicitly dominated so far.

But there is a second way: Generate a rigid mesh (with static arrays and direct accesses to the right addresses (indexes)) after pre-configuration and mapping to xml.

Such engine may be much more attractive for users due to higher (significantly) speed of generated grid. But more complicated in execution. In fact, you will need to make xml2mql compiler.

I'm in favor of the second way. I hope meta-quotes will help, if we get stuck.

 
human:

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

I gave the title of the topic myself. Otherwise, it is better to use other special programs. In MT5, you can watch too.

IMHO, it is more convenient to do everything in one place, than to jump between different programs.

I do not understand anything.

I got used to write everything in MT5 to a text csv file with flag FILE_ANSI. This file is great to look at with my eyes in ME. And I do it all in MT5.

 
Urain:
bin is the fastest in MQL5. I downloaded a 35 m html file and it took 40 minutes for Mozilla to open it, 8 minutes for text input in Notepad, but it took 18 seconds for the terminal to read bin.

What is faster is clear. But how many times during the whole training will I have to write to the file? - once?

So here the speed is not critical, but simplified visual control.

 
MetaDriver:

That's right. But we won't open it in FireFox. I swear on my dead grandmother's health.

The text representation is important for debugging the project. It can (and should) have a binary counterpart. It seems to me that this is the right way to do it.

Agreed.
 
joo:

What is faster is clear. But how many times during the whole training will I have to write to the file? - Once?

So here the speed is not critical, but the visual control is simplified.

I would not say that the xml-file would be easy to visually control.

Some kind of template can still be in the form of an xml-file, but to visualize a grid with 1500 neurons in one layer will be a complete nonsense, so we have a hassle with creating xml and visualization is still not normal. Although I do not reject it, you can do a duplicate in xml when saving.

MetaDriver:

Here I have questions. What do I mean by initialization. If loading weights - it's one thing. If the configuration of the grid + loading weights is something else.

--

Right. I'll sing.

There are two ways of mapping the intermediate network configuration (structure, type) into the mql5 code.

The first: dynamic configuration of the network during initialization from library classes. Such a network abounds with dynamic arrays and links via pointers. This approach has implicitly dominated so far.

But there is a second way: Generate a rigid mesh (with static arrays and direct accesses to the right addresses (indexes)) after pre-configuration and mapping to xml.

Such engine may be much more attractive for users due to higher (significantly) speed of generated grid. But more complicated in implementation. In fact, you would need to make an xml2mql compiler.

I, in fact, for the second way. I hope the meta-quotes will help, if we get stuck.

First way.

The second alternative was discarded at the root (I do not remember exactly, but in the first pages), as in the future in the category of "user" will include people who do not know what is F7.

In addition, the engine is meant to be easily expandable, and anyone who knows the purpose of F7 may add another type of grid or invent their own.

ZY understand your attachment to template coding, but agree in the second way we will have big problems with implementation of both learning algorithms and extension of neuron types, plus it will still need to be optimized for GPU. There are serious problems with the first variant, the simplest things everyone is able to do, and just to describe the universal engine project makes my brain fry.

Reason: