Tensorflow
Dataset
在TensorFlow中设置数据集,可以使用tf.data.Dataset.from_tensor_slices()函数,这个函数会将数据转换为TensorFlow的数据集。 使用方法如下:
import tensorflow as tf
import numpy as np
# 创建数据集
data = np.array([1, 2, 3, 4, 5])
dataset = tf.data.Dataset.from_tensor_slices(data)
这个函数会将数据转换为TensorFlow的数据集,可以通过迭代器的方式访问数据集中的元素。
for element in dataset:
print(element)
预处理
TensorFlow提供了一些预处理操作,例如归一化、裁剪、扩展等。
shuffle, batch and prefetch:
dataset = tf.data.Dataset.from_tensor_slices(data)
dataset = dataset.shuffle(buffer_size=10)
dataset = dataset.batch(batch_size=2)
dataset = dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
这些操作分别是:
- shuffle:随机打乱数据集中的元素顺序。
- batch:将数据集中的元素组合成批次,以便进行批量处理。
- prefetch:在训练过程中,预先加载数据到内存中,以提高训练速度。
之后,就可以进行训练了。
import tensorflow as tf
import numpy as np
# 创建数据集
data = np.array([1, 2, 3, 4, 5])
dataset = tf.data.Dataset.from_tensor_slices(data)
dataset = dataset.shuffle(buffer_size=10)
dataset = dataset.batch(batch_size=2)
dataset = dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
最好创建一个类包裹这些操作,以便在训练过程中使用这些操作。
class DataLoader:
def __init__(self, data):
self.data = data
self.dataset = tf.data.Dataset.from_tensor_slices(data)
self.dataset = self.dataset.shuffle(buffer_size=10)
self.dataset = self.dataset.batch(batch_size=2)
self.dataset = self.dataset.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
def get_dataset(self):
return self.dataset
class Model:
def __init__(self):
self.data_loader = DataLoader(data)
self.dataset = self.data_loader.get_dataset()
self.dense1 = tf.keras.layers.Dense(1)
self.dense2 = tf.keras.layers.Dense(1)
def call(self):
Tensorflow处理视频
需要实现两个类:
- DataLoader
- FrameGenerator
Model
查看模型结构
from tensorflow.keras import Model
from tensorflow import keras
model = keras.Model(inputs=inputs, outputs=outputs, name="mnist_model")
model.summary()
keras.utils.plot_model(model, "my_first_model.png")
定义模型
- functional API
- subclassing API
- sequential API