小编I. *_*. A的帖子

解释Tensorboard分布 - 权重不变,只有偏差

我有一个神经网络,其组织如下:

conv1 - pool1 - local reponse normalization (lrn2) - conv2 - lrn2 - pool2 -
conv3 - pool3 - conv4 - pool4 - conv5 - pool5 - dense layer (local1) - 
local2 - softmax
Run Code Online (Sandbox Code Playgroud)

在查看了tensorboard的发行版之后,我得到了以下内容:

conv5_biases conv5_weights local1_biases local1_weights local2_weights softmax_weights 失利 下图是激活随时间的输出.

Conv1输出分布 在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述 因此,从损失数字来看,很明显网络正在学习.此外,所有的偏见都表明它们是学习的结果.但是重量怎么样,看起来它们没有随时间变化?我从它的数字中得到的是合乎逻辑的吗?请注意,我只在图表中发布了权重和偏差的图像子集.所有重量的数字都与我在这里所呈现的数字类似,同样对于偏见似乎学习了偏见,而重量则没有!

以下是我构建图表的方法:

# Parameters
learning_rate = 0.0001
batch_size = 1024
n_classes = 1  # 1 since we need the value of the retrainer.

weights = {
    'weights_conv1': tf.get_variable(name='weights1', shape=[5, 5, 3, 128], dtype=tf.float32,
                        initializer=tf.contrib.layers.xavier_initializer_conv2d(uniform=False, dtype=tf.float32)),
    'weights_conv2': tf.get_variable(name='weights2', shape=[3, 3, 128, …
Run Code Online (Sandbox Code Playgroud)

visualization distribution tensorflow tensorboard

16
推荐指数
1
解决办法
3548
查看次数

如何对张量流中的一批图像执行tf.image.per_image_standardization

我想知道如何在一批图像上执行图像白化.

根据https://www.tensorflow.org/api_docs/python/tf/image/per_image_standardization中的文档,据说tf.image.per_image_standardization将形状的3D张量(即图像)作为输入[height, width, channels].

它是缺失的功能还是有不同的方法?

任何帮助深表感谢.

batch-processing tensorflow image-whitening

12
推荐指数
1
解决办法
5584
查看次数

为什么使用相同的数据集进行训练和测试会给出不同的准确度?

我一直在研究训练和验证数据集的损失函数,我一直看到验证损失小于训练损失,即使它们是相同的数据集。我试图了解为什么会出现这种情况。

我正在 tensorflow 中训练一个模型来预测一些时间序列数据。因此,模型创建和预处理如下:

window_size = 40
batch_size  = 32
forecast_period = 6
model_name = "LSTM"
tf.keras.backend.clear_session()

_seed = 42
tf.random.set_seed(_seed)

def _sub_to_batch(sub):
    return sub.batch(window_size, drop_remainder=True)

def _return_input_output(tensor):
    _input  = tensor[:, :-forecast_period, :]
    _output = tensor[:, forecast_period:, :]
    return _input, _output

def _reshape_tensor(tensor):
    tensor = tf.expand_dims(tensor, axis=-1)
    tensor = tf.transpose(tensor, [1, 0, 2])
    return tensor


# total elements after unbatch(): 3813
train_ts_dataset = tf.data.Dataset.from_tensor_slices(train_ts)\
                            .window(window_size, shift=1)\
                            .flat_map(_sub_to_batch)\
                            .map(_reshape_tensor)\
                            .map(_return_input_output)
#                             .unbatch().shuffle(buffer_size=500, seed=_seed).batch(batch_size)\
#                             .map(_return_input_output)

valid_ts_dataset = tf.data.Dataset.from_tensor_slices(valid_ts)\
                            .window(window_size, shift=1)\
                            .flat_map(_sub_to_batch)\ …
Run Code Online (Sandbox Code Playgroud)

python tensorflow

9
推荐指数
1
解决办法
412
查看次数

批量归一化和使用 SELU 的自归一化神经网络的区别

我想知道批量归一化和自归一化神经网络之间的区别。换句话说,SELU(缩放指数线性单元)会取代批量归一化吗?

此外,在查看 SELU 激活值后,我发现它们在以下范围内:[-1, 1]. 虽然批量标准化不是这种情况。取而代之的是,BN层之后(relu 激活之前)的值采用了[-a, a]大约的值,而不是[-1, 1]

以下是我在 SELU 激活后和批处理规范层后打印值的方式:

batch_norm_layer = tf.Print(batch_norm_layer,
                           data=[tf.reduce_max(batch_norm_layer), tf.reduce_min(batch_norm_layer)],
                           message = name_scope + ' min and max') 
Run Code Online (Sandbox Code Playgroud)

和 SELU 激活的类似代码......

Batch norm层定义如下:

def batch_norm(x, n_out, phase_train, in_conv_layer = True):

    with tf.variable_scope('bn'):
        beta = tf.Variable(tf.constant(0.0, shape=n_out),
                                     name='beta', trainable=True)
        gamma = tf.Variable(tf.constant(1.0, shape=n_out),
                                      name='gamma', trainable=True)
        if in_conv_layer:
            batch_mean, batch_var = tf.nn.moments(x, [0, 1, 2], name='moments')
        else:
            batch_mean, batch_var = tf.nn.moments(x, [0, 1], name='moments')

        ema = tf.train.ExponentialMovingAverage(decay=0.9999) …
Run Code Online (Sandbox Code Playgroud)

neural-network batch-normalization

8
推荐指数
1
解决办法
2449
查看次数

如何在张量流中随机旋转不同角度的图像

我知道我可以使用tensorflow旋转图像tf.contrib.image.rotate。但是,假设我想以弧度为单位,以-0.3到0.3之间的角度随机应用旋转,如下所示:

images = tf.contrib.image.rotate(images, tf.random_uniform(shape=[batch_size], minval=-0.3, maxval=0.3, seed=mseed), interpolation='BILINEAR')
Run Code Online (Sandbox Code Playgroud)

到目前为止,这将正常工作。但是,当批次大小在最后一次迭代中发生变化并且出现错误时,就会出现问题。那么,如何解决此代码并使它在所有情况下都能正常工作?请注意,输入图像是使用tf.data.Datasetapi 馈送的。

任何帮助深表感谢!!

python image-rotation tensorflow data-augmentation

7
推荐指数
1
解决办法
2211
查看次数

解释不同阶数的 LK Norm 对训练存在异常值的机器学习模型的影响

( RMSE和MAE都是测量两个向量之间距离的方法:预测向量和目标值向量。各种距离测量或范数都是可能的。一般来说,计算向量的大小或长度通常直接需要或作为更广泛的向量或向量矩阵运算的一部分。

尽管RMSE通常是回归任务的首选性能度量,但在某些情况下您可能更喜欢使用其他函数。例如,如果数据集中有许多异常值实例,在这种情况下,我们可以考虑使用平均绝对误差(MAE)。

更正式地说,规范指数越高,它就越关注大值而忽视小值。这就是 RMSE 比 MAE 对异常值更敏感的原因。 来源:使用 scikit learn 和 tensorflow 进行机器学习实践。

因此,理想情况下,在任何数据集中,如果我们有大量异常值,则损失函数或向量范数“代表预测与真实标签之间的绝对差异;类似于y_diff下面的代码”应该会增长,如果我们增加标准...换句话说,RMSE 应该大于 MAE。--> 如果有错请纠正<--

根据这个定义,我生成了一个随机数据集,并向其中添加了许多异常值,如下面的代码所示。我计算了残差或许多 k 值(范围从 1 到 5)的lk_normy_diff。但是,我发现 lk_norm 随着 k 值的增加而减小;然而,我期望 RMSE(又名范数 = 2)大于 MAE(又名范数 = 1)。

我很想了解当我们增加 K(又名阶数)时,LK 范数是如何减少的,​​这与上面的定义相反。

预先感谢您的任何帮助!

代码:

import numpy as np
import plotly.offline as pyo
import plotly.graph_objs as go
from plotly import tools

num_points = 1000
num_outliers = 50

x = np.linspace(0, 10, …
Run Code Online (Sandbox Code Playgroud)

python absolute-value norm least-squares loss-function

7
推荐指数
2
解决办法
419
查看次数

tensorflow中等效的以下代码是什么?

我有以下功能:

import random

lst = []
for i in range(100):
    lst.append(random.randint(1, 10))

print(lst)

buffer = []

# This is the peace of code which I am interested to convert into tensorflow.
for a in lst:
    buffer.append(a)

    if len(buffer) > 5:
        buffer.pop(0)

    if len(buffer) == 5:
        print(buffer)
Run Code Online (Sandbox Code Playgroud)

所以,从代码中,我需要创建一个缓冲区(可能是张量流中的变量).此缓冲区应保留最后提取的要素conv layer.在我的案例中,这variable将是一个输入RNN.

这种方法的优点是,当我们有大图像时,以及当我们需要用一个RNN提供RNN时(batch of images) * (sequence length) * (size of 1 image),这将需要将大量图像加载到主存储器中.另一方面,根据上面的代码,我们将使用Datasetsfrom张量流或一个input queue或任何其他替代方案一次馈送1个图像.因此,我们将在内存中存储大小的特征:batch_size * sequence_length * feature space.此外,我们可以说:

if …
Run Code Online (Sandbox Code Playgroud)

for-loop tensorflow

6
推荐指数
1
解决办法
409
查看次数

从字符串列表中创建 TfRecords 并在解码后在 tensorflow 中提供 Graph

目的是创建一个 TfRecords 数据库。鉴于:我有 23 个文件夹,每个文件夹包含 7500 个图像和 23 个文本文件,每个文件都有 7500 行描述单独文件夹中 7500 个图像的功能。

我通过以下代码创建了数据库:

import tensorflow as tf
import numpy as np
from PIL import Image

def _Float_feature(value):
    return tf.train.Feature(float_list=tf.train.FloatList(value=[value]))

def _bytes_feature(value):
    return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))

def _int64_feature(value):
    return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))

def create_image_annotation_data():
    # Code to read images and features.
    # images represent a list of numpy array of images, and features_labels represent a list of strings
    # where each string represent the whole set of features for each image. 
    return images, features_labels …
Run Code Online (Sandbox Code Playgroud)

python binary batch-processing string-decoding tensorflow

5
推荐指数
1
解决办法
6922
查看次数

如何在Android中为NestedScrollView设置最大高度?

我有NestedScrollView一个ScrollView。在NestedScrollView包含TextView。因此,当TextView展开超过4或n个 lineas时,我需要制作它Scrollable TextView

任何帮助深表感谢!!

android textview android-nestedscrollview

5
推荐指数
1
解决办法
1081
查看次数

使用Tensorflow中的GRU将先前时间步长的渐变到当前时间步长

我在tensorflow中有以下模型:

def output_layer(input_layer, num_labels):
    '''
    :param input_layer: 2D tensor
    :param num_labels: int. How many output labels in total? (10 for cifar10 and 100 for cifar100)
    :return: output layer Y = WX + B
    '''
    input_dim = input_layer.get_shape().as_list()[-1]
    fc_w = create_variables(name='fc_weights', shape=[input_dim, num_labels],
                            initializer=tf.uniform_unit_scaling_initializer(factor=1.0))
    fc_b = create_variables(name='fc_bias', shape=[num_labels], initializer=tf.zeros_initializer())

    fc_h = tf.matmul(input_layer, fc_w) + fc_b
    return fc_h

def model(input_features):

    with tf.variable_scope("GRU"):
        cell1 = tf.nn.rnn_cell.GRUCell(gru1_cell_size)

        cell2 = tf.nn.rnn_cell.GRUCell(gru2_cell_size)

        mcell = tf.nn.rnn_cell.MultiRNNCell([cell1, cell2], state_is_tuple=False)

        # shape=(?, 64 + 32) 
        initial_state = tf.placeholder(shape=[None, gru1_cell_size …
Run Code Online (Sandbox Code Playgroud)

gradient tensorflow rnn

5
推荐指数
1
解决办法
200
查看次数