Amazon web services 在使用ApacheSpark和Mxnet的分布式环境中使用现有的keras模型(体系结构和权重)
我使用pandas和keras(使用TensorFlow后端)训练了一个模型,现在需要将其迁移到分布式环境(AWS EMR) 我试图使用apachespark(用于读取创建的输入)和Mxnet作为Keras的后端。我能够加载模型架构和权重,但当我调用model.predict(输入)时Amazon web services 在使用ApacheSpark和Mxnet的分布式环境中使用现有的keras模型(体系结构和权重),amazon-web-services,tensorflow,keras,pyspark,mxnet,Amazon Web Services,Tensorflow,Keras,Pyspark,Mxnet,我使用pandas和keras(使用TensorFlow后端)训练了一个模型,现在需要将其迁移到分布式环境(AWS EMR) 我试图使用apachespark(用于读取创建的输入)和Mxnet作为Keras的后端。我能够加载模型架构和权重,但当我调用model.predict(输入)时 AttributeError:'DataFrame'对象没有属性“值” 这里是代码示例 from keras.models import model_from_json, load_model from pysp
AttributeError:'DataFrame'对象没有属性“值”
这里是代码示例
from keras.models import model_from_json, load_model
from pyspark.sql import SparkSession
import mxnet as mx
spark = SparkSession.builder.appName(app_name).getOrCreate()
data = spark.read.csv(input_file, sep="|", header=True)
print('Loading model...')
with open(model_architecture, 'r') as f:
model = model_from_json(f.read())
model.load_weights(model_weights)
predictions = model.predict(data)
我有没有遗漏什么,或者有没有其他方法可以让这项工作正常进行 您使用的是spark dataframe,它没有.values属性(基本上将df转换为numpy数组)。因此,使用model.predict(data.toPandas())也许您可以尝试使用pandas udf,在udf内部,您可以使用pandas dataframe使用模型进行预测。@venkatakrishnan谢谢,这很有效。你知道有没有更好的方法来替代我的工作吗?预测似乎不是以分布式方式进行的。谢谢,@Bitswazsky将尝试使用spark数据帧,它没有.values属性(基本上将df转换为numpy数组)。因此,使用model.predict(data.toPandas())也许您可以尝试使用pandas udf,在udf内部,您可以使用pandas dataframe使用模型进行预测。@venkatakrishnan谢谢,这很有效。你知道有没有更好的方法来替代我的工作吗?这个预测似乎不是以分布式的方式发生的。谢谢,@Bitswazsky也会尝试这样做