2017-10-19 21 views
0

私は2つのクラスAとBを持っていると言います.BはAのリストを持っています。これはnumbaでも可能ですか?私はこれを実行するとネストされたnumbaオブジェクトの配列を持つことはできますか?

from numba import jitclass, deferred_type 
from numba.types import string 

spec = [('name', string)] 


@jitclass(spec) 
class A: 
    def __init__(self, name): 
     self.name = name 

a_type = deferred_type() 
a_type.define(A.class_type.instance_type) 
spec2 = [('name', string), ('alist', a_type[:])] 
@jitclass(spec2) 
class B: 
    def __init__(self, name, alist): 
     self.name = name 
     self.alist = alist 

、私は次のエラーを取得する:

python3: /opt/miniconda/conda-bld/llvmdev_1498055795382/work/llvm-4.0.0.src/lib/IR/DataLayout.cpp:638: unsigned int llvm::DataLayout::getAlignment(llvm::Type*, bool) const: Assertion `Ty->isSized() && "Cannot getTypeInfo() on a type that is unsized!"' failed. 
Aborted (core dumped) 

は、私はこのエラーを回避する可能性のある方法はありますか?

答えて

0

いくつかの制限が何をしようとするにあります。

  • Numbaは、ネイティブ型に文字列をオンにすることはできませんので、私の知る限り承知しているとして、あなたは、インスタンスを持つことができません数値型の変数string
  • Numbaは、numba-jitted関数またはjitclassesの引数としてオブジェクトの配列またはリストをサポートしていません。あなたには、いくつかのネイティブ型に文字列を変換(多分整数ラベル、その後numbaコールの外列に再マッピング)、およびとしてAを表すことができない限り、

だからnumbaはあなたのユースケースのために良いフィットではないかもしれません一連の均質な配列配列またはリスト。

関連する問題