怎样做网站推品牌设计理念

张小明 2026/1/11 14:44:50
怎样做网站推,品牌设计理念,网络推广方案的参考文献,购物网站 建设vLLM 是一款专为大语言模型推理加速而设计的框架#xff0c;实现了 KV 缓存内存几乎零浪费#xff0c;解决了内存管理瓶颈问题。 更多 vLLM 中文文档及教程可访问 →vllm.hyper.ai/ *在线运行 vLLM 入门教程#xff1a;零基础分步指南 源码 examples/offline_inference/p…vLLM 是一款专为大语言模型推理加速而设计的框架实现了 KV 缓存内存几乎零浪费解决了内存管理瓶颈问题。更多 vLLM 中文文档及教程可访问 →vllm.hyper.ai/*在线运行 vLLM 入门教程零基础分步指南源码 examples/offline_inference/prithvi_geospatial_mae.py# SPDX-License-Identifier: Apache-2.0 这是一个演示脚本显示如何使用 带有 vLLM 的 PrithviGeospatialMAE 模型 该脚本基于: https://huggingface.co/ibm-nasa-geospatial/prithvi-eo-2.0-300m-tl-sen1floods11/blob/main/main/inference.py# noqa 目标模型权重: https://huggingface.co/ibm-nasa-geospatial/prithvi-eo-2.0-300m-tl-sen1floods11/resolve/main/main/prithvi-eo-eo-eo-eo-eo-eo-eo-v2-300m-tl-sen1.pt# noqa 运行此脚本的要求是: - 在 Python 环境中安装 [terratorch, albumentations, rasterio] - 在脚本 model 文件夹中下载模型权重 (直到将正确的 config.json 文件上传到 HF 前都将临时度量) - 下载输入示例图像 (India_900498_S2Hand.tif) 并将其放入 带有脚本的同一文件夹 (或用 -data_file 参数指定) 运行以下示例: python prithvi_geospatial_mae.py # noqa: E501 import argparse import datetime import os import re from typing import Union import albumentations import numpy as np import rasterio import torch from einops import rearrange from terratorch.datamodules import Sen1Floods11NonGeoDataModule from vllm import LLM NO_DATA -9999 NO_DATA_FLOAT 0.0001 OFFSET 0 PERCENTILE 99 model_config { architectures: [PrithviGeoSpatialMAE], num_classes: 0, pretrained_cfg: { task_args: { task: SemanticSegmentationTask, model_factory: EncoderDecoderFactory, loss: ce, ignore_index: -1, lr: 0.001, freeze_backbone: false, freeze_decoder: false, plot_on_val: 10, optimizer: AdamW, scheduler: CosineAnnealingLR }, model_args: { backbone_pretrained: false, backbone: prithvi_eo_v2_300_tl, decoder: UperNetDecoder, decoder_channels: 256, decoder_scale_modules: true, num_classes: 2, rescale: true, backbone_bands: [ BLUE, GREEN, RED, NIR_NARROW, SWIR_1, SWIR_2 ], head_dropout: 0.1, necks: [ { name: SelectIndices, indices: [ 5, 11, 17, 23 ] }, { name: ReshapeTokensToImage } ] }, optimizer_params : { lr: 5.0e-05, betas: [0.9, 0.999], eps: [1.0e-08], weight_decay: 0.05, amsgrad: false, maximize: false, capturable: false, differentiable: false }, scheduler_params : { T_max: 50, eta_min: 0, last_epoch: -1, verbose: deprecated } }, torch_dtype: float32 } # 临时为模型创建「config.json」文件。 # 当正确的 config.json 在 HF 平台可用后该文件将自动消失 with open(os.path.join(os.path.dirname(__file__), ./model/config.json), w) as config_file: config_file.write(model_config) datamodule_config { bands: [BLUE, GREEN, RED, NIR_NARROW, SWIR_1, SWIR_2], batch_size: 16, constant_scale: 0.0001, data_root: /dccstor/geofm-finetuning/datasets/sen1floods11, drop_last: True, no_data_replace: 0.0, no_label_replace: -1, num_workers: 8, test_transform: [ albumentations.Resize(always_applyFalse, height448, interpolation1, p1, width448), albumentations.pytorch.ToTensorV2(transpose_maskFalse, always_applyTrue, p1.0) ], } class PrithviMAE: def __init__(self): print(Initializing PrithviMAE model) self.model LLM(modelos.path.join(os.path.dirname(__file__), ./model), skip_tokenizer_initTrue, dtypefloat32) def run(self, input_data, location_coords): print(################ Running inference on vLLM ##############) # 合并数据到一个数据结构中 mm_data { pixel_values: torch.empty(0) if input_data is None else input_data, location_coords: torch.empty(0) if location_coords is None else location_coords } prompt {prompt_token_ids: [1], multi_modal_data: mm_data} outputs self.model.encode(prompt, use_tqdmFalse) print( ################ Inference done (it took seconds) ############## ) return outputs[0].outputs.data def generate_datamodule(): datamodule Sen1Floods11NonGeoDataModule( data_rootdatamodule_config[data_root], batch_sizedatamodule_config[batch_size], num_workersdatamodule_config[num_workers], bandsdatamodule_config[bands], drop_lastdatamodule_config[drop_last], test_transformdatamodule_config[test_transform ]) return datamodule def process_channel_group(orig_img, channels): 参数 orig_img表示原始图像参考图像的 torch.Tensor 形状为 (bands, H, W)。 channels表示 RGB 通道的索引列表。 返回 原始图像的 torch.Tensor形状为 (num_channels, height, width) orig_img orig_img[channels, ...] valid_mask torch.ones_like(orig_img, dtypetorch.bool) valid_mask[orig_img NO_DATA_FLOAT] False # 重缩放 (增强对比) max_value max(3000, np.percentile(orig_img[valid_mask], PERCENTILE)) min_value OFFSET orig_img torch.clamp((orig_img - min_value) / (max_value - min_value), 0, 1) # 0 作为无数据 orig_img[~valid_mask] 0 return orig_img def read_geotiff(file_path: str): Read all bands from *file_path* and return image meta info. Args: file_path: path to image file. Returns: np.ndarray with shape (bands, height, width) meta info dict with rasterio.open(file_path) as src: img src.read() meta src.meta try: coords src.lnglat() except Exception: # 无法读取 coords coords None return img, meta, coords def save_geotiff(image, output_path: str, meta: dict): 将多波段图像保存为 GeoTiff 文件。 参数 image: 形状为 (bands, height, width) 的 np.ndarray 数组 output_path: 图像保存路径 meta: 包含元信息的字典 with rasterio.open(output_path, w, **meta) as dest: for i in range(image.shape[0]): dest.write(image[i, :, :], i 1) return def _convert_np_uint8(float_image: torch.Tensor): image float_image.numpy() * 255.0 image image.astype(dtypenp.uint8) return image def load_example( file_paths: list[str], mean: list[float] None, std: list[float] None, indices: Union[list[int], None] None, ): 通过加载 *file_paths* 中的图像构建输入样本。 参数 file_paths: 文件路径列表 mean: 包含 *file_paths* 中各图像每个波段均值的列表 std: 包含 *file_paths* 中各图像每个波段标准差的列表 返回 生成的样本 np.array *file_paths* 中各图像的元信息列表 imgs [] metas [] temporal_coords [] location_coords [] for file in file_paths: img, meta, coords read_geotiff(file) # 重缩放(不要在空数据上归一化) img np.moveaxis(img, 0, -1) # channels last for rescaling # 最后一个通道用于重缩放 if indices is not None: img img[..., indices] if mean is not None and std is not None: img np.where(img NO_DATA, NO_DATA_FLOAT, (img - mean) / std) imgs.append(img) metas.append(meta) if coords is not None: location_coords.append(coords) try: match re.search(r(\d{7,8}T\d{6}), file) if match: year int(match.group(1)[:4]) julian_day match.group(1).split(T)[0][4:] if len(julian_day) 3: julian_day int(julian_day) else: julian_day datetime.datetime.strptime( julian_day, %m%d).timetuple().tm_yday temporal_coords.append([year, julian_day]) except Exception as e: print(fCould not extract timestamp for {file} ({e})) imgs np.stack(imgs, axis0) # num_frames, H, W, C imgs np.moveaxis(imgs, -1, 0).astype(float32) imgs np.expand_dims(imgs, axis0) # add batch di # 添加批 di return imgs, temporal_coords, location_coords, metas def run_model(input_data, temporal_coords, location_coords, model, datamodule, img_size, lightning_modelNone): # 当图像尺寸不能被 img_size 整除时进行反射填充 original_h, original_w input_data.shape[-2:] pad_h (img_size - (original_h % img_size)) % img_size pad_w (img_size - (original_w % img_size)) % img_size input_data np.pad(input_data, ((0, 0), (0, 0), (0, 0), (0, pad_h), (0, pad_w)), modereflect) # 构建滑动窗口 batch_size 1 batch torch.tensor(input_data, devicecpu) windows (batch.unfold(3, img_size, img_size).unfold(4, img_size, img_size)) h1, w1 windows.shape[3:5] windows rearrange(windows, b c t h1 w1 h w - (b h1 w1) c t h w, himg_size, wimg_size) # 如果窗口数量大于批大小则分割批 num_batches windows.shape[0] // batch_size if windows.shape[ 0] batch_size else 1 windows torch.tensor_split(windows, num_batches, dim0) if torch.cuda.is_available(): device torch.device(cuda) else: device torch.device(cpu) if temporal_coords: temporal_coords torch.tensor(temporal_coords, devicedevice).unsqueeze(0) else: temporal_coords None if location_coords: location_coords torch.tensor(location_coords[0], devicedevice).unsqueeze(0) else: location_coords None # 运行模型 pred_imgs [] for x in windows: # Apply standardization # 应用标准化 x datamodule.test_transform( imagex.squeeze().numpy().transpose(1, 2, 0)) x datamodule.aug(x)[image] with torch.no_grad(): x x.to(device) pred model.run(x, location_coordslocation_coords) if lightning_model: pred_lightning lightning_model( x, temporal_coordstemporal_coords, location_coordslocation_coords) pred_lightning pred_lightning.output.detach().cpu() if not torch.equal(pred, pred_lightning): print(Inference output is not equal) y_hat pred.argmax(dim1) y_hat torch.nn.functional.interpolate(y_hat.unsqueeze(1).float(), sizeimg_size, modenearest) pred_imgs.append(y_hat) pred_imgs torch.concat(pred_imgs, dim0) # 从块中读取图像 pred_imgs rearrange( pred_imgs, (b h1 w1) c h w - b c (h1 h) (w1 w), himg_size, wimg_size, b1, c1, h1h1, w1w1, ) # 剪切填充区域还原原始大小 pred_imgs pred_imgs[..., :original_h, :original_w] # 挤压批大小 1 pred_imgs pred_imgs[0] return pred_imgs def main( data_file: str, output_dir: str, rgb_outputs: bool, input_indices: list[int] None, ): os.makedirs(output_dir, exist_okTrue) # 读取模型 --------------------------------------------------------------- model_obj PrithviMAE() datamodule generate_datamodule() img_size 256 # Size of Sen1Floods11 # 读取数据 --------------------------------------------------------------- input_data, temporal_coords, location_coords, meta_data load_example( file_paths[data_file], indicesinput_indices, ) meta_data meta_data[0] # 仅一张图像 if input_data.mean() 1: input_data input_data / 10000 # 转换到 0-1 之间 # 运行模型 --------------------------------------------------------------- channels [ datamodule_config[bands].index(b) for b in [RED, GREEN, BLUE] ] # BGR - RGB pred run_model(input_data, temporal_coords, location_coords, model_obj, datamodule, img_size) # 保存 pred meta_data.update(count1, dtypeuint8, compresslzw, nodata0) pred_file os.path.join( output_dir, fpred_{os.path.splitext(os.path.basename(data_file))[0]}.tiff) save_geotiff(_convert_np_uint8(pred), pred_file, meta_data) # 保存 图像 和 pred meta_data.update(count3, dtypeuint8, compresslzw, nodata0) if input_data.mean() 1: input_data input_data * 10000 # Scale to 0-10000 # 缩放到 0-10000 rgb_orig process_channel_group( orig_imgtorch.Tensor(input_data[0, :, 0, ...]), channelschannels, ) pred[pred 0.] np.nan img_pred rgb_orig * 0.7 pred * 0.3 img_pred[img_pred.isnan()] rgb_orig[img_pred.isnan()] img_pred_file os.path.join( output_dir, frgb_pred_{os.path.splitext(os.path.basename(data_file))[0]}.tiff) save_geotiff( image_convert_np_uint8(img_pred), output_pathimg_pred_file, metameta_data, ) # 保存图片 rgb if rgb_outputs: rgb_file os.path.join( output_dir, original_rgb_ f{os.path.splitext(os.path.basename(data_file))[0]}.tiff) save_geotiff( image_convert_np_uint8(rgb_orig), output_pathrgb_file, metameta_data, ) if __name__ __main__: parser argparse.ArgumentParser(MAE run inference, add_helpFalse) parser.add_argument( --data_file, typestr, default./India_900498_S2Hand.tif, helpPath to the file., ) parser.add_argument( --output_dir, typestr, defaultoutput, helpPath to the directory where to save outputs., ) parser.add_argument( --input_indices, default[1, 2, 3, 8, 11, 12], typeint, nargs, help 0-based indices of the six Prithvi channels to be selected from the input. By default selects [1,2,3,8,11,12] for S2L1C data., ) parser.add_argument( --rgb_outputs, actionstore_true, helpIf present, output files will only contain RGB channels. Otherwise, all bands will be saved., ) args parser.parse_args() main(**vars(args))
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建设网站费苏州保洁公司哪家好一点

FaceFusion 能否生成动态 GIF 表情包?一文讲透实现路径在短视频和表情文化主导网络交流的今天,一张会动的脸往往比千言万语更有表现力。你有没有想过,把自己或朋友的脸“塞进”经典电影片段、热门梗图或者宠物卖萌动图里,生成一个…

张小明 2025/12/31 18:58:40 网站建设

网站建设的大概费用网站备案必须做前置审批吗

Kotaemon网络安全问答:CVE漏洞快速查询 在现代企业安全运营中,面对每天新增数十个的公开漏洞(CVE),安全团队正面临前所未有的信息过载压力。一个典型的场景是:某位安全分析师刚收到一封关于“Windows提权漏…

张小明 2026/1/5 16:00:42 网站建设

一台ip做两个网站免费申请qq号注册官网

1.年龄不达标:无或限制民事行为能力人(如未成年人),需具备完全民事行为能力才能任职。 2.涉刑或被追查:正在服刑、被采取刑事强制措施,或是被通缉的人员,无法担任。 3.有 “前科” 需冷却&#…

张小明 2025/12/31 18:58:39 网站建设

网站规划的主要任务是什么做网站为什么先交定金

第一章:Agent工具的Dify测试用例概述在构建基于Agent的智能系统时,Dify作为一个支持可视化编排与调试AI工作流的开发平台,提供了强大的测试能力以验证Agent行为的准确性与稳定性。通过定义结构化的测试用例,开发者能够在不同输入条…

张小明 2025/12/30 23:55:46 网站建设

安徽安能建设集团网站石家庄招聘哪个网站做的好

息屏远程控制终极指南:让escrcpy成为你的手机隐形管家 【免费下载链接】escrcpy 优雅而强大的跨平台 Android 设备控制工具,基于 Scrcpy 的 Electron 应用,支持无线连接和多设备管理,让您的电脑成为 Android 的完美伴侣。 项目地址: https://gitcode.c…

张小明 2026/1/4 18:22:25 网站建设

垂直网站建设建设银行面试经验网站

国家自然科学基金数据查询利器:NSFC工具全面解析与应用指南 【免费下载链接】nsfc 国家自然科学基金查询 项目地址: https://gitcode.com/gh_mirrors/nsf/nsfc 还在为繁琐的科研数据查询而烦恼吗?想快速获取国家自然科学基金项目的精准信息吗&…

张小明 2025/12/31 5:59:01 网站建设