tf.contrib模块

tf.contrib 模块是一个比较复杂的模块。

contrib细节:

tf.contrib.bayesflow.entropy  香农信息论

tf.contrib.bayesflow.monte_carlo Monte Carlo integration 蒙特卡洛积分

tf.contrib.bayesflow.stochastic_graph Stochastic Computation Graphs 随机计算图

tf.contrib.bayesflow.stochastic_tensor 随机张量

tf.contrib.bayesflow.variational_inference 变分推断

tf.contrib.crf CRF layer 条件随机场(conditional random field)

tf.contrib.ffmpeg  ffmeg编解码音频

tf.contrib.framework 参数范围、变量、检查点

tf.contrib.graph_editor 运行时修改计算图

tf.contrib.integrate.odeint ode解常微分方程

tf.contrib.layers   构建层、正则化、初始化、优化、Feature columns(数据与模型之间进行映射)

tf.contrib.learn    高级学习库

tf.contrib.linalg   线性代数(矩阵)

tf.contrib.losses 损失函数

tf.contrib.metrics度量标准

tf.contrib.distributions概率分布

tf.contrib.rnn     rnn相关

tf.contrib.seq2seq 基于rnn,实现编解码器

tf.contrib.staging.StagingArea 添加管线

tf.contrib.training  mini batch和组(bucket)

tf.contrib.util

tf.contrib.nn Sampling 裁剪 信息熵


tf.contrib.bayesflow.entropy.elbo_ratio(估计ELBO和KL散度中出现的比值)

elbo_ratio (
log_p ,
q ,
z = None ,
n = None ,
seed = None ,
form = None ,
name = 'elbo_ratio'

定义在 tensorflow/contrib/bayesflow/python/ops/entropy_impl.py

参见指南:贝叶斯熵(contrib)>操作

估计 ELBO 和 KL 散度中出现的比值

随着 p(z) := exp{log_p(z)} ,该操作返回一个近似值:

E_q [ Log [ p ( Z ) / q ( Z )]  ]

术语 E_q[ Log[p(Z)] ] 总是被计算为样本平均值。术语 E_q[ Log[q(Z)] ] 可以用样本计算,或者定义了 q.entropy() 的精确公式,可以使用精确的公式计算。这是由 kwarg 形式控制的。

该对数比出现在不同的上下文中:

KL[q || p]

如果 log_p(z) = Log[p(z)] 分配 p,该操作近似计算负的 Kullback-Leibler 散度。

elbo_ratio ( log_p , q , n = 100 ) =  - 1  * KL [ q | | p ] ,
KL [ q | | p ] = E [ Log [ q ( Z )] - Log [ p ( Z )] ]

请注意,如果 p 是一个 Distribution,那么 distributions.kl_divergence(q, p) 可能会被确定并作为确切可用的结果。

ELBO

如果 log_p (z) = log [p (z, x)] 是一个分布 p 的日志连接, 这是证据下限 (ELBO):

ELBO 〜= E[Log[ p(Z,X)] - Log[q(Z)]]
= Log[p(X)]-KL[q||p]
<= Log [p(x)]

用户提供 Tensor 样品 z ,或样品数量来绘制 n。

ARGS:
  • log_p:从可调用映射样本 q 到 Tensors 具有形状 broadcastable 到 q.batch_shape。例如,log_p “就像” q.log_prob 一样工作。
  • q:tf.contrib.distributions.Distribution。
  • z:Tensor 样品来自q,由 q.sample(n) 某些 n 生成。
  • n:整数 Tensor。如果 z 不提供则生成样本数。
  • seed:Python整数来生成随机数生成器。
  • form:ELBOForms.analytic_entropy(使用熵的公式q)或 ELBOForms.sample(熵的样本估计),或 ELBOForms.default(尝试分析熵,样本回退)。默认值为ELBOForms.default。
  • name:给这个操作起的名字。
返回:

标量张量持有样本平均 KL 散度。形状是 q 的批次形状, dtype 与 q 相同。

举:
  • ValueError:如果form没有被这个功能处理。

关于KL散度和ELBO


tf.contrib.bayesflow.entropy.entropy_shannon  计算Monte Carlo或Shannon熵的确定性

entropy_shannon (
p ,
z = None ,
n = None ,
seed = None ,
form = None ,
name = 'entropy_shannon'

定义在:tensorflow/contrib/bayesflow/python/ops/entropy_impl.py

参见指南:贝叶斯熵(contrib)>操作

蒙特卡罗或香农熵的确定性计算。

根据 kwarg form,该操作返回分布的分析熵 p 或采样熵:

- n ^ { - 1 } sum_ {i = 1 }^n p.log_prob( z_i ), where z_i 〜 p ,
\approx- E_p [Log[ p(Z)]]
=Entropy[p]

用户提供的任何一个样本 z 张量, 或一定数量的样本来绘制 n。

ARGS:
  • p: tf.contrib.distributions.Distribution
  • z:Tensor 样品来自 p,由 p.sample(n) 某些产生 n。
  • n:整数 Tensor。如果未提供 z, 则生成的样本数。
  • seed:Python 整数用来寻找随机数生成器。
  • form:要么 ELBOForms. analytic_entropy (使用公式熵的 q) 或 ELBOForms. sample (熵的抽样估计),或 ELBOForms. default (尝试分析熵, 在样本上返回)。默认值为 ELBOForms.default。
  • name:给该操作的一个名字。
返回:

与 p 相同的 dtype 的张量,并且形状等于 p. batch_shape。

举:
  • ValueError:如果 form 没有由这个函数处理。
  • ValueError:如果 form 是 ELBOForms. analytic_entropy 和 n 被提供。

tf.contrib.bayesflow.entropy.renyi_alpha

renyi_ratio (
log_p ,
q ,
alpha ,
z = None ,
n = None ,
seed = None ,
name = 'renyi_ratio'

定义在 tensorflow/contrib/bayesflow/python/ops/entropy_impl.py

参见指南:贝叶斯熵(contrib)>操作

使用 Monte Carlo 估计出现在 Renyi 分歧中的比率。

这可以用于计算 Renyi(alpha)分歧,或者基于 Renyi 分歧的日志痕迹近似值。

定义

用 z_i 独立同分布样品 q,和 exp{log_p(z)} = p(z),这操作返回查看(偏向有限个 n)估计:

(1 -alpha)^ { - 1 } Log[ n^{- 1} sum_ {i = 1 } ^ n ( p(z_i)/q(z_i))^ {1-alpha}
\approx(1-alpha)^ {- 1 } Log[ E_q [( p(Z)/q(Z))^ { 1 - alpha }]]

该比例出现在不同的上下文中:

Renyi 分歧

如果 log_p(z) = Log[p(z)] 是分配的日志概率,并且 alpha > 0,alpha != 1 ,那么该操作近似于 -1 倍仁义分歧:

# 选择合理的高 n 来限制偏移,见下文
renyi_ratio ( log_p , q ,alpha,n = 100 )
\approx - 1 * D_alpha [ q || p ] ,where
D_alpha [ q || p ] := (1 - alpha)^ {-1} Log E_q [(p(Z)/q(Z))^ { 1 - alpha} ]

Renyi(或 “alpha”)的分歧是非负数,并且当且仅当 q = p 时它等于零;alpha 的各种限制导致不同的特殊情况:

alpha D_alpha[q||p]
----- ---------------
-- > 0 Log[int_ {q >0} p(Z)dz]
= 0.5 , -2 Log[ 1- Hel^ 2[q||p]] ,(\propto squared Hellinger distance)
-- > 1 KL[q||p]
= 2 Log[1 + chi ^ 2[q||p]] ,(\propto squared Chi - 2 divergence )
-- > infty Log[max_z{q(z)/ p(z)}] ,(min description length principle)。
对数证据近似

如果 log_p (z) = log [p (z, x)] 是联合分布 p 的日志,这是在变分推理中常见的 ELBO 的一种替代方法。

L_alpha( q ,p )= Log[p(X)] - D_alpha[q||p]

如果 q 和 p 有同样的支持,并且 0 < a <= b < 1,则可以显示出 ELBO <= D_b <= D_a <= Log[p(x)]。因此,该操作允许 ELBO 和真实证据之间进行平滑的插值。

稳定性说明

请注意,当 1 - alpha 值不小的时候,比例 (p(z) / q(z))^{1 - alpha} 会受到下溢/溢出问题的影响。因此,它在集中后在对数空间中进行评估。尽管如此,infinite / NaN 的结果还是会出现。为此,人们可能希望 alpha 逐渐缩小,见操作 renyi_alpha;使用 float64 也将有所帮助。

有限样本量的偏差

由于对数的非线性,对于随机变量{X_1,...,X_n},有 E[ Log[sum_{i=1}^n X_i] ] != Log[ E[sum_{i=1}^n X_i] ]。结果,这个估计是有限偏移的 n。对于 alpha < 1 ,它是不减少的 n(预期中)。例如,如果 n = 1,此估计器产生与 elbo_ratio 相同的结果,并且当 n 增加的时候,估计的预期值也增加。

呼叫签名

用户提供 Tensor 样品 z 或 样品数量来绘制 n。

ARGS:
  • log_p:从可调用映射样本 q 到具有形状 broadcastable 的 Tensors 再到 q.batch_shape。例如,log_p “就像” q.log_prob 一样工作。
  • q:tf.contrib.distributions.Distribution;log_p 和 q 应在同一组中得到支持。
  • alpha:张量与形状 q. batch_shape 和的值不等于1。
  • z:来自 p 的样品张量,由 p.sample 从一些 n 生成。
  • n:整数张量;未提供 z 时要使用的样本数。请注意,这可能是高度偏移的小 n, 见字符串。
  • seed:随机数生成器的 Python 整数。
  • name:给该操作提供一个名字。
返回:
  • renyi_result:样本的缩放对数平均值。形状张量等于 q 的批次形状,并且 dtype= q.dtype。

renyi entropy(瑞丽熵)


tf.contrib.bayesflow.entropy.renyi_ratio   计算Renyi分歧

renyi_ratio (
log_p ,
q ,
alpha ,
z = None ,
n = None ,
seed = None ,
name = 'renyi_ratio'

定义在 tensorflow/contrib/bayesflow/python/ops/entropy_impl.py

参见指南:贝叶斯熵(contrib)>操作

使用 Monte Carlo 估计出现在 Renyi 分歧中的比率。

这可以用于计算 Renyi(alpha)分歧,或者基于 Renyi 分歧的日志痕迹近似值。

定义

用 z_i 独立同分布样品 q,和 exp{log_p(z)} = p(z),这操作返回查看(偏向有限个 n)估计:

(1 -alpha)^ { - 1 } Log[ n^{- 1} sum_ {i = 1 } ^ n ( p(z_i)/q(z_i))^ {1-alpha}
\approx(1-alpha)^ {- 1 } Log[ E_q [( p(Z)/q(Z))^ { 1 - alpha }]]

该比例出现在不同的上下文中:

Renyi 分歧

如果 log_p(z) = Log[p(z)] 是分配的日志概率,并且 alpha > 0,alpha != 1 ,那么该操作近似于 -1 倍仁义分歧:

# 选择合理的高 n 来限制偏移,见下文
renyi_ratio ( log_p , q ,alpha,n = 100 )
\approx - 1 * D_alpha [ q || p ] ,where
D_alpha [ q || p ] := (1 - alpha)^ {-1} Log E_q [(p(Z)/q(Z))^ { 1 - alpha} ]

Renyi(或 “alpha”)的分歧是非负数,并且当且仅当 q = p 时它等于零;alpha 的各种限制导致不同的特殊情况:

alpha D_alpha[q||p]
----- ---------------
-- > 0 Log[int_ {q >0} p(Z)dz]
= 0.5 , -2 Log[ 1- Hel^ 2[q||p]] ,(\propto squared Hellinger distance)
-- > 1 KL[q||p]
= 2 Log[1 + chi ^ 2[q||p]] ,(\propto squared Chi - 2 divergence )
-- > infty Log[max_z{q(z)/ p(z)}] ,(min description length principle)。
对数证据近似

如果 log_p (z) = log [p (z, x)] 是联合分布 p 的日志,这是在变分推理中常见的 ELBO 的一种替代方法。

L_alpha( q ,p )= Log[p(X)] - D_alpha[q||p]

如果 q 和 p 有同样的支持,并且 0 < a <= b < 1,则可以显示出 ELBO <= D_b <= D_a <= Log[p(x)]。因此,该操作允许 ELBO 和真实证据之间进行平滑的插值。

稳定性说明

请注意,当 1 - alpha 值不小的时候,比例 (p(z) / q(z))^{1 - alpha} 会受到下溢/溢出问题的影响。因此,它在集中后在对数空间中进行评估。尽管如此,infinite / NaN 的结果还是会出现。为此,人们可能希望 alpha 逐渐缩小,见操作 renyi_alpha;使用 float64 也将有所帮助。

有限样本量的偏差

由于对数的非线性,对于随机变量{X_1,...,X_n},有 E[ Log[sum_{i=1}^n X_i] ] != Log[ E[sum_{i=1}^n X_i] ]。结果,这个估计是有限偏移的 n。对于 alpha < 1 ,它是不减少的 n(预期中)。例如,如果 n = 1,此估计器产生与 elbo_ratio 相同的结果,并且当 n 增加的时候,估计的预期值也增加。

呼叫签名

用户提供 Tensor 样品 z 或 样品数量来绘制 n。

ARGS:
  • log_p:从可调用映射样本 q 到具有形状 broadcastable 的 Tensors 再到 q.batch_shape。例如,log_p “就像” q.log_prob 一样工作。
  • q:tf.contrib.distributions.Distribution;log_p 和 q 应在同一组中得到支持。
  • alpha:张量与形状 q. batch_shape 和的值不等于1。
  • z:来自 p 的样品张量,由 p.sample 从一些 n 生成。
  • n:整数张量;未提供 z 时要使用的样本数。请注意,这可能是高度偏移的小 n, 见字符串。
  • seed:随机数生成器的 Python 整数。
  • name:给该操作提供一个名字。
返回:
  • renyi_result:样本的缩放对数平均值。形状张量等于 q 的批次形状,并且 dtype= q.dtype。

tf.contrib.bayesflow.monte_carlo.expectation

expectation(
f ,
p ,
z = none,
n = none,
seed = none,
name = 'expectation'

定义在tensorflow/contrib/bayesflow/python/ops/monte_carlo_impl.py

参见指南:贝叶斯蒙特卡罗(contrib)>行动

蒙特卡罗估计的期望:E_p[f(Z)] 与样本具有均值。

该操作返回:

n ^ { - 1 } sum_ {i= 1 } ^ n f( z_i ),where z_i 〜 p
\approx E_p[f(Z)]
ARGS:
  • f:从 p 到张量的可调用映射样本。
  • p:tf.contrib.distributions.Distribution。
  • z:p 样品的张量,由 p.sample 为一些 n 生成。
  • n:整数张量。如果未提供z生成的样本数。
  • seed:Python整数来寻找随机数程序。
  • name:为该操作提供一个名字。
返回:

与一个 Tensor 具有相同 dtype 的 p,举例:

N_samples =  10000
distribute = tf.contrib.distributions
dist =distributions.Uniform([ 0.0,0.0 ] ,[1.0,2.0])
elementwise_mean = lambda x :x
mean_sum = lambda x : tf.reduce_sum(x ,1)
estimate_elementwise_mean_tf = monte_carlo.expectation( elementwise_mean ,
dist ,
n = N_samples )
estimate_mean_sum_tf = monte_carlo.expectation( mean_sum ,
dist ,
n = N_samples )
with tf.Session()as sess :
estimate_elementwise_mean , estimate_mean_sum = (
sess.run([estimate_elementwise_mean_tf ,estimate_mean_sum_tf]))
print estimate_elementwise_mean
>>> np.array([0.50018013 1.00097895 ] ,dtype=np. float32 )
print estimate_mean_sum
>>> 1.49571

tf.contrib.bayesflow.monte_carlo.expectation_importance_sampler  重要性抽样估计

expectation_importance_sampler (
f ,
log_p ,
sampling_dist_q ,
z = None ,
n = None ,
seed = None ,
name = 'expectation_importance_sampler'

定义在tensorflow/contrib/bayesflow/python/ops/monte_carlo_impl.py

参见指南:贝叶斯蒙特卡罗(contrib)>行动

蒙特卡罗估计 E_p[f(Z)] = E_q[f(Z) p(Z) / q(Z)]。

随着 p(z) := exp{log_p(z)},这Op返回

n ^ { - 1 } sum_ {i= 1 } ^ n[ F ( z_i ) p ( z_i ) / q ( z_i ) ] ,z_i 〜 q ,
\approx E_q [ F (Z) p (Z) / q (Z) ]
= E_p [ f ( Z )]

这个积分是通过最大减法在对数空间中完成的,以更好地处理 f(z) p(z) / q(z)可能承受的极端值。

如果 f >= 0,将 expectation_importance_sampler_logspace 应用的结果取幂,则效率高达2倍 Log[f]。

用户提供的任何一个样本 z 张量, 或样本数绘制 n

ARGS:
  • f:从可调用映射样本 sampling_dist_q 到具有形状 broadcastable 的 Tensors 到 q.batch_shape。例如,f “就像” q.log_prob 一样工作。
  • log_p:从可调用映射样本 sampling_dist_q 到具有形状 broadcastable 的 Tensors 到 q.batch_shape。例如,log_p “就像” sampling_dist_q.log_prob 一样工作。
  • sampling_dist_q:抽样分布。tf.contrib.distributions.Distribution。log_p 和 q 应在同一组中得到支持。
  • z:p 样品的张量,由 p.sample 为一些 n 生成。
  • n:整数张量。如果未提供z生成的样本数。
  • seed:Python整数来寻找随机数程序。
  • name:为该操作提供一个名字。
返回:

重要性抽样估计。形状张量等于 q 的批次形状,并且 dtype= q.dtype。


tf.contrib.bayesflow.monte_carlo.expectation_importance_sampler_logspace  对数空间的重要性抽样估计

expectation_importance_sampler_logspace (
log_f ,
log_p ,
sampling_dist_q ,
z = None ,
n = None ,
seed = None ,
name = 'expectation_importance_sampler_logspace'

定义在tensorflow/contrib/bayesflow/python/ops/monte_carlo_impl.py

参见指南:贝叶斯蒙特卡罗(contrib)>行动

在对数空间中具有正函数的重要性抽样。

随着 p(z) := exp{log_p(z)},而且 f(z) = exp{log_f(z)},该操作返回:

Log[ n ^ { - 1 } sum_ {i = 1 } ^ n [ F( z_i ) p( z_i )/q(z_i)]] ,z_i 〜 q ,
\approx Log[ E_q [ F ( Z ) p (Z ) / q ( Z ) ] ]
= Log[ E_p [ f ( Z )] ]

这个积分是通过最大减法在对数空间中完成的,以更好地处理 f(z) p(z) / q(z) 可能承受的极端值。

和 expectation_importance_sampler 相反,该操作将返回对数空间中的值。

用户提供的任何一个样本 z 张量, 或样本数绘制 n。

ARGS:
  • log_f:从可调用映射样本 sampling_dist_q 到具有形状 broadcastable 的 Tensors 到 q.batch_shape。例如,log_f “就像”  sampling_dist_q.log_prob一样工作。
  • log_p:从可调用映射样本 sampling_dist_q 到具有形状 broadcastable 的 Tensors 到 q.batch_shape。例如,log_p “就像” q.log_prob 一样工作。
  • sampling_dist_q:抽样分布。tf.contrib.distributions.Distribution。log_p 和 q 应在同一组中得到支持。
  • z:p 样品的张量,由 p.sample 为一些 n 生成。
  • n:整数张量。如果未提供z生成的样本数。
  • seed:Python整数来寻找随机数程序。
  • name:为该操作提供一个名字。
返回:

重要性抽样估计的对数。形状张量等于 q 的批次形状, 并且 dtype = q. dtype。


tf.contrib.bayesflow.stochastic_graph.surrogate_loss  随机图的代理损失

surrogate_loss (
sample_losses ,
stochastic_tensors = None ,
name = 'SurrogateLoss'

定义在:tensorflow/contrib/bayesflow/python/ops/stochastic_graph_impl.py

参考指南:BayesFlow随机图(contrib)>随机计算图形辅助函数

随机图的代理损失。

这个函数将调用 loss_fn 在每个 StochasticTensor 上游的 sample_losses,传递其影响的损失。

请注意,目前的 surrogate_loss 并不能与在 while_loops 或其他控制结构中实例化的 stochastictenUNK 一起工作。

ARGS:
  • sample_losses:最后损失的列表或元组。每一次损失应在批次 (可能每个样品) 的例子;那就是, 它应该有1或更大的维度。所有损失应具有相同的形状。
  • stochastic_tensors:StochasticTensor 用于添加损失条款的列表。如果没有, 则默认为 sample_losses 中张量的图上游所有的 StochasticTensors。
  • name:用于准备创建操作的名称。
返回:

张量损失,是 sample_losses 和 StochasticTensors 返回的 loss_fns 的总和。

注意:
  • TypeError:如果 sample_losses 不是列表或元组,并且它的元素不是张量。
  • ValueError:如果 sample_losses 的任何损失都没有维度1或更大。

tf.contrib.bayesflow.stochastic_tensor.BaseStochasticTensor  发出随机值的张量

tf.contrib.bayesflow.stochastic_tensor.BaseStochasticTensor 类

定义在:tensorflow/contrib/bayesflow/python/ops/stochastic_tensor_impl.py

参见指南:BayesFlow随机张量(contrib)>随机张量类

用于发出随机值的张量对象的基类。

属性

  • dtype
  • graph
  • name

方法

  • __init__

    __init__ ()
  • loss
    loss( sample_loss )

返回添加到代理损失中的术语。

这个方法被 surrogate_loss 调用。输入 sample_loss 应该已经应用了 stop_gradient。这是因为 surrogate_loss 通常提供了一个 Monte Carlo 样例术语 differentiable_surrogate * sample_loss,其中 sample_loss 被认为是常量,因为它的目的是梯度输入。

ARGS:
  • sample_loss:张量,在这个 StochasticTensor 的下游样本损失。
返回:

要么返回 None ,要么返回 Tensor。

value
value( name = None )






参考文献:https://www.w3cschool.cn/tensorflow_python/tensorflow_python-1i7f2c8z.html

tfboys——tensorflow模块学习(二)的更多相关文章

  1. tfboys——tensorflow模块学习(三)

    tf.estimator模块 定义在:tensorflow/python/estimator/estimator_lib.py 估算器(Estimator): 用于处理模型的高级工具. 主要模块 ex ...

  2. tfboys——tensorflow模块学习(一)

    Tensorflow的基本使用 TensorFlow 的特点: 使用图 (graph) 来表示计算任务. 在被称之为 会话 (Session) 的上下文 (context) 中执行图. 使用 tens ...

  3. tfboys——tensorflow模块学习(四)

    tensorflow功能函数 tf.abs 计算张量的绝对值 abs ( x , name = None ) 定义在:tensorflow/python/ops/math_ops.py. 参考指南:数 ...

  4. Python urllib和urllib2模块学习(二)

    一.urllib其它函数 前面介绍了 urllib 模块,以及它常用的 urlopen() 和 urlretrieve()函数的使用介绍.当然 urllib 还有一些其它很有用的辅助方法,比如对 ur ...

  5. Python3 学习第九弹: 模块学习二之文件管理模块

    os模块 提供访问操作系统的接口 1> name 获得当前操作系统 其中 'nt' 是 windows 'posix' 是 linux 2> environ 获得当前系统的环境变量的字典, ...

  6. python模块学习(二)

    configparser模块 软件常见文档格式如下: [DEFAULT]ServerAliveInterval = 45Compression = yesCompressionLevel = 9For ...

  7. gevent模块学习(二)

    2. Queue类,常用用于Greenlet之间的异步共享 q = gevent.queue.Queue(maxsize=None, items=None) -> Queue 说明: 创建一个指 ...

  8. nodejs的mysql模块学习(二)连接数据库

    nodejs连接mysql的方式有两种 官方建议的第一种是 let mysql = require('mysql'); let connection = mysql.createConnection( ...

  9. Python学习 :常用模块(二)

    常用模块(二) 四.os模块 os模块是与操作系统交互的一个接口,用于对操作系统进行调用 os.getcwd() # 提供当前工作目录 os.chdir() # 改变当前工作目录 os.curdir( ...

随机推荐

  1. Android - 返回上一个界面finish()方法

    返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...

  2. Atitit,通过pid获取进程文件路径 java php  c#.net版本大总结

    Atitit,通过pid获取进程文件路径 java php  c#.net版本大总结 1. 通过PID获取进程路径的几种方法2 1.1. GetModuleFileNameEx 想获得进程可执行文件的 ...

  3. python模块学习之six模块

    Six:Python 2和3兼容性库 Six提供了简单的实用程序,用于覆盖Python 2和Python 3之间的差异.它旨在支持在Python 2和3中都可以进行修改的代码库. 六个只包含一个Pyt ...

  4. unity3d 导入google play services插件工程

    最近在给unity工程尝试接入google play services插件,遇到了些问题,记录一下. 之前在做android插件的时候,都是自己创建一个android工程,把生成的.class文件打包 ...

  5. 第八章 springboot + mybatis + 多数据源3(使用切面AOP)

    引入 aop包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  6. is char signed or unsigned?

    工作这么多年,一直认为char是有符号的,而事实上gcc和vs默认也是有符号,但是c规范里实际并没有指明char是有符号还是无符号,所以char比较特殊, char signed char unsig ...

  7. Introdution to Spring Mobile

    1. In Eclipse, create a new Maven Project using the spring-mvc-jpa-archetype. 2. Add the spring-mobi ...

  8. zeppelin部署

    1.下载解压2.修改conf/zeppelin-env.sh,添加如下两行 export ZEPPELIN_PORT= export MASTER=spark://master:7077 3.启动 b ...

  9. php对gzip文件或者字符串解压实例参考

    要采集一个网站,目标站采用了gzip压缩传输网页,本来应该只要发送一个http头 Accept-Encoding: identity或者干脆不发送这个头等,就可以使目标站返回没有经过gzip压缩的页面 ...

  10. Eclipse 悬浮提示

    Eclipse 悬浮提示 使用悬浮提示 java 编辑器中包含了不同类型的悬浮提示,悬浮提示提供了鼠标指针指向元素的额外信息.所有java编辑器中相关的悬浮提示可以通过 preference(首选项) ...