在 Pycharm 中,有一个“代码结构”侧栏,它提供了一个树来浏览代码,但是,它仅在代码具有类、方法和对象时才有用。如果代码中没有任何内容,那么它就没用了。我的问题是:有什么方法可以指定这是一个块,并且我希望能够折叠它并展开它?与 Jupyter 类似,代码本质上被划分为单元格。
目前,我正在这样做:
# ---------------------------------- chunck x blah blah -----------------------
Run Code Online (Sandbox Code Playgroud)
编辑:大多数评论说我很愚蠢,我不知道如何有效地编码,我应该使用函数和类。伙计们,我知道如何使用它们,这不是我的问题。谢谢。
我正在尝试从 pathlib 继承 Path,但在实例化时出现以下错误而失败
from pathlib import Path
class Pl(Path):
def __init__(self, *pathsegments: str):
super().__init__(*pathsegments)
Run Code Online (Sandbox Code Playgroud)
实例化时出错
AttributeError: type object 'Pl' has no attribute '_flavour'
Run Code Online (Sandbox Code Playgroud)
更新:我继承WindowsPath仍然不起作用。
TypeError: object.__init__() takes exactly one argument (the instance to initialize)
如上。我试过那些无济于事:
tf.random.shuffle( (a,b) )
tf.random.shuffle( zip(a,b) )
Run Code Online (Sandbox Code Playgroud)
我曾经连接它们并进行改组,然后取消连接/解包。但是现在我处于 (a) 是 4D 秩张量而 (b) 是 1D 的情况,因此,无法连接。
我还尝试将种子参数提供给 shuffle 方法,以便它重现相同的洗牌,我使用它两次 => 失败。还尝试用随机洗牌的数字范围自己进行洗牌,但 TF 在花式索引方面不如 numpy 灵活,而且东西 ==> 失败了。
我现在正在做的是,将所有内容转换回 numpy,然后使用 sklearn 中的 shuffle,然后通过重铸返回张量。这完全是愚蠢的方式。这应该发生在图表内。
python-onedrive 来自python-onedrive 的作者警告说,他的库已被微软官方库获取和废弃,并引用了其 git repo sdk
令我困惑的是,归档过时的库仍在维护,而官方存储库自 6 年前就已死亡。这是怎么回事?
谢谢。
我想调整图像大小。我的图像包含特定值 [0, 1, 2, 7, 9]。调整大小后,会引入新值,例如 5 等。我想阻止这种情况发生。
我目前正在使用scikit图像调整大小功能。我已经尝试了所有插值标志但无济于事。
编辑:一个简单的代码来显示问题
import numpy as np
from skimage.transform import resize
vals = [0, 1, 4, 6]
N, M = 100, 100
image = np.random.choice(vals, N * M).reshape(N, M).astype('uint8')
resized_image = resize(image, (50, 50), preserve_range=True).astype('uint8')
print('vals before resizing ', np.unique(image))
print('vals after resizing ', np.unique(resized_image))
Run Code Online (Sandbox Code Playgroud) 当在 Pycharm 中使用控制台运行文件时,我在控制台顶部看到 Pycharm 只是在控制台中执行了此命令:
runfile('C:/Users/Alex/code/proj1/asset_management.py', wdir='C:/Users/Alex/code')
Run Code Online (Sandbox Code Playgroud)
然而,我觉得runfile很奇怪,似乎是 Pycharm 控制台所独有的。有关于此的更多信息吗?
顺便说一句,我发现它比 Vscode 更强大,它的规则文件如下
& C:/Users/Alex/.conda/envs/ve/python.exe c:/Users/Alex/code/proj1/asset_management.py
Run Code Online (Sandbox Code Playgroud)
不指定工作目录会导致相对导入错误。因此,我希望能够访问runfilePycharm 以外的其他 IDE。
我已经阅读了以下答案:
import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.2
set_session(tf.Session(config=config))
Run Code Online (Sandbox Code Playgroud)
但这不起作用。keras 和 TF 似乎都有太多更新,以至于 2017 年编写的几乎所有内容都不起作用!那么,如何限制内存使用呢?
这一层是静态的,它是一个伪函数。在前向传播中,它不做任何事情(身份函数)。然而,在反向传播中,它将梯度乘以 -1。github 上有很多实现,但它们不适用于 TF 2.0。
这里有一份供参考。
import tensorflow as tf
from tensorflow.python.framework import ops
class FlipGradientBuilder(object):
def __init__(self):
self.num_calls = 0
def __call__(self, x, l=1.0):
grad_name = "FlipGradient%d" % self.num_calls
@ops.RegisterGradient(grad_name)
def _flip_gradients(op, grad):
return [tf.negative(grad) * l]
g = tf.get_default_graph()
with g.gradient_override_map({"Identity": grad_name}):
y = tf.identity(x)
self.num_calls += 1
return y
flip_gradient = FlipGradientBuilder()
Run Code Online (Sandbox Code Playgroud) 我有一个功能,说:
def func(arg1, arg2=5):
blah blah
Run Code Online (Sandbox Code Playgroud)
不幸的是,我正在使用的库要求将输入作为类的实例,所以我不能仅仅将自定义函数传递给上面。
我需要一个class wrapper环绕它,以便传递:
MyClass(arg2=4)结果是上面显示的函数,可以将第二个参数设置为4来执行该函数。
我怎样才能做到这一点?
我的尝试: lambda x: func(x, arg2=4)
但是,这不是类的实例。我想模仿该库,其中的函数是类的实例。