我在新安装的Ubuntu 16.04 上,鉴于使用最新版本的Pandas进行开发,我使用虚拟环境安装了Python 3.6.0。
选择 3.6.0 的一个原因是因为我在某处读到这个版本的 Python 可以在本地处理虚拟环境,即无需安装任何其他东西 [无论如何安装 3.6.0 本身而不替换系统范围的 Python,这几乎可以肯定错了,我之前其实还得提供一个虚拟环境]。
我乐观地认为一切都会朝着正确的方向发展(包括我的知识),因此,不太关心以下之间的差异:pyenv、pyenv-virtualenv、pyvenv 等......所以我不太记得是什么我安装了,无论如何我只使用
aptandpip/pip3,试图在 virtualenv 可用后立即将其限制在
我松散地遵循了本教程,除了(可能)我没有为 virtualenvs ($ mkdir ~/.virtualenvs命令)创建目录。
现在我的用户被困在(general)环境中,我无法出去。
从一登录后启动,而不激活任何environement,庆典给了我一个提示修改,似乎我不能用通常的提示deactivate,source deactivate等等......
(general) $ deactivate
pyenv-virtualenv: deactivate must be sourced. Run 'source deactivate' instead of 'deactivate'
(general) $ source deactivate
pyenv-virtualenv: deactivate 3.6.0/envs/general
(general) $ pyvenv deactivate
pyenv: pyvenv: command not found
The `pyvenv` …Run Code Online (Sandbox Code Playgroud) 您好,我正在尝试在来自圆柱域的图像上使用 CNN ,所以我有兴趣以圆形(或循环)方式应用卷积层。我的意思是一个卷积层,它不是用零填充图像,而是环绕图像(或图像周围的内核)。
来自信号处理背景,我预计它已经涵盖:实际上,当在频域中执行计算(即通过 DFT)时,这种循环来自免费,而需要额外的努力(称为“零填充”)以避免循环模棱两可。
好吧:我了解到,由于内核大小通常非常小,因此在基域中可以更方便地进行计算。我想不出为什么这不可行的任何充分理由,所以我希望存在一些进行循环卷积的直接方法。
但是我没有发现这个函数的覆盖范围,无论是在 Keras 还是在 TensorFlow 文档中。此外,我发现很少或没有真正相关的讨论:Torch7 Discussion
所以我剩下以下选项:
CyclicConv2D通过继承 Keras 的layer.Layer类来实现我自己的层,如here所述有没有更直接的选择,或者我应该首先解决的信息来源?
否则,我在哪里可以找到如何实施前者的任何建议?
对于后者,我必须承认,我更多地描述它是为了激发一些集体思考如何从用户的角度实现它,但我真的觉得不能贡献一个好的拉取请求(即一个包括好的代码)。无论如何,我会很感激任何从哪里开始的建议。
我收到了一个 python 笔记本,其中充满了f"{expr=}"在我的环境中产生错误消息的表达式:
var=7
print(f"{var=}")
File "<fstring>", line 1
(var=)
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我怀疑/期望它实际上可能是 的新语法f"expr={expr}",即如以下打印语句所示:
print(f"var={var}")
var=7
Run Code Online (Sandbox Code Playgroud)
事实上,我经常使用后者这样的表达式进行调试,如果有一个它的简写就更好了。
那是比我的(3.7.6)更高版本的Python吗?还是fstring模块的定制?
在网络或 SE 中搜索它并没有什么成效。
如果它不是标准功能,我怎样才能让它工作?
在阅读了文档、问题并制作了我自己的测试代码后,我相信我已经理解了 ayield expression是如何工作的。
尽管如此,我对以下示例代码的行为感到惊讶:
def gen(n=0):
while True:
n = (yield n) or n+1
g=gen()
print( next(g) )
print( next(g) )
print( g.send(5) )
print( next(g) )
print( next(g) )
Run Code Online (Sandbox Code Playgroud)
我原以为它会返回 0, 1, 2, 5, 6,而它会产生:0, 1, 5, 6, 7。
即:我原以为会yield expression产生这些效果:
yield expression,并将其返回给调用者send()并将它们用作生成器函数代码接收的 yield 表达式的值next(g)或g.send()调用...和/或 Python 会注意避免 (1) 和 (2) 中的两个信息流之间的任何干扰,即保证它们是独立的,例如在元组分配中 a, b = f(a,b), g(a,b)
(我什至想知道在 (1) 和 (2) 之间进行暂停是否更好,但也许它会非常复杂,因为这意味着仅执行部分语句,其余部分保留用于下一份简历)
无论如何,操作的顺序是(2),然后(1),然后(3),因此(2)中的赋值发生在之前,并且可以影响(1)中的赋值。即g.send() …
python ×4
debugging ×1
f-string ×1
generator ×1
keras ×1
keras-layer ×1
pyenv ×1
ubuntu ×1
virtualenv ×1
yield ×1