<p>您可以使用ImageDataGenerator的flow_from_dataframe方法使用CSV文件加载图像。<br/>
<strong>代码:</strong></p>
<pre><code>import tensorflow as tf
import pandas as pd
df = pd.read_csv('data/img/new.csv')
# Data augmentation pipeline
train_datagen = tf.keras.preprocessing.image.ImageDataGenerator()
# Reading files from path in data frame
train_ds = train_datagen.flow_from_dataframe(df,directory = 'data/img/new', x_col = 'filename', y_col = 'label')
</code></pre>
<p><strong>数据帧如下所示:</strong></p>
<pre><code> filename label
0 Capture.PNG 0
</code></pre>
<p>如果您的文件名中只有id。您可以使用apply方法添加jpg扩展</p>
<pre><code>df['id'] = df['id'].apply(lambda x: '{}.jpg'.format(x))
</code></pre>
<p>有关<code>ImageDataGenerator</code>提供的一整套数据扩充选项,您可以查看<a href="https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator#expandable-1" rel="nofollow noreferrer">this</a></p>
<p>有关<code>flow_from_dataframe</code>的完整选项集,您可以查看<a href="https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator#flow_from_dataframe" rel="nofollow noreferrer">this</a></p>
<p>使用这种方法,您不必担心标签不匹配,因为这是一种内置的TensorFlow方法。此外,文件会在必要时加载,这样可以避免主存混乱</p>
<p>对于培训,您可以简单地使用:</p>
<pre><code>model.fit(
train_ds,
steps_per_epoch=2000,
epochs=50,
validation_data=validation_ds,
validation_steps=800)
</code></pre>