我已经google了一下,没有找到任何好的答案.
问题是,我有一个2d numpy数组,我想在随机位置替换它的一些值.
我找到了一些使用numpy.random.choice为数组创建掩码的答案.不幸的是,这不会在原始数组上创建视图,因此我无法替换其值.
所以这是我想做的一个例子.
想象一下,我有2d数组的浮点值.
[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.]]
Run Code Online (Sandbox Code Playgroud)
然后我想替换任意数量的元素.如果我可以用参数调整将要替换多少元素,那将是很好的.可能的结果可能如下所示:
[[ 3.234, 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 2.234]]
Run Code Online (Sandbox Code Playgroud)
我无法想到实现这一目标的好方法.感谢帮助.
编辑
感谢所有快速回复.
我正在拼命地理解theano.scan函数中的taps参数.不幸的是,我无法提出具体问题.
我只是不明白"水龙头"机制.好吧,我还好.我知道序列传递给函数的顺序,但我不知道其含义.例如(我从另一个问题Python借用了这段代码- Theano scan()函数):
import numpy as np
import theano
import theano.tensor as T
def addf(a1,a2):
print(a1)
print(a2)
return a1+a2
i = T.iscalar('i')
x0 = T.ivector('x0')
step= T.iscalar('step')
results, updates = theano.scan(fn=addf,
outputs_info=[dict(initial=x0, taps=[-3])],
non_sequences=step,
n_steps=i)
f=theano.function([x0, step,i],results)
input = [2, 3]
print(f(input, 2, 20))
Run Code Online (Sandbox Code Playgroud)
将水龙头设置为-1确实对我有意义.据我所知,它与设置抽头值相同,整个矢量'x0'被传递给addf函数.然后将x0添加"step"参数(int 2将被广播为相同的大小).在下一次迭代中,结果[4,5]将是输入,依此类推,产生以下输出:
[[ 4 5]
[ 6 7]
[ 8 9]
[10 11]
[12 13]
[14 15]
[16 17]
[18 19]
[20 21]
[22 23]
[24 25]
[26 27]
[28 29] …Run Code Online (Sandbox Code Playgroud) 我正在通过学习你的haskell教程,我一直在嘲笑作者给出的一些例子.
例如,他重新实现zip如下:
zip' :: [a] -> [b] -> [(a,b)]
zip' _ [] = []
zip' [] _ = []
zip' (x:xs) (y:ys) = (x,y):zip' xs ys
Run Code Online (Sandbox Code Playgroud)
他对所有其他例子采用了类似的方法,他将最具体的模式放在第一位.这是一个略有不同的zip函数版本:
zip' :: [a] -> [b] -> [(a,b)]
zip' (x:xs) (y:ys) = (x, y):zip' xs ys
zip' _ _ = []
Run Code Online (Sandbox Code Playgroud)
据我所知,两种方法都做同样的事情.如果提供空列表(x:xs)或(y:ys)将不匹配,将通过附加空列表[]来完成递归.
亲切的问候,
编辑:
可能重复: Haskell GHC:模式与N个构造函数匹配的时间复杂度是多少?
简介:模式的顺序对于语义(在严格评估参数方面)和函数的可读性非常重要.模式匹配本身将始终处于O(1)时间复杂度.
我偶然发现了mse在 Keras 中的定义,我似乎找不到解释。
def mean_squared_error(y_true, y_pred):
return K.mean(K.square(y_pred - y_true), axis=-1)
Run Code Online (Sandbox Code Playgroud)
我期待跨批次的平均值,即axis=0,但相反,它是axis=-1。
我还稍微玩了一下,看看它的K.mean行为是否真的像numpy.mean. 我一定是误会了什么。有人可以澄清一下吗?
我实际上无法在运行时查看成本函数内部,对吗?据我所知,该函数是在编译时调用的,这会阻止我评估具体值。
我的意思是......想象一下进行回归并有一个输出神经元并以 10 的批量大小进行训练。
>>> import numpy as np
>>> a = np.ones((10, 1))
>>> a
array([[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.]])
>>> np.mean(a, axis=-1)
array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
Run Code Online (Sandbox Code Playgroud)
它所做的只是压平数组,而不是取所有预测的平均值。
我正在尝试运行Spark示例,但我只是不了解发生了什么。我用了
MASTER=spark://Illidan:7077 ./bin/run-example SparkPi 10
Run Code Online (Sandbox Code Playgroud)
确实启动了该过程,但是我得到的只是INFO消息。
那么“ 10”的作用是什么?
可以关闭INFO消息吗?
输出在哪里?计算得出的Pi在哪里?
我可以从外壳启动示例吗?我是否必须从spark壳启动才能查看打印件,还是将其保存在我不知道的文件中?
我向上帝发誓,我已经浏览了一百次文档。我需要一些帮助。
Hier是我的终端输出的一小段。提前致谢。:D
14/12/31 00:02:25 INFO storage.BlockManagerInfo: Added broadcast_0_piece0 in memory on 192.168.2.5:44913 (size: 1295.0 B, free: 267.3 MB)
14/12/31 00:02:26 INFO scheduler.TaskSetManager: Finished task 1.0 in stage 0.0 (TID 1) in 25231 ms on 192.168.2.7 (8/10)
14/12/31 00:02:26 INFO scheduler.TaskSetManager: Finished task 0.0 in stage 0.0 (TID 0) in 25358 ms on 192.168.2.5 (9/10)
14/12/31 00:02:26 INFO storage.BlockManagerInfo: Added broadcast_0_piece0 in memory on 192.168.2.4:36505 (size: 1295.0 B, …Run Code Online (Sandbox Code Playgroud) 假设我有这样的范围:
x = range(10)
Run Code Online (Sandbox Code Playgroud)
它将具有以下值作为列表:
list(x) # Prints [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
我想改变这个范围(可能多次)并迭代结果,例如
# [7, 8, 9, 0, 1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
创建等效列表不是问题.但我想知道是否有可能创建这样的东西作为一个范围来节省内存中的一些空间,当然如果解决方案可以达到如下性能,那将是很好的:
for i in range(1000000)
Run Code Online (Sandbox Code Playgroud) 我想知道dropout是如何工作的,所以我进入了layers.core模块并将dropout调用从in_train_phase更改为in_test_phase.
我不确定我的更改是否对狡猾的辍学行为负责,所以请耐心等待.
现在将这些更改记在下面的代码片段中:
from keras.models import Model
from keras.layers import Dropout, Input
import numpy as np
import tensorflow as tf
from keras import initializers
x=np.ones((2,2,4))
# x[:,1,:] = 1
print(x)
from keras.layers import Dense
input = Input(name='atom_inputs', shape=(2, 4))
x1 = Dense(4, activation='linear',
kernel_initializer=initializers.Ones(),
bias_initializer='zeros')(input)
x1 = Dropout(0.5, noise_shape=(tf.shape(input)[0], 1, 4))(x1)
fmodel = Model(input, x1)
fmodel.compile(optimizer='sgd', loss='mse')
print(fmodel.predict(x))
Run Code Online (Sandbox Code Playgroud)
将根据辍学率产生不同的预测.
例如:
Dropout(0.2)
[[[5. 5. 5. 5.]
[5. 5. 5. 5.]]
[[5. 0. 5. 0.]
[5. 0. 5. 0.]]]
Dropout(0.5)
[[[0. 0. …Run Code Online (Sandbox Code Playgroud) 我正在尝试手动编译张量流以利用 avx。不幸的是,我似乎专门忽略了这些说明。我可能会补充一点,我正在 Windows 10 上工作。任何帮助将不胜感激。谢谢。
我对 bazel 使用了以下命令:
bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both -k //tensorflow/tools/pip_package:build_pip_package
Run Code Online (Sandbox Code Playgroud)
python ×5
keras ×2
tensorflow ×2
apache-spark ×1
bazel ×1
compilation ×1
haskell ×1
loops ×1
numpy ×1
python-3.x ×1
random ×1
range ×1
theano ×1
windows ×1