我的道歉自我的问题以来听起来很愚蠢。但是我在深度学习和咖啡方面还很陌生。我们如何才能检测到需要多少次迭代才能在我们自己的数据集上微调预训练?例如,我为5个类的数据运行fcn32。何时可以通过查看训练阶段的损失和准确性来停止微调过程?
非常感谢
我正在使用传统的序列到序列框架在TensorFlow 1.0.1中构建编码器 - 解码器模型.当我在编码器和解码器中有一层LSTM时,一切正常.但是,当我尝试使用包裹在a中的> 1层LSTM时MultiRNNCell,我在调用时出错tf.contrib.legacy_seq2seq.rnn_decoder.
完整的错误是在这篇文章的最后,但简而言之,它是由一条线引起的
(c_prev, m_prev) = state
Run Code Online (Sandbox Code Playgroud)
在投掷的TensorFlow中TypeError: 'Tensor' object is not iterable..我对此感到困惑,因为我传递的初始状态rnn_decoder确实是一个应该是的元组.据我所知,使用1层或> 1层的唯一区别是后者涉及使用MultiRNNCell.使用它时是否有一些我应该知道的API怪癖?
这是我的代码(基于此 GitHub仓库中的示例).道歉的长度; 这是我能做到的最小化,同时仍然是完整和可验证的.
import tensorflow as tf
import tensorflow.contrib.legacy_seq2seq as seq2seq
import tensorflow.contrib.rnn as rnn
seq_len = 50
input_dim = 300
output_dim = 12
num_layers = 2
hidden_units = 100
sess = tf.Session()
encoder_inputs = []
decoder_inputs = []
for i in range(seq_len):
encoder_inputs.append(tf.placeholder(tf.float32, shape=(None, input_dim),
name="encoder_{0}".format(i)))
for i in range(seq_len + …Run Code Online (Sandbox Code Playgroud) 我正在使用包含3k图像的数据集从头开始训练VGG-16模型.我使用Tensorflow平台和8 cpu没有任何gpu.
训练率 - 0.01,
重量衰减 - 0.0005,
动量 - 0.9,
批量大小 - 64,
我已经训练了大约三天.但是训练的准确性在20个时期后保持不变,约为15%-20%.谁能给我一些提示来提高准确性?
parameters image-recognition neural-network deep-learning tensorflow
我想为caffe中的语义分段创建一个自定义丢失层,需要多个输入.我希望这种损失函数具有额外的输入因子,以便惩罚小物体中的未命中检测.
为此,我创建了一个图像GT,其中包含每个像素的权重.如果像素属于小物体,则重量很高.
我是caffe的新手,我不知道如何同时为我的网络提供三个2-D信号(图像,gt-mask和每像素权重).我怀疑caffe如何处理rgb数据和gt数据之间的对应关系.
我想扩展这个以便为类标签图像设置2 gt,而将另一个设置为丢失功能.
你能给出一些暗示以达到这个目的吗?
谢谢,
computer-vision neural-network image-segmentation deep-learning caffe
我最近开始使用ML和TensorFlow.在浏览网站上的CIFAR10教程时,我遇到了一段对我来说有点混乱的段落:
训练网络执行N路分类的常用方法是多项逻辑回归,也就是说.softmax回归.Softmax回归将softmax非线性应用于网络的输出,并计算标准化预测与标签的1-hot编码之间的交叉熵.对于正规化,我们还将通常的重量衰减损失应用于所有学习变量.模型的目标函数是交叉熵损失和所有这些权重衰减项的总和,由loss()函数返回.
我已经阅读了关于论坛上什么是重量衰减的几个答案,我可以说它用于正规化的目的,因此可以计算权重值以获得最小损失和更高的准确度.
现在在上面的文本中,我理解它loss()是由交叉熵损失(这是预测和正确标签值的差异)和重量衰减损失组成的.
我很清楚交叉熵损失但是这个重量衰减损失是什么,为什么不仅仅是重量衰减?这个损失是如何计算的?
我正在使用Keras进行多类分类问题。我将其EarlyStopping(monitor='val_loss', patience=4)用作学习的停止标准,即如果验证损失在4个时期内没有减少,则训练停止。最好使用val_acc作为停止条件或val_loss?因为我看到val_loss增加了,但是val_acc也增加了。考虑以下纪元8和纪元13的输出。
Epoch 1/200
240703/240703 [==============================] - 4831s - loss: 0.8581 - acc: 0.7603 - val_loss: 0.6247 - val_acc: 0.8160
Epoch 2/200
240703/240703 [==============================] - 4855s - loss: 0.6099 - acc: 0.8166 - val_loss: 0.5742 - val_acc: 0.8300
Epoch 3/200
240703/240703 [==============================] - 4627s - loss: 0.5573 - acc: 0.8308 - val_loss: 0.5600 - val_acc: 0.8337
Epoch 4/200
240703/240703 [==============================] - 4624s - loss: 0.5265 - acc: 0.8395 - val_loss: 0.5550 - val_acc: 0.8347
Epoch 5/200
240703/240703 [==============================] …Run Code Online (Sandbox Code Playgroud) 我在加载模型以恢复培训时遇到问题.我在cifar数据集上使用简单的双层NN(完全连接)进行练习.
#full_connected_layers
import tensorflow as tf
import numpy as np
#input _-> hidden ->
def inference(data_samples, image_pixels, hidden_units, classes, reg_constant):
with tf.variable_scope('Layer1'):
# Define the variables
weights = tf.get_variable(
name='weights',
shape=[image_pixels, hidden_units],
initializer=tf.truncated_normal_initializer(
stddev=1.0 / np.sqrt(float(image_pixels))),
regularizer=tf.contrib.layers.l2_regularizer(reg_constant)
)
biases = tf.Variable(tf.zeros([hidden_units]), name='biases')
# Define the layer's output
hidden = tf.nn.relu(tf.matmul(data_samples, weights) + biases)
with tf.variable_scope('Layer2'):
# Define variables
weights = tf.get_variable('weights', [hidden_units, classes],
initializer=tf.truncated_normal_initializer(
stddev=1.0 / np.sqrt(float(hidden_units))),
regularizer=tf.contrib.layers.l2_regularizer(reg_constant))
biases = tf.Variable(tf.zeros([classes]), name='biases')
# Define the layer's output …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Keras绘制VGG16架构图。但是,我看到下面的图像,具有None某些尺寸。这None是什么意思?
from keras.utils import plot_model
model = VGG19(include_top=True, weights='imagenet')
#print(model.summary())
plot_model(model, to_file='model_Vgg19.png',show_shapes=True)
Run Code Online (Sandbox Code Playgroud)
我可以看到这是Keras中的一个已知问题:https : //github.com/keras-team/keras/issues/1877。
我有网络:
Tensor("input_1:0", shape=(?, 5, 1), dtype=float32)
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) (None, 5, 1) 0
_________________________________________________________________
bidirectional_1 (Bidirection (None, 5, 64) 2176
_________________________________________________________________
activation_1 (Activation) (None, 5, 64) 0
_________________________________________________________________
bidirectional_2 (Bidirection (None, 5, 128) 16512
_________________________________________________________________
activation_2 (Activation) (None, 5, 128) 0
_________________________________________________________________
bidirectional_3 (Bidirection (None, 1024) 656384
_________________________________________________________________
activation_3 (Activation) (None, 1024) 0
_________________________________________________________________
dense_1 (Dense) (None, 1) 1025
_________________________________________________________________
p_re_lu_1 (PReLU) (None, 1) 1
=================================================================
Total params: 676,098
Trainable params: 676,098
Non-trainable …Run Code Online (Sandbox Code Playgroud) python deep-learning keras tensorflow recurrent-neural-network
我建立了一个深度学习模型,与VGG网络有点类似。我正在将Keras与Tensorflow后端一起使用。模型摘要如下:
model = Sequential()
model.add(Conv2D(64, 3, border_mode='same', activation='relu', input_shape=(180,320,3)))
model.add(Conv2D(64, 3, border_mode='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=2))
model.add(Conv2D(64, 3, border_mode='same', activation='relu'))
model.add(Conv2D(64, 3, border_mode='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=2))
model.add(Conv2D(128, 3, border_mode='same', activation='relu'))
model.add(Conv2D(128, 3, border_mode='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2), strides=2))
model.add(Conv2D(128, 3, border_mode='same', activation='relu'))
model.add(Conv2D(128, 3, border_mode='same', activation='relu'))
model.add(Flatten())
model.add(Dropout(0.5))
model.add(Dense(1024, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(9, activation='relu'))
Run Code Online (Sandbox Code Playgroud)
我尝试了优化器(SGD,Adam等),损失(MSE,MAE等),批处理大小(32和64)的不同组合。我什至试验了学习率的范围从0.001到10000。但是,即使经过20个纪元,无论我使用哪种损失函数,验证损失都保持不变。训练损失的变化很小。我究竟做错了什么?
我的网络应该训练什么:给定输入图像,网络需要预测可以从该图像得出的9个真实值的集合。
培训期间的终端输出:
Epoch 1/100
4800/4800 [==============================] - 96s 20ms/step - loss: 133.6534 - mean_absolute_error: 133.6534 - val_loss: 132.3744 - val_mean_absolute_error: 132.3744
Epoch 2/100
4800/4800 [==============================] - 49s 10ms/step - …Run Code Online (Sandbox Code Playgroud)