tensforflow 猫狗分类python代码
时间: 2023-09-17 08:09:10 浏览: 35
以下是一个简单的猫狗分类的TensorFlow Python代码:
```python
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# 定义数据路径
train_path = 'path/to/train/data'
test_path = 'path/to/test/data'
# 定义数据生成器
train_data_gen = ImageDataGenerator(rescale=1./255)
test_data_gen = ImageDataGenerator(rescale=1./255)
train_data = train_data_gen.flow_from_directory(
train_path,
target_size=(150, 150),
batch_size=32,
class_mode='binary')
test_data = test_data_gen.flow_from_directory(
test_path,
target_size=(150, 150),
batch_size=32,
class_mode='binary')
# 定义模型
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)),
MaxPooling2D((2, 2)),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Conv2D(128, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Conv2D(128, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(),
Dense(512, activation='relu'),
Dense(1, activation='sigmoid')
])
# 编译模型
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(train_data,
steps_per_epoch=100,
epochs=30,
validation_data=test_data,
validation_steps=50)
# 测试模型
test_loss, test_acc = model.evaluate(test_data, steps=50)
print('Test accuracy:', test_acc)
```
在这个代码中,我们首先定义了训练和测试数据的路径,并使用`ImageDataGenerator`定义了数据生成器。然后,我们定义了一个简单的卷积神经网络模型,包括4个卷积层和2个全连接层。最后,我们编译模型,使用训练数据训练模型,并使用测试数据评估模型的性能。