0
votes

Comment convertir un jeu de données [:, 28,28] à [:, 28,28,3] dans Tensorflow 2.0+?

Comment convertir un jeu de données [:, 28,28] sur [:, 28,28,3] dans Tensorflow 2.0 +? XXX


0 commentaires

3 Réponses :


0
votes

Vous pouvez envelopper ces opérations numpues commentées à l'intérieur d'un tf.py_function (my_transform) , puis tout cela à l'intérieur .map () . Cela l'exécutera en mode désireux, donc pas de compromis avec la vitesse aussi. Vous pouvez lire plus ici . Pour un exemple de travail, vous pouvez suivre Ceci .


0 commentaires

1
votes

J'ai résolu le problème de la manière suivante.

import tensorflow_datasets as tfds
import tensorflow as tf

(train_data, test_data) = tfds.load('mnist', split=['train', 'test'], as_supervised=True)

train_data = train_data.map(lambda data, label: (tf.image.grayscale_to_rgb(tf.image.resize(data, [28,28])), label)).batch(10)


0 commentaires

0
votes

Autres solutions.

import tensorflow_datasets as tfds
import tensorflow as tf
import matplotlib.pyplot as plt

(train_data, test_data) = tfds.load('mnist', split=['train', 'test'], as_supervised=True)

# method 1
# # train_data = train_data.map(lambda data, label: (tf.image.grayscale_to_rgb(data/255), label)).batch(10)

# method 2
# train_data = train_data.map(lambda data, label: (tf.concat([data/255,tf.zeros(data.shape),tf.zeros(data.shape)],-1), label)).batch(10)

# method 3
def my_transform(data, label):
    #data = tf.expand_dims(data/255, -1)
    data=data/255
    ex_col = tf.zeros(data.shape)
    data = tf.concat([data, ex_col, ex_col], -1)
    return data, label

train_data = train_data.map(my_transform).batch(10)

for datas, labels in train_data:
    for i in range(len(datas)):
        print(datas[i], labels[i])
        plt.imshow(datas[i])
        plt.show()


0 commentaires