将tf.data.Dataset包装到tf.function中是否可以提高性能? - python

给定以下两个示例,对tf.data.Dataset签名时是否有性能改进?

数据集不在tf.function中

import tensorflow as tf


class MyModel(tf.keras.Model):

    def call(self, inputs):
        return tf.ones([1, 1]) * inputs


model = MyModel()
model2 = MyModel()


@tf.function
def train_step(data):
    output = model(data)
    output = model2(output)
    return output


dataset = tf.data.Dataset.from_tensors(tf.ones([1, 1]))

for data in dataset:
    train_step(data)

tf.function中的数据集

import tensorflow as tf


class MyModel(tf.keras.Model):

    def call(self, inputs):
        return tf.ones([1, 1]) * inputs


model = MyModel()
model2 = MyModel()


@tf.function
def train():
    dataset = tf.data.Dataset.from_tensors(tf.ones([1, 1]))
    def train_step(data):
        output = model(data)
        output = model2(output)
        return output
    for data in dataset:
        train_step(data)


train()

参考方案

添加@tf.function确实可以显着提高速度。看看这个:

import tensorflow as tf

data = tf.random.normal((1000, 10, 10, 1))
dataset = tf.data.Dataset.from_tensors(data).batch(10)

def iterate_1(dataset):
    for x in dataset:
        x = x

@tf.function
def iterate_2(dataset):
    for x in dataset:
        x = x

%timeit -n 1000 iterate_1(dataset) # 1.46 ms ± 8.2 µs per loop
%timeit -n 1000 iterate_2(dataset) # 239 µs ± 10.2 µs per loop

如您所见,使用@tf.function进行迭代的速度快了6倍以上。

从Azure Data Factory执行python脚本 - python

有人可以帮我从Azure数据工厂执行python函数吗?我已经将python函数存储在blob中,并且我试图触发同样的功能。但是我无法做到这一点。请协助。第二,我可以从ADF参数化python函数调用吗? python参考方案 您可能会发现ADF中的Azure Function Activity概念,它允许您在Data Factory管道中运行Azure F…

将数据直接从Python导出到Tableau - python

我有一个将数据导出到csv中的python代码,然后将该csv加载到Tableau中。我不想将csv加载到tableau中。有没有一种方法可以将我的python脚本的return值直接放入tableau中?问题类似于Export data from Python into Tableau using JSON?,但他们询问Json格式,答案是使用csv。如果…

登录节点如何与Slurm群集中的计算节点通信? - python

我只是开始使用随Slurm Workload Manager运行的计算集群。我对计算节点在计算时如何与登录节点通信感到好奇,因为要运行的脚本与该脚本可能读取的其他文件一起存储在登录节点中。例如,在工作词典中,浮点列表以可以用pickle加载的格式存储。我希望在计算节点上运行的脚本如下所示:import pickle with open('data_…

Python使用with子句打开或创建文件 - python

                                我有以下代码,但是如果文件不存在,它将无法正常工作:def log(self, action, data): import json with open('ReservationsManagerApp/logs/'+data['booking']+…

如何在python包中访问pickle数据 - python

我正在尝试在PyPI上发布一个程序包(作为新手),该程序包包含存储为pickle文件的数据。但是我似乎无法读取主代码中的数据。我的包裹结构是:package/ setup.py MANIFEST.in package/ package.py __init__.py data.pkl 我在package.py中的代码如下所示:data = pickle.loa…