小编Ham*_*med的帖子

为训练 Tensorflow 网络提供 Spark 数据帧的最佳实践

我想提供来自火花集群的数据,以训练深度网络。我的节点中没有 GPU,所以分布式 TensorFlow 或类似的包elephas不是一种选择。

我想出了以下可以完成这项工作的生成器。它只是从 Spark 中检索下一批。为了处理批次,我添加了一个额外的列index(它只是增量 id 列),并在每次调用下一个批次时对其进行过滤。


class SparkBatchGenerator(tfk.utils.Sequence):
    def __init__(self, spark_df, batch_size, sample_count=None, feature_col='features', label_col='labels'):
        w = Window().partitionBy(sf.lit('a')).orderBy(sf.lit('a'))
        df = spark_df.withColumn('index', sf.row_number().over(w)).sort('index')
        self.X = df.select([feature_col, 'index'])
        self.y = df.select([label_col, 'index'])

        self.data_count = sample_count if sample_count else spark_df.count()
        self.feature_col = feature_col
        self.label_col = label_col
        self.batch_size = batch_size

    def __len__(self):
        return np.ceil(self.data_count /self.batch_size).astype(int)


    def __getitem__(self, idx):
        start, end = idx * self.batch_size, (idx + 1) * self.batch_size
        batch_x = (
            self.X.filter(f'index >= {start} and index …
Run Code Online (Sandbox Code Playgroud)

python apache-spark-sql pyspark keras tensorflow

6
推荐指数
1
解决办法
1209
查看次数

在 gnuplot 中的阶跃函数下填充

我正在使用 Gnuplot 从输入文件中绘制步骤函数:

plot 'myFile' using 1:2 with steps
Run Code Online (Sandbox Code Playgroud)

我想填充情节下方。就像是

plot 'myFile' using 1:2 with filledcurves 
Run Code Online (Sandbox Code Playgroud)

但是 Gnuplot 通过在连续点之间画一条线来填充图表下方。

如何在 step 函数下方填写?

plot gnuplot fill

5
推荐指数
1
解决办法
2612
查看次数

pyspark.mllib中LabeledPoint的类型转换错误,用于在pyspark.ml中使用线性回归模型

我有以下使用pyspark.ml软件包进行线性回归的代码。但是,当模型适合时,我在最后一行收到此错误消息:

IllegalArgumentException:您的要求失败:列要素的类型必须为org.apache.spark.ml.linalg.VectorUDT@3bfc3ba7,但实际上是org.apache.spark.mllib.linalg.VectorUDT@f71b0bce。

有谁知道缺失了什么?是否有任何替换pyspark.mlLabeledPointpyspark.mllib

from pyspark import SparkContext
from pyspark.ml.regression import LinearRegression
from pyspark.mllib.regression import LabeledPoint
import numpy as np
from pandas import *


data = sc.textFile("/FileStore/tables/w7baik1x1487076820914/randomTableSmall.csv")

def parsePoint(line):
    values = [float(x) for x in line.split(',')]
    return LabeledPoint(values[1], [values[0]])


points_df = data.map(parsePoint).toDF()

lr = LinearRegression()

model = lr.fit(points_df, {lr.regParam:0.0})
Run Code Online (Sandbox Code Playgroud)

linear-regression pyspark

5
推荐指数
1
解决办法
662
查看次数

在 Keras 顺序模块中保存和加载 Tensorflow 概率层

我在 Keras 序列中使用 Tensorflow 概率层。但是,将模型保存为 json 然后加载它会引发异常。我用来custom_objects加载自定义图层。这是重现错误的简约代码。

import tensorflow_probability as tfp

tfk = tf.keras
tfkl = tf.keras.layers
tfpl = tfp.layers

original_dim = 20
latent_dim = 2
model = tfk.Sequential([
    tfkl.InputLayer(input_shape=original_dim),
    tfkl.Dense(10, activation=tf.nn.leaky_relu),
    tfkl.Dense(tfpl.MultivariateNormalTriL.params_size(latent_dim), activation=None),
    tfpl.MultivariateNormalTriL(latent_dim)
])

model_json = model.to_json()
with open("model.json", "w") as json_file:
    json_file.write(model_json)



loaded_model = tfk.models.model_from_json(
    open('model.json').read(),
    custom_objects={
        'leaky_relu': tf.nn.leaky_relu, 
        'MultivariateNormalTriL': tfpl.MultivariateNormalTriL
    }
)

Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-26-bbbeffd9e4be> in <module>
      3     custom_objects={
      4         'leaky_relu': tf.nn.leaky_relu,
----> 5         'MultivariateNormalTriL': tfpl.MultivariateNormalTriL
      6     } …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow tensorflow-probability

5
推荐指数
1
解决办法
1146
查看次数