tensorflow 多光谱图像分类 所有代码示例
时间: 2023-08-26 07:03:50 浏览: 74
以下是一个基于 TensorFlow 的多光谱图像分类的示例代码:
```python
import tensorflow as tf
import numpy as np
# 加载数据集
train_data = np.load('train_data.npy')
train_labels = np.load('train_labels.npy')
test_data = np.load('test_data.npy')
test_labels = np.load('test_labels.npy')
# 定义模型
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(train_data.shape[1],)),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(3, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(train_data, train_labels, epochs=50, batch_size=32)
# 评估模型
test_loss, test_acc = model.evaluate(test_data, test_labels)
print('Test accuracy:', test_acc)
```
在这个示例中,我们首先加载了多光谱图像数据集,然后定义了一个包含三个层的神经网络模型。模型的输入层是一个具有与数据集中样本特征数量相同的神经元的全连接层。接下来是两个带有 64 个神经元和 ReLU 激活函数的隐藏层。最后,输出层是一个带有 3 个神经元和 softmax 激活函数的全连接层,用于分类任务。
我们使用 `sparse_categorical_crossentropy` 作为损失函数,因为我们的标签是整数形式的,而不是 one-hot 编码的。我们还指定了 `accuracy` 作为评估指标。
在模型定义后,我们使用 `fit()` 方法训练模型。我们使用了 50 个 epochs 和 32 个样本的 batch_size。在训练完成后,我们使用 `evaluate()` 方法评估模型在测试集上的表现。
当然,这只是一个示例代码。在实际应用中,你需要根据你的数据集和问题来调整模型的结构和超参数,以获得更好的性能。
阅读全文