当前位置:网站首页>Using keras in tensorflow to build convolutional neural network
Using keras in tensorflow to build convolutional neural network
2022-07-07 10:03:00 【guluC】
Application tensorflow Medium keras Build convolutional neural network
Six steps
1、 Import tensorflow library
import tensorflow.keras as keras
2、 Prepare training data
x_train,y_train
x_test,y_test
3、 Build a network structure
- Generate a container to store the network structure
model = keras.models.Sequential() # Describe each layer of network
- Convolution layer
keras.layers.Conv2D(
filters, # Number of convolution kernels
kernel_size, # Convolution kernel size It's usually (3,3)
strides=(1, 1), # Sliding step Default (1,1)
padding='valid', # Zero filling strategy 'valid' perhaps 'same'
activation=None, # Activation function Commonly used relu,softmax,selu
input_shape # Define the input data style (64,64,3)64*64 Three dimensional view of
)
- Pooling layer
keras.layers.MaxPooling2D(
pool_size=(2, 2), # Pool layer size
strides=None, # step
padding='valid', # Zero filling strategy 'valid' perhaps 'same'
data_format=None
)
- Flatten ( Change the data into one dimension , It is often used in the transition from convolution layer to full connection layer )
keras.layers.Flatten()
- Fully connected layer
keras.layers.Dense(
units, # Dimension of output space
activation=None, # Activation function Commonly used relu,softmax,selu
use_bias=True, # Boolean value , Whether to use offset vector
)
- Dropout layer ( Prevent too fitting , Improve the generalization ability of the model )
keras.layers.Dropout(
rate, #0-1 Decimal between Percentage discarded
noise_shape=None,
seed=None # Random seeds
)
4、 Print network structure and parameter statistics
model.summary()
summary Function is used to print network structure and parameter statistics
5、 Configure the optimizer for training 、 Loss function and accuracy evaluation criteria
model.compile(
optimizer, # Optimizer
loss, # Loss function
metrics # Network evaluation index
)
- optimizer Parameters can be character string The optimizer name given by the form , It can also be in the form of a function , The learning rate can be set in the form of a function 、 Momentum and hyperparameters
- “sgd” perhaps keras.optimizers.SGD(lr = Learning rate ,decay = Learning decay rate ,momentum = Momentum parameter )
- "adagrad’" perhaps keras.optimizers.Adagrad(lr = Learning rate , decay = Learning rate decay rate )
- "adadelta" perhaps keras.optimizers.Adadelta(lr = Learning rate , decay = Learning rate decay rate )
- "adam" perhaps keras.optimizers.Adam(lr = Learning rate ,decay = Learning rate decay rate )
- lose Parameters can be given in string form Loss function Name , It can also be in the form of a function 、
- "mse" perhaps keras.losses.MeanSquaredError()
- “sparse_categorical_crossentropy” perhaps keras.losses.SparseCatagoricalCrossentropy(from_logits = False)
- Metrics Label network evaluation index
- “accuracy” : y_ and y It's all numbers , Such as y_ = [1] y = [1] #y_ For real value ,y For the predicted value
- "sparse_accuracy"y_ and y It's all based on a single hot code And probability distribution , Such as y_ = [0, 1, 0], y = [0.256, 0.695, 0.048]
- "sparse_categorical_accuracy"y_ It is given in numerical form ,y In order to The unique heat code gives , Such as y_ = [1], y = [0.256 0.695, 0.048]
6、fit
model.fit(
x, y,
batch_size=32,
epochs=10,
verbose=1,
callbacks=None,
validation_split=0.0,
validation_data=None,
shuffle=True,
class_weight=None,
sample_weight=None,
initial_epoch=0
)
- x: input data . If the model has only one input , that x The type is numpy
array, If the model has multiple inputs , that x The type should be list,list Is corresponding to each input numpy array - y: label ,numpy array
- batch_size: Integers , Specifies the gradient descent for each batch Number of samples included . One for training batch The sample will be calculated as a gradient descent , Optimize the target function one step .
- epochs: Integers , At the end of training epoch value , The training will be at the end of the day epoch Value , When there is no setting initial_epoch when , It is the total number of rounds of training , Otherwise, the total number of rounds of training is epochs - inital_epoch
- verbose: The log shows ,0 Output log information for non-standard output stream ,1 Record for the output progress bar ,2 For each epoch Output line record
- callbacks:list, The elements are keras.callbacks.Callback The object of . This list The callback function will be called at the appropriate time during the training , Refer to the callback function
- validation_split:0~1 The floating point number between , A percentage of the data used to specify the training set is used as the validation set . Validation sets will not be trained , And in each epoch End - of - test model metrics , Like the loss function 、 Precision etc. . Be careful ,validation_split The division of the shuffle Before , So if your data itself is ordered , You need to manually scramble it before you specify it validation_split, Otherwise, an uneven sample of the validation set may occur .
- validation_data: In the form of (X,y) Of tuple, Is the specified validation set . This parameter overrides validation_spilt.
- shuffle: Boolean or string , Is generally a Boolean value , Indicates whether the sequence of input samples is randomly scrambled during training . If string “batch”, It's used to deal with HDF5 The special case of data , It will be batch Internally scrambles the data .
- class_weight: Dictionaries , Mapping different categories to different weights , This parameter is used to adjust the loss function during training ( Only for training )
- sample_weight: Weights of numpy
array, Used to adjust the loss function during training ( For training purposes only ). You can pass a 1D The vector with the same length as the sample is used to carry on the sample 1 Yes 1 A weighted , Or in the case of temporal data , The form of passing one is (samples,sequence_length) To assign different weights to the samples on each time step . In this case be sure to add when compiling the model sample_weight_mode=’temporal’. - initial_epoch: Specified from this parameter epoch Start training , It's useful to continue the previous training .
fit The function returns a History The object of , Its History.history Attribute records the value of loss function and other indicators epoch Changing circumstances , If there is a verification set , Also contains the change of these indicators of the verification set
边栏推荐
- ORM--逻辑关系与&或;排序操作,更新记录操作,删除记录操作
- [4g/5g/6g topic foundation -147]: Interpretation of the white paper on 6G's overall vision and potential key technologies -2-6g's macro driving force for development
- Please ask me a question. I started a synchronization task with SQL client. From Mysql to ADB, the historical data has been synchronized normally
- 运用tensorflow中的keras搭建卷积神经网络
- conda离线创建虚拟环境
- Internship log - day07
- Bean 作⽤域和⽣命周期
- thinkphp3.2信息泄露
- Gym - 102219j kitchen plates (violent or topological sequence)
- flink. CDC sqlserver. You can write the DEM without connector in sqlserver again
猜你喜欢
arcgis操作:dwg数据转为shp数据
ORM--分组查询,聚合查询,查询集QuerySet对象特性
Natapp intranet penetration
[untitled]
What development models did you know during the interview? Just read this one
Applet sliding, clicking and switching simple UI
CentOS installs JDK1.8 and mysql5 and 8 (the same command 58 in the second installation mode is common, opening access rights and changing passwords)
js逆向教程第二发-猿人学第一题
Diffusion模型详解
Use 3 in data modeling σ Eliminate outliers for data cleaning
随机推荐
In addition to the objective reasons for overtime, what else is worth thinking about?
中国首款电音音频类“山野电音”数藏发售来了!
Arthas simple instructions
Flex flexible layout
终于可以一行代码也不用改了!ShardingSphere 原生驱动问世
flink. CDC sqlserver. You can write the DEM without connector in sqlserver again
C# Socke 服务器,客户端,UDP
Lesson 1: finding the minimum of a matrix
Deep understanding of UDP, TCP
根据热门面试题分析Android事件分发机制(二)---事件冲突分析处理
Arcgis操作: 批量修改属性表
The combination of over clause and aggregate function in SQL Server
La différence entre viewpager 2 et viewpager et la mise en œuvre de la rotation viewpager 2
CodeForces - 1324D Pair of Topics(二分或双指针)
Diffusion模型详解
Can't connect to MySQL server on '(10060) solution summary
为什么安装mysql时starting service报错?(操作系统-windows)
用flinksql的方式 写进 sr的表,发现需要删除的数据没有删除,参照文档https://do
What development models did you know during the interview? Just read this one
phpcms实现PC网站接入微信Native支付