我已经将一个预训练模型保存为ckpt文件(元,索引...),并且正在使用tf.train.import_meta_graph()
和加载图形tf.train.Saver.restore()
。我也有来自的resnet50模型tf.keras.applications
。我需要将resnet模型的输出提供给从磁盘加载的模型。我该如何实现?
码:
resnet_model = ResNet50(include_top=False, pooling='avg')
preprocessed_video = preprocess_input(tf.cast(video, tf.float32))
features = self.resnet_model([preprocessed_video])
sess1 = tf.Session()
saver = tf.train.import_meta_graph(model_path.as_posix() + '.meta')
graph = tf.get_default_graph()
saver.restore(sess1, model_path.as_posix())
input_x = graph.get_tensor_by_name('input/Identity:0')
result = graph.get_tensor_by_name('output/Identity:0')
Run Code Online (Sandbox Code Playgroud)
我需要给features
到input_x
和得到result
。请注意,这必须在构建图形时发生,而不是在运行时发生sess.run
。我的意思是,不是全部video
,features
而是全部。所以我不能用tensors
numpy.ndarray
sess.run
编辑1:
在此答案中,我可以解决如下问题:
preprocessed_video = preprocess_input(tf.cast(video, tf.float32))
features = self.resnet_model([preprocessed_video])
sess1 = tf.Session()
saver = tf.train.import_meta_graph(model_path.as_posix() + '.meta', input_map={'input/Identity:0': features})
graph = tf.get_default_graph()
saver.restore(sess1, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试克隆一个环境
conda create -n myenv_legacy --clone myenv
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
CondaHTTPError: HTTP 404 NOT FOUND for url <https://conda.anaconda.org/conda-forge/noarch/dask-core-2.7.0-py_0.tar.bz2>
Run Code Online (Sandbox Code Playgroud)
该网址https://conda.anaconda.org/conda-forge/noarch/dask-core-2.7.0-py_0.tar.bz2
不存在。但是dask-core-2.7.0-py_1.tar.bz2
(py_1,而不是 py_0 )存在。我该如何解决这个错误?
我tf.keras
在tensorflow 2.0.0
我有一个网络中使用 keras ( ) ,它的输入是一个图像,输出也是一个图像。我想在 VGG 特征空间中使用 MSE、MSE 和其他一些损失的组合,这取决于中间层输出。我正在定义一个自定义损失函数。我能够构建模型,使用自定义损失进行编译。但是当我训练使用fit_generator
,我得到了一个SymbolicException
说法Inputs to eager execution function cannot be Keras symbolic tensors
完整代码:
训练文件:
def __init__(self, gray_images: bool, verbose: bool = True):
super().__init__(gray_images, verbose)
self.model = None
self.vgg_feature_extractor = VggFeaturesExtractor(model_name='vgg16', layers=[3, 6, 10])
def build_model():
image_input = Input(shape=(None, None, num_input_channels))
out1 = self.build_out1_model(image_input, num_filters, depth_t)
out2 = self.build_out2_model(image_input, num_filters, depth_n, use_bnorm)
enhanced_image = ... # Some function of image_input, out1 and out2
self.model …
Run Code Online (Sandbox Code Playgroud) scipy.stats
模块有几个指标,例如pearsonr
,spearmanr
用于计算两组分数之间的相关性。就我而言,一组分数实际上是多个分数的平均值,因此每个分数都有一个置信区间。是否有任何相关性指标可以利用置信区间并得出更好的分数?
如何使用字典更新数据类的字段?
例子:
@dataclass
class Sample:
field1: str
field2: str
field3: str
field4: str
sample = Sample('field1_value1', 'field2_value1', 'field3_value1', 'field4_value1')
updated_values = {'field1': 'field1_value2', 'field3': 'field3_value2'}
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情
sample.update(updated_values)
Run Code Online (Sandbox Code Playgroud) 这个问题是对这个答案的评论中讨论的一种跟进。
据我了解,该preprocess_input()
函数确实意味着输入图像的减法和 std-dev dvision。平均值是在训练 VGG 时在 ImageNet-1K 数据库上计算的平均值。
但是这个答案说当使用 VGG 特征作为损失函数时,preprocess_input()
不是必需的,我们只需要[0,1]
在传递给 VGG 之前将图像归一化到范围。这让我很困惑...
[0,255]
范围内设置图像,preprocess_input()
函数负责规范化等等。从源代码中,我了解到对于 caffe 模型,[0,1]
未完成对范围的归一化。相反,减去平均值并除以 std-dev。[0,1]
如本答案的评论中所建议的那样,将网络输出标准化到范围如何实现相同的效果?编辑 1:
我正在考虑输出图像的模型。它并不特定于单个模型。一个例子是图像去噪网络。我的网络的输入是一个嘈杂的图像,它的输出是一个去噪的图像。我想最小化 VGG 特征空间中去噪图像和地面实况图像之间的 MSE。无论我的网络输出的范围是多少,我都可以[0,255]
通过乘以适当的因子轻松地将其更改为。同样,我可以对我的网络输出进行任何所需的预处理(减去平均值,除以 std-dev)。
根据经验,我发现预处理函数的输出在大约范围内[-128,151]
。所以 VGG 网络是在这个范围内的图像上训练的。现在,如果我给它提供范围内的图像(或来自我的网络输出的张量)[0,1]
,卷积会很好,但偏差会导致问题,对吗?详细地说,对于范围内的图像[-128,151]
,一层 VGG 网络可能已经学习到了 5 的偏差。当我将范围内的图像提供[-1,1]
给 VGG 网络时,偏差会破坏一切,对吗?
我不是在训练 VGG 模型。我正在使用在 ImageNet-1k 数据库上训练的模型的权重。
我正在尝试使用地面实况深度图、姿势信息和相机矩阵将帧从 view1 扭曲到 view2。我已经能够删除大部分 for 循环并将其矢量化,除了一个 for 循环。变形时,由于遮挡,view1 中的多个像素可能会映射到 view2 中的单个位置。在这种情况下,我需要选择具有最低深度值的像素(前景对象)。我无法矢量化这部分代码。任何帮助向量化这个 for 循环表示赞赏。
def warp_frame_04(frame1: numpy.ndarray, depth: numpy.ndarray, intrinsic: numpy.ndarray, transformation1: numpy.ndarray,
transformation2: numpy.ndarray, convert_to_uint: bool = True, verbose_log: bool = True):
"""
Vectorized Forward warping. Nearest Neighbor.
Offset requirement of warp_frame_03() overcome.
mask: 1 if pixel found, 0 if no pixel found
Drawback: Nearest neighbor, collision resolving not vectorized
"""
height, width, _ = frame1.shape
assert depth.shape == (height, width) …
Run Code Online (Sandbox Code Playgroud) 我正在使用 PyTorch 框架训练我的神经网络。数据是全高清图像 (1920x1080)。但是在每次迭代中,我只需要从这些图像中裁剪出一个随机的 256x256 补丁。我的网络相对较小(5 个卷积层),因此瓶颈是由加载数据引起的。我在下面提供了我当前的代码。有什么方法可以优化加载数据并加快训练速度?
代码:
from pathlib import Path
import numpy
import skimage.io
import torch.utils.data as data
import Imath
import OpenEXR
class Ours(data.Dataset):
"""
Loads patches of resolution 256x256. Patches are selected such that they contain atleast 1 unknown pixel
"""
def __init__(self, data_dirpath, split_name, patch_size):
super(Ours, self).__init__()
self.dataroot = Path(data_dirpath) / split_name
self.video_names = []
for video_path in sorted(self.dataroot.iterdir()):
for i in range(4):
for j in range(11):
view_num = i * 12 + j
self.video_names.append((video_path.stem, …
Run Code Online (Sandbox Code Playgroud) 我正在定义一个自定义损失函数。例如,让我们以loss function = L1 loss + L2 loss.
When I domodel.fit_generator()
为例,在每批之后打印整体损失函数。但我想看到的个人价值观L1 loss
和L2 loss
。我怎样才能做到这一点?我想知道单个术语的值以了解它们的相对比例。
tf.print(l1_loss, output_stream=sys.stdout)
正在抛出异常说tensorflow.python.eager.core._FallbackException: This function does not handle the case of the path where all inputs are not already EagerTensors.
。
甚至tf.print('---')
只是---
在开始打印而不是每批打印。
tf.keras.backend.print_tensor(l1_loss)
没有打印任何东西
我知道这是网络上的一个流行问题,但即使在设置JAVA_HOME
env 变量并添加%JAVA_HOME%\bin\
到 Path 变量之后,我也会收到此错误。
我正在尝试使用需要 Java 的PDF Presenter应用程序。因此,我下载了 Oracle JDK ( jdk-14.0.1_windows-x64_bin.exe ) 并安装它,然后配置了上述两个变量。
如果我输入%JAVA_HOME%\bin\java.exe --version
,它工作正常。但如果我输入java.exe
或java
,我会在标题中收到错误。我怎样才能解决这个问题?
这是输出echo %PATH%
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Git\cmd;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\MiKTeX 2.9\miktex\bin\x64\;%JAVA_HOME%\bin\;C:\Users\Nagabhushan\AppData\Local\Microsoft\WindowsApps;
Run Code Online (Sandbox Code Playgroud) python ×8
tensorflow ×4
keras ×2
python-3.x ×2
pytorch ×2
tf.keras ×2
anaconda ×1
conda ×1
correlation ×1
dataloader ×1
http-error ×1
java ×1
logging ×1
numpy ×1
performance ×1
python-3.7 ×1