我不确定为什么会这样,但我不能在我的MAC OS X El Capitan中更新brew.我做了:
brew update
得到了:
warning: unable to unlink CONTRIBUTING.md: Permission denied
warning: unable to unlink SUPPORTERS.md: Permission denied
fatal: cannot create directory at '.github': Permission denied
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我放弃了上述命令,但还有其他问题:
sudo brew update
Password:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- mach (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/extend/pathname.rb:2:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/global.rb:3:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/brew.rb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)
现在每当我做brew安装时,我得到:
brew update
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- …Run Code Online (Sandbox Code Playgroud) 我有兴趣在go中创建"未导出(私有)函数"的单元测试.然而,它基本上很难在测试包中形成单元测试,因为我必须使它们"公开".最终,它们打破了他们私密性的全部意义.关键是这些辅助函数有助于模块化,现在它们是模块化的,能够为它们创建单元测试而不会让除了测试包之外的所有人都可以使用它们会很好,很好它们不是应该被访问的函数或者除测试套件或实际包装本身之外的任何人使用.
有什么建议?是否可以只导出到自己的包和一个额外的包或类似的东西?
我正在阅读一些代码并说几种不同的方式来传递频道.也许他们是一样的,但我想知道是否有任何差异,因为我在网上找不到文件:
1)
func serve(ch <-chan interface{}){ //do stuff }
Run Code Online (Sandbox Code Playgroud)
2)
func serve(ch chan<- interface{}){ //do stuff }
Run Code Online (Sandbox Code Playgroud)
3)
func serve(ch chan interface{}){ //do stuff }
Run Code Online (Sandbox Code Playgroud)
4)
func server(ch *chan interface{}){ //do stuff}
Run Code Online (Sandbox Code Playgroud)
我想知道它们之间有什么区别,如果它们只是等同的方式来做同样的事情:在不同的goroutines周围传递一个通道.
注意:我知道没有理由将指针传递给chan,map或slice或函数值,因为这些都是内部包含指针的引用类型(如果您希望被调用者更改,则会出现异常引用类型标题).我提供它的唯一原因是为了完整性(即真正提供可以尝试将通道作为参数传递的每种方式,并且有希望地提出问题,引用所有方法来进行此操作并对它们进行比较).
我试图将当前代码与 A100 GPU 一起使用,但出现此错误:
---> backend='nccl'
/home/miranda9/miniconda3/envs/metalearningpy1.7.1c10.2/lib/python3.8/site-packages/torch/cuda/__init__.py:104: UserWarning:
A100-SXM4-40GB with CUDA capability sm_80 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37.
If you want to use the A100-SXM4-40GB GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/
Run Code Online (Sandbox Code Playgroud)
这相当令人困惑,因为它指向通常的 pytorch 安装,但没有告诉我将 pytorch 版本 + cuda 版本的哪种组合用于我的特定硬件(A100)。为 A100 安装 pytorch 的正确方法是什么?
这些是我尝试过的一些版本:
# conda install -y pytorch==1.8.0 torchvision cudatoolkit=10.2 -c pytorch
# conda install -y pytorch torchvision cudatoolkit=10.2 …Run Code Online (Sandbox Code Playgroud) 我通过 pytorch import 收到此错误python -c "import torch":
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/afs/cs.stanford.edu/u/brando9/ultimate-utils/ultimate-utils-proj-src/uutils/__init__.py", line 13, in <module>
import torch
File "/dfs/scratch0/brando9/miniconda/envs/metalearning_gpu/lib/python3.9/site-packages/torch/__init__.py", line 191, in <module>
_load_global_deps()
File "/dfs/scratch0/brando9/miniconda/envs/metalearning_gpu/lib/python3.9/site-packages/torch/__init__.py", line 153, in _load_global_deps
ctypes.CDLL(lib_path, mode=ctypes.RTLD_GLOBAL)
File "/dfs/scratch0/brando9/miniconda/envs/metalearning_gpu/lib/python3.9/ctypes/__init__.py", line 382, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /dfs/scratch0/brando9/miniconda/envs/metalearning_gpu/lib/python3.9/site-packages/torch/lib/../../nvidia/cublas/lib/libcublas.so.11: symbol cublasLtHSHMatmulAlgoInit, version libcublasLt.so.11 not defined in file libcublasLt.so.11 with link time reference
Run Code Online (Sandbox Code Playgroud)
如何解决它?
有关的:
我试图做一个简单的事情,用火炬训练带有随机梯度下降(SGD)的线性模型:
import numpy as np
import torch
from torch.autograd import Variable
import pdb
def get_batch2(X,Y,M,dtype):
X,Y = X.data.numpy(), Y.data.numpy()
N = len(Y)
valid_indices = np.array( range(N) )
batch_indices = np.random.choice(valid_indices,size=M,replace=False)
batch_xs = torch.FloatTensor(X[batch_indices,:]).type(dtype)
batch_ys = torch.FloatTensor(Y[batch_indices]).type(dtype)
return Variable(batch_xs, requires_grad=False), Variable(batch_ys, requires_grad=False)
def poly_kernel_matrix( x,D ):
N = len(x)
Kern = np.zeros( (N,D+1) )
for n in range(N):
for d in range(D+1):
Kern[n,d] = x[n]**d;
return Kern
## data params
N=5 # data set size
Degree=4 # number dimensions/features
D_sgd = …Run Code Online (Sandbox Code Playgroud) 假设我有一个任意的 Coq术语(使用s-expressions / sexp的AST格式),例如:
n = n + n
我想自动将其转换为:
= n + n n
通过遍历AST树(由于sexp,它是列表的嵌套列表)。Python中是否有可以执行此操作的标准库?
现在,如果我要写下要执行的算法/伪代码(假设我可以将sexp转换为某些实际的树对象):
def ToPolish():
'''
"postfix" tree traversal
'''
text = ''
for node in root.children:
if node is atoms:
text := text + node.text
else:
text := text + ToPolish(node,text)
return text
Run Code Online (Sandbox Code Playgroud)
我认为这很接近,但我认为某处存在一个小错误...
AST示例:
(ObjList
((CoqGoal
((fg_goals
(((name 4)
(ty
(App
(Ind
(((Mutind (MPfile (DirPath ((Id Logic) (Id Init) (Id Coq))))
(DirPath ()) (Id eq))
0)
(Instance ())))
((Ind
(((Mutind (MPfile (DirPath ((Id …Run Code Online (Sandbox Code Playgroud) 我试图在R中的以下代码中匹配正交多项式:
X <- cbind(1, poly(x = x, degree = 9))
Run Code Online (Sandbox Code Playgroud)
但是在python中.
为此,我实现了自己的方法来给出正交多项式:
def get_hermite_poly(x,degree):
#scipy.special.hermite()
N, = x.shape
##
X = np.zeros( (N,degree+1) )
for n in range(N):
for deg in range(degree+1):
X[n,deg] = hermite( n=deg, z=float(x[deg]) )
return X
Run Code Online (Sandbox Code Playgroud)
虽然它似乎不匹配它.有人知道它使用的正交多项式的类型吗?我尝试在文档中搜索但没有说.
为了给出一些上下文,我试图在python中实现以下R代码(https://stats.stackexchange.com/questions/313265/issue-with-convergence-with-sgd-with-function-approximation-using-polynomial- lin/315185#comment602020_315185):
set.seed(1234)
N <- 10
x <- seq(from = 0, to = 1, length = N)
mu <- sin(2 * pi * x * 4)
y <- mu
plot(x,y)
X <- cbind(1, poly(x = x, degree …Run Code Online (Sandbox Code Playgroud) 我正在使用SLURM来使用一些计算集群,它有-ntasks或者-n.我显然已经阅读了它的文档(http://slurm.schedmd.com/sbatch.html):
sbatch不启动任务,它请求分配资源并提交批处理脚本.此选项建议Slurm控制器在分配中运行的作业步骤将启动最多数量的任务并提供足够的资源.默认值是每个节点一个任务,但请注意--cpus-per-task选项将更改此默认值.
具体部分我不明白它的含义是:
在分配内运行将启动最多数量的任务并提供足够的资源.
我有几个问题:
sbatch my_batch_job.sh.不确定任务意味着什么.-n, --ntasks=<number>.但是,我明明测试了它的集群中,跑了echo hello有--ntask=9和我预期的sbatch将回声你好9次到stdout(被收集在slurm-job_id.out,但让我惊讶的是,那里是我的回声你好脚本的单次执行那么,什么是这个甚至命令呢?似乎它什么也没做,或者至少我看不到假设要做什么.我知道-a, --array=<indexes>多个工作的选项存在.这是一个不同的主题.我只是想知道--ntasks想要做什么,理想情况下是一个例子,以便我可以在集群中测试它.
假设我可以在一台机器上访问多个GPU(为了争论,假设8GPU,每台机器的最大内存为8GB,每台机器有一定数量的RAM和磁盘).我想在一个单独的脚本和一台机器中运行一个程序来评估TensorFlow中的多个模型(比如50或200),每个模型都有不同的超参数设置(比如,步长,衰减率,批量大小,时期/迭代等).在训练结束时假设我们只是记录它的准确性并摆脱模型(如果你想假设模型经常检查指向,那么它可以扔掉模型并从头开始训练.你也可以假设某些其他数据可能被记录,如特定的超级参数,列车,验证,列车错误被记录为我们训练等).
目前我有一个(伪)脚本,如下所示:
def train_multiple_modles_in_one_script_with_gpu(arg):
'''
trains multiple NN models in one session using GPUs correctly.
arg = some obj/struct with the params for trianing each of the models.
'''
#### try mutliple models
for mdl_id in range(100):
#### define/create graph
graph = tf.Graph()
with graph.as_default():
### get mdl
x = tf.placeholder(float_type, get_x_shape(arg), name='x-input')
y_ = tf.placeholder(float_type, get_y_shape(arg))
y = get_mdl(arg,x)
### get loss and accuracy
loss, accuracy = get_accuracy_loss(arg,x,y,y_)
### get optimizer variables
opt = get_optimizer(arg)
train_step = …Run Code Online (Sandbox Code Playgroud)