2017-12-12 16 views
1

これらattrsにしてオペアンプ「割り当て」をサポートするために登録して、私は上にそれをロードしようとすると、それロードKerasモデルのエラー:いいえOpkernelは、私は以下のモデルを訓練するためにフロイドハブを使用しました

# Create the model 
model = Sequential() 
model.add(Conv2D(32, (3, 3), input_shape=(3, 32, 32), activation='relu', padding='same')) 
model.add(Dropout(0.2)) 
model.add(Conv2D(32, (3, 3), activation='relu', padding='same')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Conv2D(64, (3, 3), activation='relu', padding='same')) 
model.add(Dropout(0.2)) 
model.add(Conv2D(64, (3, 3), activation='relu', padding='same')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Conv2D(128, (3, 3), activation='relu', padding='same')) 
model.add(Dropout(0.2)) 
model.add(Conv2D(128, (3, 3), activation='relu', padding='same')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Flatten()) 
model.add(Dropout(0.2)) 
model.add(Dense(1024, activation='relu', kernel_constraint=maxnorm(3))) 
model.add(Dropout(0.2)) 
model.add(Dense(512, activation='relu', kernel_constraint=maxnorm(3))) 
model.add(Dropout(0.2)) 
model.add(Dense(num_classes, activation='softmax')) 
# Compile model 
epochs = 50 
adammax = keras.optimizers.Adamax(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0) 

model.compile(loss='categorical_crossentropy', optimizer=adammax, metrics=['accuracy']) 
print(model.summary()) 

を保存しました私のPC、それは正常に動作しています。しかし、ラズベリーパイにロードすると、次のエラーが発生します。私も体重だけを保存して読み込もうとしましたが、うまく動作せず、同じエラーが発生しました。私は、ラズベリーパイのフロイドハブと同じバージョンのTensorflowを使用しています。

enter image description here enter image description here

+1

こんにちは! int64データ型で操作を実行しようとしていますが、TensorflowはARMでint32のみをサポートしています。 (ARM32ビットのみが正式にサポートされています。)側面では、Tracebackをイメージの代わりにテキストとして含めるようにしてください。 – Lescurel

+0

@Lescurelテンソルフローモデルをラズベリーに正しく移植する方法を教えてください。 – Paddy

+0

@Paddy:達成しようとしていることは分かりませんが、 'tf.int64'ではなく' tf.int32'データ型でテンソルを使うことができます。多くの場合、余分な32ビットは必要ありません。しかしケラスやfloydhubでそれを行う方法は考えられません。この[ガイド](http://zhiyisun.github.io/2017/02/15/Running-Google-Machine-Learning-Library-Tensorflow-On-ARM-64-bit-Platform.html)に従うこともできます)どのようにARM64のTensorflowをコンパイルするかについて(私はそれをテストしていないことに注意してください) – Lescurel

答えて

0

前述したようにそれはこのオペレーションでサポートされているカーネルの一つではありませんが、あなたは、T = DT_INT64を渡しています。 int64のバージョンが.soファイルに入っていないか、自分でopカーネルに書き込むか、このopコードの直前にtf.int32にキャストしてみてください。最後のものは私のためにうまくいった。

関連する問題