说现在我有一个numpy数组,定义为,
[[1,2,3,4],
[2,3,NaN,5],
[NaN,5,2,3]]
Run Code Online (Sandbox Code Playgroud)
现在我想要一个包含缺失值的所有索引的列表,[(1,2),(2,0)]在这种情况下.
有什么方法可以做到吗?
我目前正在看theano的API,
theano.tensor.nnet.conv2d(input, filters, input_shape=None, filter_shape=None, border_mode='valid', subsample=(1, 1), filter_flip=True, image_shape=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)
在哪里filter_shape是一个元组(num_filter, num_channel, height, width),我对此感到困惑,因为在图像上滑动滤镜窗口时,不是由步幅决定的滤镜数量?我怎样才能像这样指定过滤器编号?如果它是由参数stride(如果有的话)计算的,那对我来说是合理的.
此外,我也对术语特征映射感到困惑,它是每层的神经元吗?批量大小怎么样?它们如何相关?
假设我有一个有一些浮点数('nan')的numpy数组,我现在不想归咎于那些数据,我想首先将这些数据归一化并将NaN数据保留在原始空间,我有什么方法可以做那?
以前我使用过normalize函数sklearn.Preprocessing,但是这个函数似乎不能将任何包含NaN的数组作为输入.
我有一个应用程序,其中不同的用户可以连接到不同的数据库(可以是 MySQL 或 Postgres),跨不同数据库缓存这些连接的最佳方法是什么?我看到了一些连接池,但似乎它们更适用于一个数据库多个连接而不是多个数据库多个连接。
PS:为了添加更多上下文,我正在设计一个多租户架构,其中每个租户连接到一个或多个数据库,我可以选择使用map[string]*sql.DB其中的键是数据库的 url,但是当我们有很多数据库的数量。或者我们应该为每个传入请求设置一个分片层,由连接 url 分片,这样每台机器都将包含正确数量的数据库连接map[string]*sql.DB?
我想要构建的软件示例是https://www.sigmacomputing.com/,用户可以在其中连接到多个数据库以处理不同的表。
我想在numpy中实现以下问题,这是我的代码.
我用一个for循环尝试了以下numpy代码来解决这个问题.我想知道是否有更有效的方法进行此计算?我真的很感激!
k, d = X.shape
m = Y.shape[0]
c1 = 2.0*sigma**2
c2 = 0.5*np.log(np.pi*c1)
c3 = np.log(1.0/k)
L_B = np.zeros((m,))
for i in xrange(m):
if i % 100 == 0:
print i
L_B[i] = np.log(np.sum(np.exp(np.sum(-np.divide(
np.power(X-Y[i,:],2), c1)-c2,1)+c3)))
print np.mean(L_B)
Run Code Online (Sandbox Code Playgroud)
我想np.expand_dims(X, 2).repeat(Y.shape[0], 2)-Y通过创建一个3D张量因此可以通过广播完成以下计算,但是当m它很大时会浪费大量内存.
我也相信np.einsum()除了for循环之外什么也没用,所以可能效率不高,如果我错了,请纠正我.
任何想法?
由于我看到人们在某个平台上争论说LSTMKeras不支持动态句子长度,我编写了以下代码.
embedding_size = 100
model = Sequential()
model.add(LSTM(32, return_sequences=True, input_shape=(None, embedding_size)))
Run Code Online (Sandbox Code Playgroud)
并且它给出了两个输入val1和val2我馈送(这些输入的形状batch_size * sentence length * embedding size),
val1 = np.random.random((5,20,embedding_size))
val2 = np.random.random((5,10,embedding_size))
input = model.input
output = model.output
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
k1 = sess.run(output, feed_dict={input:val1})
k2 = sess.run(output, feed_dict={input:val2})
print k1.shape
print k2.shape
Run Code Online (Sandbox Code Playgroud)
我有以下输出,满足了我的期望,LSTM在Keras是输入长度的动态,如果我们设定的input_shape是(None, embedding_size),我在理解对吗?
(5,20,32)
(5,10,32)
machine-learning neural-network deep-learning keras tensorflow
我编写的以下代码失败 self.optimizer.compute_gradients(self.output,all_variables)
import tensorflow as tf
import tensorlayer as tl
from tensorflow.python.framework import ops
import numpy as np
class Network1():
def __init__(self):
ops.reset_default_graph()
tl.layers.clear_layers_name()
self.sess = tf.Session()
self.optimizer = tf.train.AdamOptimizer(learning_rate=0.1)
self.input_x = tf.placeholder(tf.float32, shape=[None, 784],name="input")
input_layer = tl.layers.InputLayer(self.input_x)
relu1 = tl.layers.DenseLayer(input_layer, n_units=800, act = tf.nn.relu, name="relu1")
relu2 = tl.layers.DenseLayer(relu1, n_units=500, act = tf.nn.relu, name="relu2")
self.output = relu2.all_layers[-1]
all_variables = relu2.all_layers
self.gradient = self.optimizer.compute_gradients(self.output,all_variables)
init_op = tf.initialize_all_variables()
self.sess.run(init_op)
Run Code Online (Sandbox Code Playgroud)
带着警告,
TypeError:参数不是tf。变量:Tensor(“ relu1 / Relu:0”,shape =(?, 800),dtype = float32)
但是,当我将该行更改为时tf.gradients(self.output,all_variables),代码工作正常,至少没有报告警告。我想念哪里,因为我认为这两种方法实际上是在执行同一件事,所以返回的是(梯度,变量)对的列表。
这是我的命令的输出nvidia-smi,我想解析它的输出并杀死在 GPU 上运行的所有 python 进程。我已经知道如何使用我编写的以下脚本杀死所有 python 进程。
kall () {
pgrep $1 | xargs kill -9
}
Run Code Online (Sandbox Code Playgroud)
现在我想杀死所有使用 GPU 的进程(获取 PID 号),所以我想解析 nvidia-smi 输出。
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.27 Driver Version: 367.27 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1070 Off | 0000:01:00.0 On | N/A |
| 0% 46C P2 40W / 166W | 4902MiB / …Run Code Online (Sandbox Code Playgroud) 如果给定一个a形状(5,3)和索引数组b形状的矩阵(5,),我们可以很容易地得到相应的矢量c,
c = a[np.arange(5), b]
但是,我不能用tensorflow做同样的事情,
a = tf.placeholder(tf.float32, shape=(5, 3))
b = tf.placeholder(tf.int32, [5,])
# this line throws error
c = a[tf.range(5), b]
Run Code Online (Sandbox Code Playgroud)
回溯(最近一次调用最后一次):文件"",第1行,文件"〜/ anaconda2/lib/python2.7/site-packages/tensorflow/python/ops/array_ops.py",第513行,在_SliceHelper name =名称)
文件"〜/ anaconda2/lib/python2.7/site-packages/tensorflow/python/ops/array_ops.py",第671行,strided_slice中的shrink_axis_mask = shrink_axis_mask)文件"〜/ anaconda2/lib/python2.7/site- packages/tensorflow/python/ops/gen_array_ops.py",第3688行,strided_slice shrink_axis_mask = shrink_axis_mask,name = name)文件"〜/ anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library. py",第763行,在apply_op中op_def = op_def)文件"〜/ anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/ops.py",第2397行,在create_op中set_shapes_for_outputs(ret)文件" 〜/ anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/ops.py",第1757行,in set_shapes_for_outputs shapes = shape_func(op)文件"〜/ anaconda2/lib/python2.7/site- packages/tensorflow/python/framework/ops.py",第1707行,在call_with_requiring中返回call_cpp_shape_fn(op,require_shape_fn = True)文件"〜/ anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes .py",第610行,在call_cpp_中 shape_fn debug_python_shape_fn,require_shape_fn)文件"〜/ anaconda2/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes.py",第675行,在_call_cpp_shape_fn_impl中引发ValueError(err.message)ValueError:Shape必须是rank 1,但是'strided_slice_14'(op:'StridedSlice')的排名为2,输入形状为:[5,3],[2,5],[2,5],[2].
我的问题是,如果我不能使用上述方法在numpy中产生tensorflow的预期结果,我该怎么办?
我知道 Polars 不支持设计索引,所以df.filter(expr).index不是一个选项,我能想到的另一种方法是在应用任何过滤器之前添加一个新列,不确定这是否是在 Polars 中这样做的最佳方法
df.with_column(pl.Series('index', range(len(df))).filter(expr).index
Run Code Online (Sandbox Code Playgroud) python ×6
numpy ×4
tensorflow ×3
scipy ×2
bash ×1
caching ×1
convolution ×1
data-science ×1
dataframe ×1
go ×1
keras ×1
postgresql ×1
python-2.7 ×1
scikit-learn ×1
sql ×1
theano ×1