利用三维形状spark数据帧在spark上训练keras模型

利用三维形状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

我正在训练编写一个分布式keras模型,其中数据和模型本身都可以在spark上并行运行。问题是,我正在使用3-d形状图像数据作为输入,但我不确定如何从我的3d形状numpy阵列生成数据帧,以通过system ml训练我的keras模型。 我使用的是预训练的例外keras模型,因此我的输入需要是(300300,3)的形状

我正在跟踪链接

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:必须通过二维输入
有人对此有什么解决办法吗