如何在Tensorflow概率中分解和可视化斜率成分
我正在运行TensorFlow 2.1和TensorFlow_probability 0.9.我符合具有季节性组件的结构时间序列模型.我正在使用TensorFlow概率结构时间序列概率示例: tensorflow github . 在示例中,有一个很棒的图,其中分解可视化: # Get the distributions over component outputs from the posterior marginals on # training data, and from the forecast model. component_dists = sts.decompose_by_component( demand_model, observed_time_series=demand_training_data, parameter_samples=q_samples_demand_) forecast_component_dists =
2 2023-10-22
编程技术问答社区
Tensorflow 2 -Keras SAVE/LOAD 模型错误(DenseFeatures 和 DistributionLambda 层)
i具有使用TF预处理层(tf.keras.layers.densefeatures)的Tensorflow 2.x模型和来自TF概率(Distributlambda)的分布层: def regression_deep1_proba2(preprocessing_layer, feature_layer_inputs, model_name='test_model'): model = tf.keras.Sequential([ preprocessing_layer, tf.keras.layers.Dense(100, activation='relu', name='hidden_1'), tf.keras.layers.Dense(50, activation='relu', name='hidden_2'), tf.keras.layers.Dense(1 + 1, name='output'),
16 2023-10-19
编程技术问答社区
用Tensorflow的RandomWalkMetropolis函数执行RandomWalk步骤
我是Tensorflow概率的新手,想进行随机漫步的Montecarlo模拟.假设我有代表状态的张量R.我希望tfp.mcmc.randomwalkmetropolis函数返回新状态r'的建议. tfp.mcmc.RandomWalkMetropolis(r) >>> 而不是同一状态或稍微扰动的状态,仅返回此RandomWalkMetropolis对象. RandomWalkMetropolis类还包含one_Step的函数,但是它需要" preation_kernel_results"(我没有),因为我希望这是我的第一步.另外,如何指定大都市接受/拒绝步骤? 解决方案 rwm是一个Python对象,可通过bootstrap_results和one_step方法
8 2023-10-17
编程技术问答社区
带有自定义损失函数(学生t分布)的TensorFlow 2的无效参数错误
这个问题是已经回答的以下问题的后续措施,我想在这里正式提出作为一个新问题.最初的问题位于这里: 如前所述,我目前正在训练TensorFlow模型以预测不同分布的参数.为此,我创建适当的层并修改损失功能. 不幸的是,当我使用多变量T-Distribution(tfp.distributions.multivariateStudentTlinEaroperator)时,以下错误结果: InvalidArgumentError: Input matrix is not invertible. [[node negative_t_loss_2/negative_t_loss_2_MultivariateStudentTLinearOperator/log_prob/LinearOperatorLowerTriangular/solve/triangular_solve/MatrixTriangularSolve (defined at d:\20_programmi
14 2023-10-17
编程技术问答社区
带有自定义的损失功能的TensorFlow 2的无效参数错误,尽管一切似乎都是正确的
我目前正在使用Tensorflow 2来训练不仅为时间序列提供点预测的模型,还可以预测分布指标(例如均值和方差). 为此,我创建一个图层并修改损耗函数以优化相应的参数. 对于仅一个预测时间序列的一维情况,这很好. 对于两个时间序列的情况,我想尝试相应地预测相关性,并使用" tensorflow_probability''的函数"多叶牙原质法".但是,我得到以下错误: InvalidArgumentError: Input matrix must be square. [[node negative_normdist_loss_2/MultivariateNormalFullCovariance/init/Cholesky (defined at d:\20_programming\python\virtualenvs\tensorflow-gpu-2\lib\site-packages\tensorflow_probability\python\distribut
8 2023-10-17
编程技术问答社区
为什么在TensorFlow 2中tf.executing_eagerly()会返回False?
让我解释一下我的设置.我使用的是Tensorflow 2.1,带有TF的KERAS版本和TensorFlow概率0.9. i具有一个函数get_model,可以创建(使用功能API),并使用KERAS和自定义图层返回模型.在这些自定义层A的__init__方法中,我调用一个方法A.m,该方法执行语句print(tf.executing_eagerly()),但它返回False.为什么? 更准确地说,这大约是我的设置 def get_model(): inp = Input(...) x = A(...)(inp) x = A(...)(x) ... model = Model(inp, out) model.compile(...) return model class A(tfp.layers.DenseFlipout): # TensorFlow Probability def __init__(.
16 2023-10-17
编程技术问答社区
在GPflow 2.0中用Tensorflow bijector链进行边界超参数优化
在GPFlow 2.0中进行GP回归时,我想在长度尺寸上设置硬界(即限制长度尺寸优化范围).遵循此线程(设置GPFLOW 2.0中的超参数优化界限,我构建了一个张量流族框链(请参见下面的bounded_lengthscale函数).但是,下面的纵梁链并不能阻止模型在所假定边界之外进行优化.我需要更改什么才能使bounded_lengthscale函数在优化方面具有硬界限? 下面是mre: import gpflow import numpy as np from gpflow.utilities import print_summary import tensorflow as tf from tensorflow_probability import bijectors as tfb # Noisy training data noise = 0.3 X = np.arange(-3, 4, 1).reshape(-1, 1).astype('float64') Y =
12 2023-10-16
编程技术问答社区
在GPflow 2.0中设置超参数优化界限
在GPFLOD 1.0中,如果我想在诸如长度尺寸之类的参数上设置硬界(即限制参数的优化范围), transforms.Logistic(a=4., b=6.) 将限制4至6之间的参数. GPFLOW 2.0的文档说,变换是由Tensorflow概率的两种概率的类别来处理的.哪个射击者类处理参数的硬性限制,实施它的正确方法是什么? 这里提出了类似的问题(内核的超参数;边界)关于GPFLOW 1.0.但是,由于GPFLOCE 1.0不涉及使用将是使用将是使用新问题. 解决方案 这很容易与两种束缚器一起进行: In [35]: a = 3.0 ...: b = 5.0 ...: affine = tfp.bijectors.AffineScalar(shift=a, scale=(b - a)) ...: sigmoid = tfp.bijectors.Sigmoid() ...: logistic = tfp.bijecto
6 2023-10-16
编程技术问答社区
Tensorflow概率:保存和加载模型
我正在尝试使用张量概率拟合模型,例如: input = Input(shape=(32,32,32,3)) x = tfp.layers.Convolution3DReparameterization( 64, kernel_size=5, padding='SAME', activation=tf.nn.relu, data_format = 'channels_first')(input) x = tf.keras.layers.MaxPooling3D(pool_size=(2, 2, 2), strides=(2, 2, 2), padding='SAME')(x) x = tf.keras.layers.Flatten()(x) output = tfp.layers.DenseFlipout(10)(x)
8 2023-10-16
编程技术问答社区
TensorFlow概率:无效的符号:所需的可广播形状
我的数据具有Channels_first格式.当我使用TensorFlow概率层时,我会收到以下错误: 这是一个示例,其中输入形状为[1,28,28]和可重复的代码:(请确保您在GPU上运行代码.) InvalidArgumentError: required broadcastable shapes [[node gradient_tape/lambda/model_3_mixture_same_family_4_MixtureSameFamily_MixtureSameFamily/log_prob/model_3_mixture_same_family_4_MixtureSameFamily_independent_normal_4_IndependentNormal_Independentmodel_3_mixture_same_family_4_MixtureSameFamily_independent_normal_4_IndependentNorma
18 2023-10-16
编程技术问答社区
避免矩阵反转误差,当取tensorflow数值集成结果时
我正在使用 tfp.math.ode.BDF tfp.math.ode.BDF tfp.math.ode.BDF 数值整合一个普通微分方程(ODE)的系统.请参阅我的ColaBoratory笔记本就像API文档中的示例代码一样,函数ode_fn(t, y, theta)定义要解决的ODE系统.我能够将ode_fn wrt theta的梯度与tfp.math.ode.BDF. 集成在一起 当我尝试将ODE解决方案结果的梯度wrt theta带走时,我会收到以下错误.当我用更简单的ODE替换ode_fn时,代码无需任何问题即可.是否应该调整求解器设置以避免此错误? InvalidArgumentError Traceback (most recent call last) in () ----> 1 print(g.gradient(foo, theta0))
无法从DenseVariational获得合理的结果
我正在尝试使用以下数据集(正弦曲线)的回归问题500 首先,我用2个密度层,每个单元都尝试了 model = tf.keras.Sequential([ tf.keras.layers.Dense(10, activation='tanh'), tf.keras.layers.Dense(10, activation='tanh'), tf.keras.layers.Dense(1), tfp.layers.DistributionLambda(lambda t: tfd.Normal(loc=t, scale=1.)) ]) 接受了负模具损失的训练,如下所示 model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.01), loss=neg_log_likelihood) model.fit(x, y, epochs=50) 结
2 2023-10-16
编程技术问答社区
使用Tensorflow分布的Keras模型在批量大小>1的情况下损失失败
我正在尝试使用tensorflow_probability中的分布来定义KERAS中的自定义损失函数.更具体地说,我正在尝试建立一个混合密度网络. 当batch_size = 1时,我的模型在玩具数据集上起作用(它学习使用x预测y的正确混合物分布).但是当batch_size> 1时,它会"失败"(它预测所有y的相同分布,忽略x).这使我认为我的问题与batch_shape vs.same_shape有关. 复制: import random import keras from keras import backend as K from keras.layers import Dense, Activation, LSTM, Input, Concatenate, Reshape, concatenate, Flatten, Lambda from keras.optimizers import Adam from keras.callbacks import Earl
18 2023-10-16
编程技术问答社区
没有名为" TensorFlow_probability'的模块"
我需要使用TensorFlow和TensorFlow_probability.通过这些命令安装它后:conda install tensorflow-probability或pip install --upgrade tensorflow-probability,我在笔记本中运行它: import tensorflow_probability as tfp 但它返回此错误: ModuleNotFoundError Traceback (most recent call last) in ----> 1 import tensorflow_probability as tfp ModuleNotFoundError: No module named 'tensorflow_probability'. 的结果 pip list 如下(
8 2023-10-16
编程技术问答社区
如何获得概率层的形状?
我是具有张量概率层的建筑模型.当我这样做时,model.output.shape,我会发现一个错误: AttributeError: 'UserRegisteredSpec' object has no attribute '_shape' 如果我这样做,output_shape = tf.shape(model.output)它给出了keras张量:
8 2023-08-31
编程技术问答社区
如何在 TensorFlow 概率中创建不同内核对象的总和?
我有一个有关在Tensorflow-probability中指定内核函数的问题. 通常,如果我想创建一个内核对象,我会写 import tensorflow as tf import tensorflow_probability as tfp tfp_kernels = tfp.positive_semidefinite_kernels kernel_obj = tfp_kernels.ExponentiateQuadratic(*args, **karwgs) 我知道内核对象支持批处理广播.但是,如果我想构建一个核对象,该对象是几个不同核对象的总和,例如加性高斯进程? 我不确定如何在TensorFlow中"汇总"内核对象.我能够做的是创建几个单独的内核对象K1, ... KJ似乎在线没有类似的问题. 感谢提前的帮助. 更新:我尝试了直接+,但是有一些奇怪的与协方差矩阵. 我组成了以下示例: feature1 = np.array([1,
2 2023-07-22
编程技术问答社区
多变量高斯分布 Tensorflow 概率的混合物
如标题中所述,我正在尝试使用TensorFlow概率软件包来创建多元正常分布的混合物. 在我的原始项目中,正在为神经网络输出的分类,LOC和差异的权重喂养.但是,当创建图表时,我会收到以下错误: 组件[0]批处理形状必须与猫形和其他组件批处理形状兼容 我使用占位符重新创建了相同的问题: import tensorflow as tf import tensorflow_probability as tfp # dist= tfp.distributions tf.compat.v1.disable_eager_execution() sess = tf.compat.v1.InteractiveSession() l1 = tf.compat.v1.placeholder(dtype=tf.float32, shape=[None, 2], name='observations_1') l2 = tf.compat.v1.placeholder(dtype=
10 2023-07-21
编程技术问答社区
Tensorflow概率论中的多项式模型规范
我正在使用TensorFlow概率中使用混合的多项式离散选择模型.该功能应在3个替代方案中输入选择.选择的替代方案由选择(#observationsx3张量)指定.以下是代码的更新,以反映我在问题上的进展(但问题仍然存在). 我当前会遇到错误: tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [6768,3] vs. [1,3,6768] [Op:Mul] 带有追溯提示该问题的 在cont to log_prob()的最终组成部分中,即log_prob()(即,tfp.intependent(tfp.multinorial(...)) 主要组件是(感谢Padarn Wilson帮助修复联合分销定义): @tf.function def affine(x, kernel_diag, bias=tf.zeros([])): """`kerne
10 2023-07-04
编程技术问答社区
Tensorflow 2.5.0-TypeError: 函数构建代码之外的操作被传递了一个 "图形 "张量
我正在培训我使用tfp.layers.Convolution3DFlipout层的卷积贝叶斯神经网络.我的损失功能如下: from tensorflow.keras.losses import binary_crossentropy def variational_free_energy_loss(model, scale_factor = tf.constant(1.)): kl = sum(model.losses) / scale_factor def loss(y_true, y_pred): bce = binary_crossentropy(y_true, y_pred) return bce + kl return loss 我遇到了这个错误: TypeError: An op outside of the function building code is being passed a "Gra
8 2023-06-20
编程技术问答社区
类型错误。一个函数构建代码之外的操作被传递给一个图形张量
我收到以下异常 TypeError: An op outside of the function building code is being passed a "Graph" tensor. It is possible to have Graph tensors leak out of the function building context by including a tf.init_scope in your function building code. For example, the following function will fail: @tf.function def has_init_scope(): my_constant = tf.constant(1.) with tf.init_scope(): added = my_constant * 2 The graph tensor has name: conv2d_fl
1608 2022-08-12
编程技术问答社区