tensorflow 卷积神经网络基本参数()
目录:
1. tf.placeholder_with_default(tf.constant(1.0),shape=[],name='use_dropout') # 设置一个占位符
2. tf.constant(input, size, name) # 产生一个变量
3.tf.variable_scope(name, reuse=True) # 设置函数的作用范围
4.tf.get_variable(name, shape) # 设置函数变量
5.tf.nn.conv2d(i, k, [1, sw, sh, 1], padding=padding) # 进行二维卷积操作
6.tf.nn.bias_add(input, bias) # 进行偏置项的相加
7.tf.nn.relu(input, name=scope_name) # 进行relu激活
8.tf.nn.atrous_conv2d(i, k, dilation, padding=padding) # 进行膨胀卷积操作
9.tf.nn.max_pool(input, ksize=[1, 2, 2, 1], stride=[1, 2, 2, 1], name=name, padding=padding) # 进行最大池化
10 tf.nn.avege_pool(input, ksize=[1, 2, 2, 1], stride=[1, 2, 2, 1], name=name., padding=padding) # 进行平均池化
11. tf.nn.local_response_normalization(input,depth_radius=radius,alpha=alpha, beta=beta, bias=bias,name=name) # 进行局部相应归一化操作
12 tf..add_n(input, name=name) # 进行逐像素相加
13.tf.nn.layer_relu(feed_in, weight, bias, name) # 通过relu进行直接的相加操作
14.tf.nn.xw_plus_b(feed_in, weights, biases, name) # 不添加relu层操作的weights和biases操作
15. tf.nn.softmax(input, name) # 将数值转换为0, 1的概率值
16.tf.contrib.layer.batch_norm(input,activation_fn=activation_fn,is_training=is_training,updates_collections=None,scale=scale,scope=scope) # 进行归一化操作
17. tf.nn.dropout(input, keep, name=name) # dropout反过拟合
18.tf.set_random_seed(args.random_seed) # 设置随机种子
19.tf.train.Coordinator( ) # 构建队列协调器
20. tf.global_variables() # 获得全局的训练参数
21 tf.trainable_variables() # 获得当前训练的训练参数
22. .tf.nn.sparse_softmax_cross_entropy_with_logits(logist=logist, label=label) # 交叉熵损失函数
23. tf.nn.l2_loss(v) # 进行l2_loss的正则化操作
24.tf.scalar_mul() # 进行浮点数的相乘操作
25. tf.train.MomentumOptimizer(learning_rate, args.momentum) # 定义动量梯度下降优化器
26 tf.gradients(reduced_loss, conv_trainable + fc_w_trainable + fc_b_trainable) # 获得梯度下降过程中的梯度值
27 tf.global_variables_initializer() # 进行权重初始化
28. tf.train.start_queue_runners(coord=coord, sess=sess) # 开启队列线程, coord表示队列协调器
29.tf.image.decode_jpeg # 进行图片解析
30. tf.convert_to_tensor # 将图片转换为tensor可以接受的格式
31 tf.train.slice_input_producer # 构建随机队列
32. tf.train.batch, tf.train.shuffle.batch # tf.train.batch 按顺序获取,tf.train.shuffle_batch 随机获取
33. tf.image.resize_nearest_neighbor(input_batch, new_size) # 进行图片的维度变化,插值方法使用最近邻插值
34. tf.image.resize(input_batch, new_size, method) # 进行图片的维度变化,插值方法可以由多种,线性,双线性
35 tf.one_hot(input_batch, depth=num_classes) # 进行独热编码, depth表示的是维度
36 tf.reverse(img, axis) # 对图片进行翻转
37 tf.random_crop(img, [h, w, 3]) # 对图片进行随机的裁剪
38 tf.image.pad_to_bounding_box(combined, 0, 0, tf.maximum(crop_h, image_shape[0]), tf.maximum(crop_w, image_shape[1])) # 进行矩阵的补零操作
39 tf.TFRecordReader() # 构建读取器
40 tf.random_uniform_initializer(min, max) # 随机标准差初始化
41 tf.image.convert_image_dtype(image, dtype=tf.float32) # 对图片进行类型转换
42 tf.image.resize_image_with_crop_or_pad(image, height, width) # 如果图片的维度大于height和width进行裁剪操作,否者进行补零操作
43. tf.image.random_flip_left_right(image) # 以一定的概率进行从左到右的翻转操作
44. tf.image.random_brightness(image, max_delta=32. / 255.) # 进行亮度的调整,调整的像素范围为[-max_detla, max_detla]
45.tf.image.random_saturation(image, lower=0.5, upper=1.5) 进行饱和度的调整, 在[0.5, 1.5]的范围内进行调整
46. tf.image.random_hue(image, max_delta) 进行色相的调整, 范围是[-max_delta, max_delta]
47. tf.image.random_contrast(image, lower=0.5, upper=1.5) 调整图像的对比度
48. tf.clip_by_value(image, 0.0, 1.0) # 对值域范围进行裁剪
49. tf.summary.image(name, tf.expand_dims(image, 0)) # 加上一个通道数,对图片进行缓存
50. tf.parse_single_sequence_example() ???
51 tf.FixedLenFeature([], dtype=tf.string)} ???
52. tf.FixedLenSequenceFeature([], dtype=tf.int64),}) ???
53 tf.gfile.Glob(pattern) # 根据文件名格式获取文件列表
54. filename_queue = tf.train.string_input_producer(data_files, shuffle=True, capacity=16, name=shard_queue_name) # 构建文件名队列
55. tf.RandomShuffleQueue( capacity=capacity, min_after_dequeue=min_queue_examples,dtypes=[tf.string],name="random_" + value_queue_name) # 生成随机数值队列
56 tf.FIFOQueue(capacity=capacity, dtypes=[tf.string], name="fifo_" + value_queue_name) # 生成顺序数值队列,遵循先进先出的原则
57. tf.train.queue_runner.add_queue_runner(tf.train.queue_runner.QueueRunner(values_queue, enqueue_ops)) # 将队列添加到队列执行器中
58. tf.train.batch_join(senqueue_list,batch_size=batch_size,capacity=queue_capacity,dynamic_pad=True,name="batch_and_pad") # 通过线程读取图片,同时进行补零操作 sequecen_list表示输入列表,capacity表示长度,dynamic_pad表示进行补零操作
59. tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope="InceptionV3") # 取出参数
60 tf.contrib.layers.fully_connected(inputs=inception_output,num_outputs=self.config.embedding_size,activation_fn=None,
weights_initializer=self.initializer,biases_initializer=None,scope=scope) # 进行全连接操作, inputs表示输入, num_outputs表示输出的维度
61.tf.nn.embedding_lookup(embedding_map, self.input_seqs) #根据位置索引进行取值,self.input_seqs表示的是位置索引
62. tf.contrib.rnn.BasicLSTMCell(num_units=self.config.num_lstm_units, state_is_tuple=True) 构建基础的LSTM模型, num_lstm_units表示隐含层的个数
63.tf.contrib.rnn.DropoutWrapper(lstm_cell,input_keep_prob=self.config.lstm_dropout_keep_prob,output_keep_prob=self.config.lstm_dropout_keep_prob) 主要用于rnn的dropout,input_keep_prob表示输入层的dropout,output_keep_prob表示输出层的dropout
64.lstm_cell.zero_state(batch_size=self.image_embeddings.get_shape()[0], dtype=tf.float32) # 用于生成RNN初始状态的全零隐含状态
65 lstm_cell(self.image_embeddings, zero_state).# 输入图片特征和初始化的全零隐含层,获得第一个输出
66.lstm_scope.reuse_variables() #lstm_scope 表示scope的名字,reuse_variable表示权重进行复用
67.tf.nn.dynamic_rnn(cell=lstm_cell,inputs=self.seq_embeddings,sequence_length=sequence_length, initial_state=initial_state,dtype=tf.float32,scope=lstm_scope)
# 使用一层的神经网络,lstm_cell表示类型, input表示输入文字特征,initial_state=initial_state
68. tf.losses.add_loss(batch_loss) # 将batch_loss 加入到loss函数中
69.tf.losses.get_total_loss() # 取出所有的loss值
70.tf.train.exponential_decay(learning_rate,global_step,decay_steps=decay_steps,decay_rate=training_config.learning_rate_decay_factor,staircase=True)
learning_rate表示学习率,decay_steps表示多少步后进行衰减,decay_rate表示衰减系数,对学习率进行指数衰减
71.tf.contrib.layers.optimize_loss(loss=model.total_loss,global_step=model.global_step,learning_rate=learning_rate,optimizer=training_config.optimizer,
clip_gradients=training_config.clip_gradients, learning_rate_decay_fn=learning_rate_decay_fn)
# 构造优化步骤,loss使用的total_loss, learning_rate 表示的是学习率,optimizer表示优化器‘SGD’,clip_gradients表示梯度裁剪,learning_rate_decay_fn表示指数衰减的概率
72. tf.contrib.slim.learning.train(train_op,train_dir, log_every_n_steps=FLAGS.log_every_n_steps,graph=g,
global_step=model.global_step,number_of_steps=FLAGS.number_of_steps, init_fn=model.init_fn,saver=saver)
# 建立迭代模型,train_op表示训练时的ops, train_dir 表示训练参数的存储地址, log_every_n_steps表示迭代打印的次数,graph表示tf.graph,number_of_steps表示迭代的次数, init_fn表示初始的参数, saver=saver表示储存的
73. tf.train.Saver(max_to_keep=training_config.max_checkpoints_to_keep) # 建立参数存储器,max_to_keep表示存储的最大条数
74. tf.transpose(input, perm=[1, 0]) # 将行和列的位置进行调换
1. tf.placeholder_with_default(tf.constant(1.0),shape=[],name='use_dropout')
一个基本的占位符
2. tf.constant(input, size, name)
import tensorflow as tf
import numpy as np y = tf.constant(1.0, shape=[1, 6]) # 生成shape=[1, 6]的 1矩阵 sess = tf.Session()
print(sess.run(y))
3. tf.variable_scope(op_name, reuse=True) 表示的是变量的应用范围, op_name表示该范围的名字, reuse=True,表示变量进行复用
4. tf.get_variable(name, shape) # 创建用于进行权重迭代的参数
import tensorflow as tf
import numpy as np y = tf.get_variable('weight', shape=[4])
5. tf.nn.conv2d(i, k, [1, s_h, s_w, 1], padding=padding) #进行卷积操作 , i 表示输入的样本, k表示卷积核, [1, s_h, s_w, 1] 表示卷积的步长, padding表示补零的方式
# input表示输入,[3, 3, 64, 128]表示卷积核的大小,[1, 1, 1, 1]表示步长,padding='SAME'表示补零的方式
net = tf.nn.conv2d(input, [3, 3, 64, 128], [1, 1, 1, 1], padding='SAME')
6. tf.nn.bias_add(output, bias) # 用于在输入数据中加入偏置项
7. tf.nn.relu(output, name=scope.name) # 用于对输入数据使用relu激活函数,name=scope.name 表示使用的范围
a = np.array([-1, -2, 3, 1, 2])
a[a<0] = 0
print(a)
# [0 0 3 1 2] 将小于0的数转换为0
8. tf.nn.atrous_conv2d(i, k, dilation, padding=padding) # 进行膨胀卷积操作, i表示输入样本, k表示卷积核, diation表示孔的数目,padding表示补零的方式
膨胀卷积的操作主要是为了实现,在参数数量相同的情况下,增加图像的卷积时候的感受眼
9. tf.nn.max_pool(input, ksize=[1, 2, 2 ,1], stride=[1, 2, 2, 1], padding=padding, name=name) # 表示的是进行最大池化操作
10 tf.nn.avg_pool(input, ksize=[1, 2, 2, 1], stride=[1, 2, 2, 1], padding=padding, name=name) # 进行均值池化操作
11. tf.nn.local_response_normalization(input,depth_radius=radius,alpha=alpha, beta=beta, bias=bias,name=name) # 进行局部归一化响应
这里就是对同一个特征位置上的不同特征图前后之间进行归一化操作
12.tf.add_n(input, name=name) # 表示进行逐像素相加, 用在残差直连上
import tensorflow as tf
import numpy as np a = [[1, 2], [3, 4]]
y = tf.add_n(a)
sess = tf.Session()
print(sess.run(y))
# 构造L2_loss损失值
L2_loss = tf.add_n(slim.losses.get_regularization_losses()) # 获得L2_loss损失值
13.tf.nn.relu_layer(feed_in, weights, biases, name) # return tf.relu(tf.matmul(feed_in, weights) + biases) # tf.matmul进行点成操作,然后加偏置项,进行relu操作
14. tf.nn.xw_plus_b(feed_in, weights, biases, name) # return tf.matmul(feed_in, weights) + biases
15 tf.nn.softmax(input, name) # 进行softmax激活函数
1/(np.exp(-input) + 1) # 相当于是这样的操作
16.tf.contrib.layers.batch_norm(input,activation_fn=activation_fn,is_training=is_training,updates_collections=None,scale=scale,scope=scope) # 进行归一化操作
# 进行归一化操作,这样的操作在生成网络中比较常用,主要是为了保证生成的图片,其输入层具有一定的一致性,在一定程度上可以防止过拟合
17.tf.nn.dropout(input, keep, name=name) # tf.nn.drop 表示的是随机选择权重参数进行更新, keep表示的是关闭权重参数的百分比
# 通常在全连接使用的次数较多
18. tf.set_random_seed(args.random_seed) # 设置随机种子
19. tf.train.Coordinator() # 构建队列协调器queue coordinator
20 restore_var = [v for v in tf.global_variables() if 'fc' not in v.name or not args.not_restore_last] # 通过sess.restore取出不是全连接的权重参数
21.all_trainable = [v for v in tf.trainable_variables() if 'beta' not in v.name and 'gamma' not in v.name] # 获得当前的训练参数
22.tf.nn.softmax_cross_entropy_with_logits(logist=logist, label=label) # 交叉熵损失函数,用于进行二分类的损失值计算
23 [args.weight_decay * tf.nn.l2_loss(v) for v in tf.trainable_variables() if 'weights' in v.name] # l2_loss进行weight权重参数的L2正则化
weight = [0.5, 0.5, 0.5]
l2_loss = [0.05 * tf.nn.l2_loss(v) for v in tf.trainable_variables() if 'weight' in v.name] # 根据名字来获取weight进行l2_loss的构造
a = tf.nn.l2_loss(weight)
print(sess.run(a)) # 0.375, 表示为sum(t**2) / 2
24 tf.scalar_mul # 进行浮点数相乘操作,可以用在learning_rate的迭代上
import tensorflow as tf
import numpy as np x = tf.constant(1.0)
step_ph = tf.placeholder(dtype=tf.float32, shape=())
y = tf.scalar_mul(step_ph, x) sess = tf.Session()
print(sess.run(y, feed_dict={step_ph:1}))
25. tf.train.MomentumOptimizer(learning_rate, args.momentum) # 定义动量梯度下降优化器
26.tf.gradients(reduced_loss, conv_trainable + fc_w_trainable + fc_b_trainable) # 获取loss梯度值 reduced_loss 损失值, conv_trainable + 。。。权重值进行相加
27 tf.global_variables_initializer() # 进行权重初始化操作
28. tf.train.start_queue_runners(coord=coord, sess=sess) # 开启队列线程
29. tf.image.decode_jpeg # 进行图片解析
30. tf.convert_to_tensor # 将数据转换为tensor可以接受的数据格式
31 tf.train.slice_input_producer # 构建随机队列
32 tf.train.batch # tf.train.shuffle_batch随机获取,tf.train.batch按照顺序进行获取
import pandas as pd
import numpy as np
import tensorflow as tf def generate_data():
num = 25
label = np.asarray(range(0, num))
images = np.random.random([num, 5])
print('label size :{}, image size {}'.format(label.shape, images.shape))
return images,label def get_batch_data():
label, images = generate_data() # tf.train.slice_input_producer 构建随机队列
input_queue = tf.train.slice_input_producer([images, label], shuffle=False,num_epochs=2) # 将数据和标签进行放入
image_batch, label_batch = tf.train.batch(input_queue, batch_size=5, num_threads=1, capacity=64,allow_smaller_final_batch=False)
return image_batch,label_batch images,label = get_batch_data()
sess = tf.Session()
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())#就是这一行
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess,coord)
try:
while not coord.should_stop():
i,l = sess.run([images,label])
print(i)
print(l)
except tf.errors.OutOfRangeError:
print('Done training')
finally:
coord.request_stop()
coord.join(threads)
sess.close()
33. tf.image.resize_nearest_neighbor(input_batch, new_size) # 进行图片的维度变化,使用最近邻进行图片的维度变化
34 tf.image.resize(input_batch, new_size, method) # 进行图片的维度变化,可以进行多种插值方法,默认为线性插值
35. tf.one_hot(input_batch, depth=num_classes) # 进行独热编码, depth表示的是维度
import tensorflow as tf
import numpy as np a = [1, 2, 3, 4]
y = tf.one_hot(a, depth=5) sess = tf.Session()
print(sess.run(y))
36. tf.reverse(img, axis) 表示对图片进行翻转
import cv2 img = cv2.imread('001.jpg')
img = tf.reverse(img, axis=[1])
img = sess.run(img)
cv2.imshow('img', img) cv2.waitKey(0)
37 tf.random_crop(img, [h, w, 3]) # 对图片进行随机裁剪
img = tf.random_crop(img, [200, 200, 3]) # 200, 200 表示尺寸
img = sess.run(img)
cv2.imshow('crop', img)
cv2.waitKey(0)
38 combined_pad = tf.image.pad_to_bounding_box(combined, 0, 0, tf.maximum(crop_h, image_shape[0]), tf.maximum(crop_w, image_shape[1]))
# 表示进行补零操作 第一个0表示在顶部添加0的行数,在左侧添加0的列数, 后面两个参数表示输出图片的高度和宽度
# 10 表示顶部添加0的行数,10表示左侧添加0的列数,300,300表示补完零以后的尺度
combined_pad = tf.image.pad_to_bounding_box(img, 10, 10, 300, 300)
img = sess.run(combined_pad)
cv2.imshow('pad', img)
cv2.waitKey(0)
39. tf.TFRecordReader() 构建TFRecord读取器
40.tf.random_uniform_initializer(min, max) # 随机标准差初始化, min, max表示标准化的范围
41.tf.image.convert_image_dtype(image, dtype=tf.float32) # 将图片进行类型转换
42.tf.image.resize_image_with_crop_or_pad(image, height, width) # 如果图片的维度大于height和width进行裁剪操作,否者进行补零操作
43. tf.image.random_flip_left_right(image) # 以一定的概率进行翻转操作,就是说可能翻转也可能不翻转,个人觉得概率应该是0.5
image = tf.image.random_flip_left_right(img)
image = sess.run(image)
cv2.imshow('flip', image)
cv2.waitKey(0)
44. tf.image.random_brightness(image, max_delta=32. / 255.) # 进行亮度的随机变化,调整的像素范围为[-max_detla, max_detla]
45.tf.image.random_saturation(image, lower=0.5, upper=1.5) 进行饱和度的随机变化, 在[0.5, 1.5]的范围内进行调整
46. tf.image.random_hue(image, max_delta) 进行色相的随机变化
47. tf.image.random_contrast(image, lower=0.5, upper=1.5) 调整图像的随机变化对比度
48. tf.clip_by_value(image, 0.0, 1.0) # 对值域范围进行裁剪, 大于1.0的数值使用1.0表示,小于0的数值使用0表示
a = tf.constant([0.2, 0.3, 1.1, -0.3])
b = tf.clip_by_value(a, 0.0, 1.0)
b = sess.run(b)
print(b)
# 0.2, 0.3, 1.0, 0.0
49. tf.summary.image(name, tf.expand_dims(image, 0)) # 加上一个通道数,对图片进行缓存
a = tf.constant([0.2, 0.3, 1.1, -0.3])
# 在axis=1上添加一个维度
print(a.shape) # (4, )
c = tf.expand_dims(a, 1)
print(c.shape) # (4, 1)
50. tf.parse_single_sequence_example() # 构造出队列字典,用于进行TF_record的写入
import tensorflow as tf
import os sess=tf.InteractiveSession()
sess.run(tf.global_variables_initializer()) def make_example(key):
example = tf.train.Example(features=tf.train.Features(
feature={
'ft':tf.train.Feature(float_list=tf.train.FloatList(value=key))
}
))
return example features={
"ft":tf.FixedLenFeature(shape=[3],dtype=tf.float32)
} key_parsed = tf.parse_single_example(make_example([1.0,2.0,3.0]).SerializeToString(),features) print tf.contrib.learn.run_n(key_parsed)
51 tf.FixedLenFeature([], dtype=tf.string)} 从上面的列子可以看出,这部分是用来构造出空位子的类别,TF写入里面用来构造出string
features={
"ft":tf.FixedLenFeature(shape=[3],dtype=tf.float32)
}
52. tf.FixedLenSequenceFeature([], dtype=tf.int64),}) #用于构造多个列表字典
context_features = {
"locale": tf.FixedLenFeature([],dtype=tf.string),
"age": tf.FixedLenFeature([],dtype=tf.int64)
}
sequence_features = {
"movie_rating": tf.FixedLenSequenceFeature([3], dtype=tf.float32,allow_missing=True)
} context_parsed, sequence_parsed = tf.parse_single_sequence_example(make_example("china",24,[1.0,3.5,4.0],2),context_features=context_features,sequence_features=sequence_features)
53 tf.gfile.Glob(pattern) # 根据文件名格式获取文件列表
x = tf.gfile.Glob('picture/*.jpg') # 找出picture文件中所有的图片
print(x)
54. filename_queue = tf.train.string_input_producer(data_files, shuffle=True, capacity=16, name=shard_queue_name) # 构建文件名队列, 用于进行线程变化
55. tf.RandomShuffleQueue( capacity=capacity, min_after_dequeue=min_queue_examples,dtypes=[tf.string],name="random_" + value_queue_name) # 生成随机数值队列
56 tf.FIFOQueue(capacity=capacity, dtypes=[tf.string], name="fifo_" + value_queue_name) # 生成顺序数值队列,遵循先进先出的原则
57. tf.train.queue_runner.add_queue_runner(tf.train.queue_runner.QueueRunner(values_queue, enqueue_ops)) # 将队列添加到队列执行器中
58. tf.train.batch_join(enqueue_list,batch_size=batch_size,capacity=queue_capacity,dynamic_pad=True,name="batch_and_pad") # 通过线程读取图片,同时进行补零操作
59. tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope="InceptionV3") # 获得放入的变量
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# 将v1变量放入loss中
v1 = tf.get_variable(name='v1', shape=[1], initializer=tf.constant_initializer(0))
tf.add_to_collection('loss', v1)
v2 = tf.get_variable(name='v2', shape=[1], initializer=tf.constant_initializer(2))
tf.add_to_collection('loss', v2) with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
# 将变量从loss中取出
print(tf.get_collection('loss'))
print(sess.run(tf.add_n(tf.get_collection('loss'))))
60 tf.contrib.layers.fully_connected(inputs=inception_output,num_outputs=self.config.embedding_size,activation_fn=None,weights_initializer=self.initializer,biases_initializer=None,scope=scope) # 进行全连接操作
61.tf.nn.embedding_lookup(embedding_map, self.input_seqs) #根据位置索引进行取值,self.input_seqs表示的是位置索引,使用tf.gather也可以获取相同的效果
import tensorflow as tf;
import numpy as np; c = np.random.random([10, 1])
b = tf.nn.embedding_lookup(c, [1, 3])
d = tf.gather(c, [1, 3]) # 根据索引值进行获取
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
print(sess.run(b))
print(sess.run(d)) # 打印出d的位置信息
62. tf.contrib.rnn.BasicLSTMCell(num_units=self.config.num_lstm_units, state_is_tuple=True) # 构建LSTM模型 self.config_num_lstm_units 表示模型隐含层的个数
63. tf.contrib.rnn.DropoutWrapper(lstm_cell,input_keep_prob=self.config.lstm_dropout_keep_prob,output_keep_prob=self.config.lstm_dropout_keep_prob) # 添加dropout层进行防过拟合操作, 用于进行rnn的dropout操作
64.lstm_cell.zero_state(batch_size=self.image_embeddings.get_shape()[0], dtype=tf.float32) # 获得全零的初始隐含层操作
65.lstm_cell(self.image_embeddings, zero_state) # 获得第一个初始状态
66.lstm_scope.reuse_variables() lstm_scope 表示的当前scope_name,表示的是可以进行参数的复用操作
67. tf.nn.dynamic_rnn(cell=lstm_cell,inputs=self.seq_embeddings,sequence_length=sequence_length, initial_state=initial_state,dtype=tf.float32,scope=lstm_scope)
# 获得LSTM的输出,initial_state 表示的是将全0和图片特征输入后的初始状态
68. tf.losses.add_loss(batch_loss) 将外部定义的loss放入tf.losses.add_loss
69. tf.losses.get_total_loss() # 获得所有的loss值
70. tf.train.exponential_decay(learning_rate,global_step,decay_steps=decay_steps,decay_rate=training_config.learning_rate_decay_factor,staircase=True)
# 学习率进行指数形式的梯度衰减, learning_rate 表示的是初始学习率,decay_steps每迭代多少次进行衰减, decay_rate表示学习率的衰减系数, global_step表示当前的迭代次数,
# 学习率的衰减测试
learning_rate = tf.Variable(1.0, trainable=False)
global_step = 100
learning_rate_now = tf.train.exponential_decay(learning_rate, 100, 50, 0.1)
sess.run(tf.global_variables_initializer())
print(sess.run(learning_rate_now))
71.tf.contrib.layers.optimize_loss(loss=model.total_loss,global_step=model.global_step,learning_rate=learning_rate,optimizer=training_config.optimizer,clip_gradients=training_config.clip_gradients, learning_rate_decay_fn=learning_rate_decay_fn)
# 生成训练时的ops, loss表示总的损失值,learning_rate 表示初始学习率, optimizer表示梯度下降的方法,clip_gradients表示梯度剪裁,为了预防梯度爆炸的情况learning_rate_decay_fn,表示的学习率
用于构造ops降低loss的操作
72. tf.contrib.slim.learning.train(train_op,train_dir, log_every_n_steps=FLAGS.log_every_n_steps,graph=g,global_step=model.global_step,number_of_steps=FLAGS.number_of_steps, init_fn=model.init_fn,saver=saver)
# 建立迭代模型,train_op表示训练时的ops, train_dir 表示训练参数的存储地址, log_every_n_steps表示迭代打印的次数,graph表示tf.graph,number_of_steps表示迭代的次数, init_fn表示初始的参数, saver=saver表示储存的, 开始运行操作
73. tf.train.Saver(max_to_keep=training_config.max_checkpoints_to_keep) # 表示参数存储器 max_to_keep=training_config.max_checkpoints_to_keep 表示记录存储的最大条数, 构造存储的函数
74. tf.transpose(input, perm=[1, 0]) # 将行和列的位置进行调换
import tensorflow as tf
import numpy as np x = [[1, 2, 3, 4], [1, 2, 4, 3]]
print(np.shape(x))
sess = tf.Session()
# 进行维度的变化,perm表示将第一二维度转换为第一个维度
print(sess.run(tf.transpose(x, perm=[1, 0])))
75. tf.InteractiveSession(config=tf.ConfigProto(allow_soft_placement=True)) # tf.InteractiveSession可以在定义图的时候插入一些图
76. lr = tf.Variable(learning_rate) # 创建可变的参数,平时可以用来构建global_step
global_step = tf.Vairble(0, trainable=False) # 构造初始化的global_step迭代次数,以用作优化学习率
77.tf.train.AdamOptimizer(learning_rate=lr) #表示的是自适应的梯度下降优化器
# 构造出自适应的梯度下降优化器, 防止出现梯度爆炸的情况
78 tf.clip_by_global_norm(grads,5.0) # 表示对梯度进行剪裁操作,5.3表示剪裁的力度,不过需要通过上面一步来求出grads值来
79.tf.device('/gpu:'+str(0)) #表示使用哪个gpu进行运行, 判断使用哪个GPU进行运行
with tf.device('/cpu:0'):
a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')
b = tf.constant([3.0, 2.0, 1.0], shape=[3], name='b')
c = a + b
print(sess.run(c))
80.
tensorflow 卷积神经网络基本参数()的更多相关文章
- Tensorflow卷积神经网络[转]
Tensorflow卷积神经网络 卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络, 在计算机视觉等领域被广泛应用. 本文将简单介绍其原理并分析Te ...
- 深度学习原理与框架-Tensorflow卷积神经网络-cifar10图片分类(代码) 1.tf.nn.lrn(局部响应归一化操作) 2.random.sample(在列表中随机选值) 3.tf.one_hot(对标签进行one_hot编码)
1.tf.nn.lrn(pool_h1, 4, bias=1.0, alpha=0.001/9.0, beta=0.75) # 局部响应归一化,使用相同位置的前后的filter进行响应归一化操作 参数 ...
- TensorFlow 卷积神经网络实用指南 | iBooker·ApacheCN
原文:Hands-On Convolutional Neural Networks with TensorFlow 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心 ...
- AI相关 TensorFlow -卷积神经网络 踩坑日记之一
上次写完粗浅的BP算法 介绍 本来应该继续把 卷积神经网络算法写一下的 但是最近一直在踩 TensorFlow的坑.所以就先跳过算法介绍直接来应用场景,原谅我吧. TensorFlow 介绍 TF是g ...
- Tensorflow卷积神经网络
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络, 在计算机视觉等领域被广泛应用. 本文将简单介绍其原理并分析Tensorflow官方提供的示例. ...
- 深度学习原理与框架-Tensorflow卷积神经网络-卷积神经网络mnist分类 1.tf.nn.conv2d(卷积操作) 2.tf.nn.max_pool(最大池化操作) 3.tf.nn.dropout(执行dropout操作) 4.tf.nn.softmax_cross_entropy_with_logits(交叉熵损失) 5.tf.truncated_normal(两个标准差内的正态分布)
1. tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME') # 对数据进行卷积操作 参数说明:x表示输入数据,w表示卷积核, stride ...
- tensorflow卷积神经网络与手写字识别
1.知识点 """ 基础知识: 1.神经网络(neural networks)的基本组成包括输入层.隐藏层.输出层.而卷积神经网络的特点在于隐藏层分为卷积层和池化层(po ...
- TensorFlow卷积神经网络实现手写数字识别以及可视化
边学习边笔记 https://www.cnblogs.com/felixwang2/p/9190602.html # https://www.cnblogs.com/felixwang2/p/9190 ...
- TensorFlow 卷积神经网络手写数字识别数据集介绍
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 手写数字识别 接下来将会以 MNIST 数据集为例,使用卷积层和池 ...
随机推荐
- redhat7下mysql5.7.12重启电脑后起不来问题
环境介绍: 64位reahat7 mysql5.7.12 初次安装后mysql运行是正常的,重启操作系统后检查mysql运行状态如下: [root@localhost ~]# systemctl st ...
- 本人遇到的spring事务之UnexpectedRollbackException异常解决笔记
本人最近在使用spring事务管理的过程中遇到如下异常,导致服务端抛出500给前端,让搞前端的哥们抱怨我心里着实不爽,前前后后折腾了近半个小时才得于解决,今天就做个笔记,以免日后又犯这个错误.好了,错 ...
- spring boot 之热部署
热部署:当发现程序修改时自动启动应用程序. spring boot使用的是spring-boot-devtools是一个为开发者服务的一个模块.其原理用了classLoader 其中一个加载不变的类, ...
- POJ 2689 筛法求素数
DES:给出一个区间[L, U].找出这个区间内相邻的距离最近的两个素数和距离最远的两个素数.其中1<=L<U<=2147483647 区间长度不超过1000000. 思路:因为给出 ...
- 高级浏览器-SRWare Iron 29.0.1600.0 版本发布
SRWare Iron是德国一安全公司srware改造的Chrome(铬)命名为铁(iron)的浏览器.于2008年9月18日首次发布. 据官方介绍,Iron浏览器砍掉了Chromium原程序中的很多 ...
- 古董留念 - Microsoft Office 4.2中文版
Office 4.2是Office 95的前一个版本,最适合运行在Windows 3.x上,但即使是最新的Windows 7 32位版也是可以安装它的(不信你可以试试)! 原版以软盘为载体,安装一次需 ...
- Roofline Model与深度学习模型的性能分析
原文链接: https://zhuanlan.zhihu.com/p/34204282 最近在不同的计算平台上验证几种经典深度学习模型的训练和预测性能时,经常遇到模型的实际测试性能表现和自己计算出的复 ...
- python3 爬虫相关-requests和BeautifulSoup
前言 时间的关系,这篇文章只记录了相关库的使用,没有进行深入分析,各位看官请见谅(还是因为懒.....) requests使用 发送无参数的get请求 r = requests.get('http:/ ...
- office 2013母版保存并调用
如果觉得某个ppt的母版不错,想保存下来以后使用的话,那么执行 开始->另存为-> 选择位置和格式,注意格式选择potx. 之后如果想要使用这组母版,怎么办呢? 浏览主题,打开之前保存的 ...
- PAT 1021 个位数统计 C语言
1021. 个位数统计 (15) 给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0) ...