首页 > 其他分享 >无涯教程-TensorFlow - 图像识别

无涯教程-TensorFlow - 图像识别

时间:2023-08-20 17:33:01浏览次数:40  
标签:图像识别 keras image 无涯 label train import TensorFlow model

TensorFlow包含图像识别的特殊功能,并且这些图像存储在特定的文件夹中,图像识别代码实现的文件夹结构如下图所示-

Image Recognition

dataset_image包含需要加载的相关图像。无涯教程将专注于图像识别,图像使用" load_data.py"脚本加载,这有助于在其中的各个图像识别模块上保留注释。

import pickle
from sklearn.model_selection import train_test_split
from scipy import misc

import numpy as np
import os

label=os.listdir("dataset_image")
label=label[1:]
dataset=[]

for image_label in label:
   images=os.listdir("dataset_image/"+image_label)
   
   for image in images:
      img=misc.imread("dataset_image/"+image_label+"/"+image)
      img=misc.imresize(img, (64, 64))
      dataset.append((img,image_label))
X=[]
Y=[]

for input,image_label in dataset:
   X.append(input)
   Y.append(label.index(image_label))

X=np.array(X)
Y=np.array(Y)

X_train,y_train,=X,Y

data_set=(X_train,y_train)

save_label=open("int_to_word_out.pickle","wb")
pickle.dump(label, save_label)
save_label.close()

图像训练有助于将可识别的图案存储在指定的文件夹中。

import numpy
import matplotlib.pyplot as plt

from keras.layers import Dropout
from keras.layers import Flatten
from keras.constraints import maxnorm
from keras.optimizers import SGD
from keras.layers import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.utils import np_utils
from keras import backend as K

import load_data
from keras.models import Sequential
from keras.layers import Dense

import keras
K.set_image_dim_ordering('tf')

# fix random seed for reproducibility
seed=7
numpy.random.seed(seed)

# load data
(X_train,y_train)=load_data.data_set

# normalize inputs from 0-255 to 0.0-1.0
X_train=X_train.astype('float32')

#X_test=X_test.astype('float32')
X_train=X_train/255.0

#X_test=X_test/255.0
# one hot encode outputs
y_train=np_utils.to_categorical(y_train)

#y_test=np_utils.to_categorical(y_test)
num_classes=y_train.shape[1]

# Create the model
model=Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(64, 64, 3), padding='same', 
   activation='relu', kernel_constraint=maxnorm(3)))

model.add(Dropout(0.2))
model.add(Conv2D(32, (3, 3), activation='relu', padding='same', 
   kernel_constraint=maxnorm(3)))

model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(512, activation='relu', kernel_constraint=maxnorm(3)))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))

# Compile model
epochs=10
lrate=0.01
decay=lrate/epochs
sgd=SGD(lr=lrate, momentum=0.9, decay=decay, nesterov=False)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
print(model.summary())

#callbacks=[keras.callbacks.EarlyStopping(
   monitor='val_loss', min_delta=0, patience=0, verbose=0, mode='auto')]
callbacks=[keras.callbacks.TensorBoard(log_dir='./logs', 
   histogram_freq=0, batch_size=32, write_graph=True, write_grads=False, 
   write_images=True, embeddings_freq=0, embeddings_layer_names=None, 
   embeddings_metadata=None)]

# Fit the model

model.fit(X_train, y_train, epochs=epochs, 
   batch_size=32,shuffle=True,callbacks=callbacks)

# Final evaluation of the model
scores=model.evaluate(X_train, y_train, verbose=0)
print("Accuracy: %.2f%%" % (scores[1]*100))

# serialize model to JSONx
model_json=model.to_json()
with open("model_face.json", "w") as json_file:
   json_file.write(model_json)

# serialize weights to HDF5
model.save_weights("model_face.h5")
print("Saved model to disk")

上面的代码行生成如下所示的输出-

Recognizable PatternsRecognizable Patterns Output

参考链接

https://www.learnfk.com/tensorflow/image-recognition-using-tensorflow.html

标签:图像识别,keras,image,无涯,label,train,import,TensorFlow,model
From: https://blog.51cto.com/u_14033984/7162650

相关文章

  • 无涯教程-TensorFlow - 优化器
    Optimizers是扩展类,其中包括用于训练特定模型的附加信息,Optimizers类使用给定的参数初始化,用于提高速度和性能,以训练特定模型。TensorFlow的基本Optimizers是-tf.train.Optimizer此类在tensorflow/python/training/optimizer.py的指定路径中定义。无涯教程将专注于随机梯度下......
  • 无涯教程-TensorFlow - 感知器的隐藏层
    在本章中,无涯教程将专注于从x和f(x)的已知点集中学习的网络,由单个隐藏层将构建此简单网络。解释感知器隐藏层的代码如下所示-#Importingthenecessarymodulesimporttensorflowastfimportnumpyasnpimportmath,randomimportmatplotlib.pyplotaspltnp.ran......
  • 无涯教程-TensorFlow - 多层感知器学习
    多层感知器定义了人工神经网络最复杂的体系结构,多层感知器学习的示意图如下所示-MLP网络通常用于监督学习格式,用于MLP网络的典型学习算法也称为反向传播算法。现在,无涯教程将重点介绍针对图像分类问题的MLP实现。#导入MINST数据fromtensorflow.examples.Learnfk.mnistim......
  • 无涯教程-TensorFlow - 导出模块
    在这里,无涯教程将重点介绍TensorFlow中的MetaGraph形成,这将帮助了解TensorFlow中的导出模块,MetaGraph包含基本信息,这是训练,执行判断或对先前训练过的图进行推理所必需的。defexport_meta_graph(filename=None,collection_list=None,as_text=False):"""thiscodewrites......
  • 无涯教程-TensorFlow - 单词嵌入
    Wordembedding是从离散对象(如单词)映射到向量和实数的概念,可将离散的输入对象有效地转换为有用的向量。Wordembedding的输入如下所示:blue:(0.01359,0.00075997,0.24608,...,-0.2524,1.0048,0.06259)blues:(0.01396,0.11887,-0.48963,...,0.033483,-0.10007,......
  • 无涯教程-TensorFlow - Keras
    Keras易于学习的高级Python库,可在TensorFlow框架上运行,它的重点是理解深度学习技术,如为神经网络创建层,以维护形状和数学细节的概念。框架的创建可以分为以下两种类型-顺序API功能API无涯教程将使用JupyterNotebook执行和显示输出,如下所示-步骤1  - 首先执行数据加载和......
  • 无涯教程-TensorFlow - TensorBoard可视化
    TensorFlow包含一个可视化工具,称为TensorBoard,它用于分析数据流图,还用于了解机器学习模型。TensorBoard的重要功能包括查看有关垂直对齐的任何图形的参数和详细信息的不同类型统计的视图。深度神经网络包括多达36,000个节点。TensorBoard帮助将这些节点折叠成块并突出显示相同......
  • 无涯教程-TensorFlow - 递归神经网络
    递归神经网络是一种面向深度学习的算法,它遵循顺序方法。在神经网络中,无涯教程始终假定每个输入和输出都独立于所有其他层。这些类型的神经网络称为递归,因为它们以顺序的方式执行数学计算。表示递归神经网络的示意方法如下所述-实现递归神经网络在本节中,将学习如何使用TensorFl......
  • 无涯教程-TensorFlow - 卷积神经网络
    了解机器学习概念之后,无涯教程现在可以将重点转移到深度学习概念上,深度学习是机器学习的一个分支,被认为是近几十年来研究人员迈出的关键一步。深度学习实现的示例包括图像识别和语音识别等应用。以下是深度神经网络的两种重要类型-卷积神经网络递归神经网络在本章中,将重点介......
  • 无涯教程-TensorFlow - 数学基础
    在TensorFlow中创建基本应用程序之前,了解TensorFlow所需的数学概念非常重要,数学被视为任何机器学习算法的核心,借助于数学的核心概念,定义了针对特定机器学习算法的解决方案。向量(Vector)将连续或离散的数字数组定义为向量,机器学习算法处理固定长度的向量,以产生更好的输出。机......