tensorflow简单的CNN使用

tensorflow下 使用keras构建卷积神经网络

1.初始化模型model。创建Sequential类,并添加层

2.编译模型 调用compile(),指定优化方法,损失函数等

3.定义Callback(可选) 定义训练终止条件

4.图片生成器 创建图片生成器,从文件夹中读取图片,并处理图片

5 训练 调用model的的fit_generator 训练数据

初始化

import tensorflow as tf 
model = tf.keras.models.Sequential([
  tf.keras.layers.Conv2D(16,(3,3),activation = tf.nn.relu,input_shape = (300,300,3)),
    tf.keras.layers.MaxPool2D(2,2),
    tf.keras.layers.Conv2D(32,(3,3),activation=tf.nn.relu),
    tf.keras.layers.MaxPool2D(2,2),
    tf.keras.layers.Conv2D(64,(3,3),activation=tf.nn.relu),
    tf.keras.layers.MaxPool2D(2,2),
    tf.keras.layers.Conv2D(64,(3,3),activation=tf.nn.relu),
    tf.keras.layers.MaxPool2D(2,2),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(512,activation=tf.nn.relu),
    tf.keras.layers.Dense(1,activation= tf.nn.sigmoid)
])

编译

from tensorflow.keras.optimizers import RMSprop
model.compile(optimizer = RMSprop(lr=0.0003),loss = "binary_crossentropy",metrics = ["acc"])

图片生成器

from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale=1/255.0)
train_generator = train_datagen.flow_from_directory(
        "/tmp/h-or-s",
          target_size = (300,300),
          batch_size = 10,
          class_mode = "binary",
          )

回调

class myCallback(tf.keras.callbacks.Callback):
    def on_epoch_end(self, epochs,logs={}):
        if logs.get("acc") > 0.999:
            print("\nReached 99.9% accuracy so cancelling training!")
            self.model.stop_training = True

callbacks = myCallback()

训练

hist = model.fit_generator(
    train_generator,
    steps_per_epoch=8,
    epochs=10,
    verbose=1,
    callbacks=[callbacks])
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • TensorFlow版本:1.10.0 > Guide >教程地址:https://tensorflow.goog...
    xingzai阅读 87,742评论 8 54
  • Keras调研 关于Keras Keras基于Python编写,是一个高层神经网络API,基于TensorFlow...
    iamlightsmile阅读 1,872评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • Keras API 目前为止,介绍的神经网络模型都是通过Sequential模型来实现的。Sequential模型...
    七八音阅读 2,176评论 0 15
  • 那日路过光启城,看到儿童玩的这个道具,好有新鲜的感觉; 路过马戏城,觉得很有意思,顺道拍下。
    熙溪儿阅读 208评论 0 0