相关疑难解决方法(0)

如何正确组合TensorFlow的数据集API和Keras?

Keras的fit_generator()模型方法需要一个生成形状元组(输入,目标)的生成器,其中两个元素都是NumPy数组.文档似乎暗示如果我只是将Dataset迭代器包装在生成器中,并确保将Tensors转换为NumPy数组,我应该好好去.但是,这段代码给了我一个错误:

import numpy as np
import os
import keras.backend as K
from keras.layers import Dense, Input
from keras.models import Model
import tensorflow as tf
from tensorflow.contrib.data import Dataset

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

with tf.Session() as sess:
    def create_data_generator():
        dat1 = np.arange(4).reshape(-1, 1)
        ds1 = Dataset.from_tensor_slices(dat1).repeat()

        dat2 = np.arange(5, 9).reshape(-1, 1)
        ds2 = Dataset.from_tensor_slices(dat2).repeat()

        ds = Dataset.zip((ds1, ds2)).batch(4)
        iterator = ds.make_one_shot_iterator()
        while True:
            next_val = iterator.get_next()
            yield sess.run(next_val)

datagen = create_data_generator()

input_vals = Input(shape=(1,))
output …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow

43
推荐指数
2
解决办法
2万
查看次数

Tensorflow:加载大数据的现代方法

我想使用 numpy 数组作为输入数据训练卷积神经网络(使用 Tensorflow 1.13 版中的 tf.keras)。训练数据(我目前存储在一个 > 30GB 的“.npz”文件中)不能一次全部放入 RAM。将大型数据集保存和加载到神经网络中进行训练的最佳方法是什么?由于我没有设法找到这个(肯定无处不在?)问题的好答案,我希望在这里听到一个。非常感谢您提供任何帮助!

来源

类似的问题似乎已经被问过很多次了(例如training-classifier-from-tfrecords-in-tensorflowtensorflow-synchronize-readings-from-tfrecordhow-to-load-data-parallelly-in-tensorflow)但有几个岁,通常不包含决定性的答案。

我目前的理解是使用 TFRecord 文件是解决这个问题的好方法。到目前为止,我发现的最有前途的教程解释了如何在 keras 中使用 TFRecord 文件是medium.com。其他有用的来源是machinelearninguru.commedium.com_source2和来源therin。

官方 tensorflow 文档和教程(关于tf.data.Dataset导入数据tf_records等)对我没有帮助。特别是,即使没有修改,那里给出的几个例子对我也不起作用。

我尝试使用 TFRecord 文件

我假设 TFRecords 是解决我的问题的好方法,但我很难使用它们。这是我根据教程medium.com制作的示例。我尽可能地精简了代码。

# python 3.6, tensorflow 1.13.
# Adapted from https://medium.com/@moritzkrger/speeding-up-keras-with-tfrecord-datasets-5464f9836c36
import tensorflow as tf
import numpy as np
from tensorflow.python import keras as keras


# Helper functions (see also https://www.tensorflow.org/tutorials/load_data/tf_records) …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tfrecord tf.keras

8
推荐指数
1
解决办法
4810
查看次数

TensorFlow 2.0 Keras:如何为 TensorBoard 编写图像摘要

我正在尝试使用 TensorFlow 2.0 设置图像识别 CNN。为了能够分析我的图像增强,我想在张量板中查看我输入网络的图像。

不幸的是,我不知道如何使用 TensorFlow 2.0 和 Keras 来做到这一点。我也没有真正找到这方面的文档。

为简单起见,我展示了一个 MNIST 示例的代码。我将如何在此处添加图像摘要?

import tensorflow as tf
(x_train, y_train), _ = tf.keras.datasets.mnist.load_data()

def scale(image, label):
    return tf.cast(image, tf.float32) / 255.0, label

def augment(image, label):
    return image, label  # do nothing atm

dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))
dataset = dataset.map(scale).map(augment).batch(32)

model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(dataset, epochs=5, callbacks=[tf.keras.callbacks.TensorBoard(log_dir='D:\\tmp\\test')])
Run Code Online (Sandbox Code Playgroud)

python summary keras tensorflow tensorboard

7
推荐指数
1
解决办法
3927
查看次数

标签 统计

tensorflow ×3

keras ×2

python ×2

summary ×1

tensorboard ×1

tf.keras ×1

tfrecord ×1