Roffield'ın kütüphanesi - sayfa 10

 
Advanced Vector Extensions - Wikipedia
  • en.wikipedia.org
AVX2 expands most integer commands to 256 bits and introduces fused multiply-accumulate (FMA) operations. AVX-512 expands AVX to 512-bit support using a new EVEX prefix encoding proposed by Intel in July 2013 and first supported by Intel with the Knights Landing processor, which shipped in 2016.[3][4] AVX uses sixteen YMM registers. Each YMM...
 
Roffild :

" CPU'nuz bu TensorFlow ikili dosyasının kullanmak için derlenmediği talimatları destekliyor: AVX AVX2 " mesajı da yeni işlemcilerde görünüyor. Bu, TensorFlow'da bilinen bir hatadır. Bunun Python sürümüyle ilgisi yok.

Python'dan "... dll yüklemeyin..." gibi başka bir mesaj var


yani öyle ... ama ne yazık ki, dizüstü bilgisayarlarda farklı "işlemci çekirdekleri" yüklüyorlar, dizüstü bilgisayarımda i3 ve GForce videosu var, dizüstü bilgisayar yanılmıyorsam 3-4 yaşında, hatta oyuncaklar iyi "uçun", ancak AVE ile sadece ortaya çıktı

 

@Roffield , iyi günler.

Kitaplığınızı kurdu ve hemen ilk kontrolün hatasını yakaladı:

 2019.07 . 09 21 : 56 : 43.540 PythonDLL_Example (USDRUB,D1)   ERROR: PythonHome == ""

Değişkenler de yerinde.


Başka ne yapmayı unuttum?

Teşekkür ederim.

 
 

Evet, anladım.

aptallık için özür dilerim.

 

Tünaydın.

Kitaplığınızı kullanmak için ilk adımları başlattınız. Örnek olarak PythonDLL_Example.mq5 ve PythonDLL_Example.py aldım. Sadece arama sonucunu test etmeye karar verdim. Aldım, 11 sayıdan oluşan bir dizi yaptım ve fonksiyona ilettim. Şimdiye kadar PythonDLL_Example.py'deki işlev şuna benziyordu:

    def getDouble(self, magic: int , value : float , array: tuple) -> tuple or list:
        x = array[ 2 ] + array[ 1 ]
         return [x]

(ilk değişikliğim) ) her şey beklendiği gibi çalıştı. Değişim kapalıyken yazmaya başladığım için, işlevi test etmek için çağrıyı int OnInit()'e taşıdım Sorun değil, EA başladığında çalışıyor.

Ardından, PythonDLL_Example.py dosyasına kitaplık içe aktarmaları eklemeye başladım.

Dosya şöyle görünür:

# You may obtain a copy of the License at
#
#     http: //www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# https: //github.com/Roffild/RoffildLibrary
# ==============================================================================

import pandas as pd

import numpy as np

import tensorflow as tf
from tensorflow import keras

import sys
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)

import os
os.environ[ 'TF_CPP_MIN_LOG_LEVEL' ] = '2'

class PythonDLL_Example():
    def getLong(self, magic: int , value : int , array: tuple) -> tuple or list:
        raise NotImplementedError

    def getULong(self, magic: int , value : int , array: tuple) -> tuple or list:
        raise NotImplementedError

    def getDouble(self, magic: int , value : float , array: tuple) -> tuple or list:
        x = array[ 2 ] + array[ 1 ]
         return [x]

    def getString(self, magic: int , value : str, array: bytes) -> str:
         if magic == 1 :
             return value + str(sys.version)
         if magic == 2 :
             return str(array) + " " + str(sys.version_info)
         if magic == 3 :
             return "sys.path:\n" + "\n" . join (sys.path) + \
                   "os.environ[\"PATH\"]:\n" + os.environ[ "PATH" ].replace( ";" , "\n" )
        raise Exception( "This is not a bug! This is a feature :D" )


__mql__ = PythonDLL_Example()

şunlar olmaya başladı:

1. Bir danışman asıyorum, sonuç doğru. Çıktı aşağıdadır.


Doğru şekilde! Sonuç 251920 - bu doğru çıktı!

2. Danışmanı çıkarırım, tekrar asarım. Aşağıdaki çıktı:



3. Danışman üçüncü veya dördüncü kez çöküyor.

Bu sorun nedir ve nasıl çözülebilir? Nereye bakmalı?

teşekkürler

 
  • Belleği boşaltmak için pyFinalize() işlevini çağırmak mantıklıdır, ancak popüler NumPy kitaplığındaki bir hata nedeniyle bunu yapmaya değmez. sayı8097 , sayı34309

Popüler kitaplıkları kullanırken çökmeler kaçınılmazdır. Kilitlenmeler, kod yürütüldüğünde değil, tam olarak yenisinin tamamlandığı ve başlatıldığı anda gerçekleşir. Yeni bir kod yürütmesi için terminali yeniden başlatmak daha kolaydır. Tamamlanmadan önce terminali öldürürseniz test cihazı askıda kalabilir.

Crashdumps, c:\Users\\AppData\Local\CrashDumps içinde birikebilir

Sorun Python'un kendisinde ya da daha doğrusu dış kitaplıkların tamamlandığını bildiren bir mekanizmanın yokluğunda.

Crash when importing numpy from the Python C-API after calling Py_Finilize() · Issue #8097 · numpy/numpy
Crash when importing numpy from the Python C-API after calling Py_Finilize() · Issue #8097 · numpy/numpy
  • numpy
  • github.com
New issue Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub? Sign in to your account
 

Tamam çok teşekkür ederim.

Elimdekilerle çalışacağım.

 

kanlı gözyaşları döküyorum!

İşlev kodunu her seferinde bir satır yazmaya çalışıyorum.

Ne oldu:

    def getDouble(self, magic: int , value : float , array: tuple) -> tuple or list:
        x = array[ 2 ] + array[ 1 ]
         return [x]

x değeri doğru bir şekilde döndürülür! Sonuç 251920

Ne ekledi:

    def getDouble(self, magic: int , value : float , array: tuple) -> tuple or list:
        x = array[ 2 ] + array[ 1 ]
        df = pd.read_csv( "RTSSplice.csv" , usecols=[ 'Low' , 'Open' , 'Close' , 'High' , 'Volume' , 'Indicator1' , 'Indicator2' , 'Indicator3' , 'Indicator4' , 'Indicator5' , 'Indicator6' , 'Indicator7' ], encoding= 'utf-16' )
         return [x]

x değeri yanlış döndürüldü! Sonuç: 3.211426697968103e-322

Satırı eklemek-kaldırmak için birkaç kez denendi! Eklenen satırla , sadece dosyayı okuyorum! X'in hesaplanmasını hiçbir şekilde etkilemez! Pandalar kitaplığı içe aktarıldı.

Sistem neden böyle davranıyor? Sorun nerede aranmalı?

Teşekkür ederim! )

 
Ayrıca PyCharm'da kodda hata ayıklayabilirsiniz. Ayrıca print() 'i sorunlu yerlere de yerleştirebilirsiniz - bu, değişkenlerin değerini kontrol etmenin en kolay yoludur. Konsol etkinleştirilebilir.