【问题标题】:CNN model progressionCNN模型进展
【发布时间】:2021-05-02 17:24:57
【问题描述】:

我的项目围绕着将蝴蝶分类为 23 个标签。 我已经编写了一些代码,但我一直在思考如何为它制作模型。

import pandas as pd
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator

print("Loading Images")
df=pd.read_csv("../input/mydata/data/train.txt", delim_whitespace=True)
columns = [
"Label"
]
datagen = ImageDataGenerator(
rescale=1./255.,
)
traindata = datagen.flow_from_dataframe(
dataframe=df,
directory="../input/mydata/data/train",
x_col="Filename",
y_col=columns,
color_mode='rgb',
batch_size=16,
class_mode="raw",
target_size=(600,400),
shuffle=True,
 
)

这就是我所做的,它输出我有 10270 个经过验证的图像文件名 我如何从那里取得进展以制作顺序模型

【问题讨论】:

标签: python tensorflow conv-neural-network artificial-intelligence


【解决方案1】:

这里是一个例子:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import math
import os

import numpy as np
import pandas as pd
import tensorflow as tf
from PIL import Image
from tensorflow.keras import layers
from tqdm import tqdm

batch_size = 32
img_height = 180
img_width = 180

basedir = 'archive/raw-img/'
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
    basedir,
    validation_split=0.2,
    subset='training',
    seed=123,
    image_size=(img_height, img_width),
    batch_size=batch_size,
    )

val_ds = tf.keras.preprocessing.image_dataset_from_directory(
    basedir,
    validation_split=0.2,
    subset='validation',
    seed=123,
    image_size=(img_height, img_width),
    batch_size=batch_size,
    )

AUTOTUNE = tf.data.AUTOTUNE

train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)

model = tf.keras.Sequential([  # layers.experimental.preprocessing.RandomFlip("horizontal_and_vertical"),
                               # layers.experimental.preprocessing.RandomRotation(0.1),
    layers.experimental.preprocessing.Rescaling(1.0 / 255,
            input_shape=(img_height, img_width, 3)),
    layers.Conv2D(32, 3, activation='relu'),
    layers.MaxPooling2D(),
    layers.Conv2D(64, 3, activation='relu'),
    layers.MaxPooling2D(),
    layers.Conv2D(128, 3, activation='relu'),
    layers.MaxPooling2D(),
    layers.Flatten(),
    layers.Dense(128, activation='relu'),
    layers.Dense(len(class_names), activation='softmax'),
    ])

model.compile(optimizer='adam',
              loss=tf.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

model.fit(train_ds, validation_data=val_ds, epochs=2,
          batch_size=batch_size)

(loss, acc) = model.evaluate(val_ds)
print ('Accuracy', acc)

【讨论】:

  • 感谢分享,我可以通过电子邮件或不和谐与您联系,这是关于我自己的 cnn 并想寻求帮助
  • 将你的代码上传到 github 上,在那里帮助你
  • 你的 github 是什么
猜你喜欢
  • 2020-05-24
  • 1970-01-01
  • 2018-03-02
  • 2018-12-13
  • 2020-12-15
  • 1970-01-01
  • 2018-08-31
  • 2021-09-02
  • 2018-05-19
相关资源
最近更新 更多