利用三维形状spark数据帧在spark上训练keras模型
我正在训练编写一个分布式keras模型,其中数据和模型本身都可以在spark上并行运行。问题是,我正在使用3-d形状图像数据作为输入,但我不确定如何从我的3d形状numpy阵列生成数据帧,以通过system ml训练我的keras模型。 我使用的是预训练的例外keras模型,因此我的输入需要是(300300,3)的形状 我正在跟踪链接利用三维形状spark数据帧在spark上训练keras模型,keras,systemml,Keras,Systemml,我正在训练编写一个分布式keras模型,其中数据和模型本身都可以在spark上并行运行。问题是,我正在使用3-d形状图像数据作为输入,但我不确定如何从我的3d形状numpy阵列生成数据帧,以通过system ml训练我的keras模型。 我使用的是预训练的例外keras模型,因此我的输入需要是(300300,3)的形状 我正在跟踪链接 from sklearn import datasets, neighbors from pyspark.sql import DataFrame, SQLCon
from sklearn import datasets, neighbors
from pyspark.sql import DataFrame, SQLContext
import systemml as sml
import pandas as pd
import os, imp
sqlCtx = SQLContext(sc)
digits = datasets.load_digits()
X_digits = digits.data
y_digits = digits.target + 1
n_samples = len(X_digits)
# Split the data into training/testing sets and convert to PySpark DataFrame
X_df = sqlCtx.createDataFrame(pd.DataFrame(X_digits[:.9 * n_samples]))
y_df = sqlCtx.createDataFrame(pd.DataFrame(y_digits[:.9 * n_samples]))
ml = sml.MLContext(sc)
# Get the path of MultiLogReg.dml
scriptPath = os.path.join(imp.find_module("systemml")[1], 'systemml-java', 'scripts', 'algorithms', 'MultiLogReg.dml')
script = sml.dml(scriptPath).input(X=X_df, Y_vec=y_df).output("B_out")
beta = ml.execute(script).get('B_out').toNumPy()
但问题是,当我使用3d形状的numpy数组时,我无法将其转换为spark dataframe,它要求我给出一个2d形状数组
l=np.array([[[1,2],[3,4],[5,6]],[[1,2],[3,4],[5,6]]])
l.shape
(2, 3, 2)
X_df = sqlCtx.createDataFrame(pd.DataFrame(l))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\KMOB\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py", line 424, in __init__
copy=copy)
File "C:\Users\KMOB\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\construction.py", line 146, in init_ndarray
values = prep_ndarray(values, copy=copy)
File "C:\Users\KMOB\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\internals\construction.py", line 249, in prep_ndarray
raise ValueError('Must pass 2-d input')
ValueError: Must pass 2-d input
l=np.数组([[1,2],[3,4],[5,6],[[1,2],[3,4],[5,6]])
l、 形状
(2, 3, 2)
X_df=sqlCtx.createDataFrame(pd.DataFrame(l))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Users\KMOB\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\core\frame.py”,第424行,在uu init中__
复制=复制)
文件“C:\Users\KMOB\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\core\internals\construction.py”,第146行,在init_ndarray中
值=准备(值,复制=复制)
文件“C:\Users\KMOB\AppData\Local\Continuum\anaconda3\lib\site packages\pandas\core\internals\construction.py”,第249行,在准备阵列中
raise VALUERROR('必须通过二维输入')
ValueError:必须通过二维输入
有人对此有什么解决办法吗