深度学习地物分类python代码
时间: 2024-07-17 14:01:10 浏览: 92
基于CNN深度学习的遥感landsat 影像地物分类python源码+h5模型.zip
5星 · 资源好评率100%
深度学习在地物分类中的应用通常涉及卷积神经网络(Convolutional Neural Networks, CNN),因为CNN特别适合处理图像数据。以下是一个简单的Python代码片段,使用Keras库(它基于TensorFlow)来构建一个基础的地物分类模型:
```python
import tensorflow as tf
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# 假设我们有64x64大小的彩色图片数据
input_shape = (64, 64, 3)
# 创建一个顺序模型
model = Sequential()
# 添加卷积层,32个滤波器,3x3的窗口,步长1
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=input_shape))
# 添加池化层,2x2的最大池化
model.add(MaxPooling2D(pool_size=(2, 2)))
# 再添加一层卷积和池化,改变参数自适应
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
# 展平输入以便于全连接层
model.add(Flatten())
# 全连接层,假设类别数为10(例如10种地物类别)
model.add(Dense(128, activation='relu'))
# 输出层,使用softmax激活,对应每个类别的概率
model.add(Dense(num_classes, activation='softmax')) # num_classes是你地物类别的总数
# 编译模型,设置损失函数、优化器和评价指标
model.compile(loss=tf.keras.losses.categorical_crossentropy,
optimizer=tf.keras.optimizers.Adam(),
metrics=['accuracy'])
# 使用训练数据拟合模型
model.fit(x_train, y_train, epochs=10, validation_data=(x_val, y_val))
```
这个代码创建了一个基本的卷积神经网络结构,并使用交叉熵作为损失函数,Adam优化器进行训练。你需要将`x_train`, `y_train`, `x_val`, 和 `y_val`替换为实际的数据集。
阅读全文