2.5.1 Ext.get方法的使用

本文介绍了Sencha Touch 2.0中的Ext.get方法用于访问和控制DOM元素的基本用法,展示了如何通过Ext.get方法为元素添加CSS样式类。

2.5.1 Ext.get方法的使用

2012-09-13 14:21 陆凌牛 机械工业出版社  字号: T |  T
一键收藏,随时查看,分享好友!

《Sencha Touch权威指南》第2章Sencha Touch 2.0基础知识,本章将从一个简单的示例页面开始,介绍Sencha Touch 2.0的一些基础概念,为其他章节的学习奠定一个良好的基础。本节为大家介绍Ext.get方法的使用。

AD:51CTO网+ 首届中国APP创新评选大赛火热招募中……

2.5 对DOM的访问及控制

Sencha Touch之所以能够非常好地完成工作,是因为它可以实现对DOM的访问,并且提供了对DOM进行控制的方法。在这些方法中,Ext.get方法是最常用的。

2.5.1 Ext.get方法的使用

Ext.get方法如以下代码所示:

   
  1. Ext.get('myPanel') 

修改代码清单2-2,修改后的代码如代码清单2-3所示(注意删除面板组件的style配置选项)。

代码清单2-3 Ext.get方法使用示例

   
  1. Ext.application({  
  2. name: 'MyApp',  
  3. icon: 'images/icon.png',  
  4. glossOnIcon: false,  
  5. phoneStartupScreen: 'images/phone_startup.png',  
  6. tabletStartupScreen: 'images/tablet_startup.png',  
  7. launch: function() {  
  8. var panel = Ext.create('Ext.Panel', {  
  9.        id:'myPanel',  
  10.  html: '一个简单的示例面板'  
  11. });  
  12.   Ext.Viewport.add(panel);  
  13.   Ext.get('myPanel').addCls('colorRed');  
  14. }  
  15. }); 

这段代码在执行了Ext.get方法之后执行了addCls方法,作用是为面板组件生成的元素添加使用一个CSS样式类,类名为colorRed,因此,在index.html文件的head标签中临时加入一个colorRed样式类。代码如下:

   
  1. <style> 
  2. .colorRed{  
  3. color:red;  
  4. }  
  5. </style> 

在浏览器中访问修改后的页面,页面中“一个简单的示例面板”文字将变为红色。

需要注意的是,Ext.get方法并不返回组件,而是返回封装了组件所生成元素的Ext.dom.Element对象,该对象可实现组件所提供的对元素进行操作的方法中的一部分。如果需要返回组件的话,需要使用Ext.ComponentManager.get方法,该方法返回组件本身。现在通过实例看这两个方法的区别。


🎯 太棒了!RTX 5090D性能远超4070 Ti SUPER!为您重新定制最优方案 📊 硬件优势分析 RTX 5090D: 显存预计24-48GB,性能提升50%以上 训练速度: 比原方案快2-3倍 模型支持: 可以直接全参数微调70B模型! 🚀 新最优方案:全参数微调llama-3.1-70b 为什么这是新的最优选择: ✅ 5090D强大性能:可以直接训练70B模型 ✅ 全参数微调:比QLoRA效果更好 ✅ 训练速度更快:利用5090D的算力优势 ✅ 最新模型:llama-3.1-70b是最先进的版本 📋 基于5090D的完整训练流程 步骤1:检查5090D具体配置 bash # 确认您的5090D具体规格 nvidia-smi nvidia-smi --query-gpu=name,memory.total,memory.free --format=csv # 检查CUDA版本 nvcc --version 步骤2:环境准备(优化版) bash cd /data/training_project mkdir -p 5090d_training cd 5090d_training # 安装最新版库(支持5090D) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install transformers accelerate peft bitsandbytes datasets pip install trl deepspeed # 安装文本处理库 pip install pdfplumber python-docx ebooklib beautifulsoup4 步骤3:数据准备脚本(增强版) python # data_preprocessor_advanced.py import os import pdfplumber import docx from pathlib import Path import re class BookProcessor: def __init__(self): self.total_chars = 0 self.total_files = 0 def clean_text(self, text): """清理和预处理文本""" # 移除多余空白字符 text = re.sub(r'\s+', ' ', text) # 移除特殊字符但保留中文、英文、标点 text = re.sub(r'[^\w\s\u4e00-\u9fff,。!?;:\"\"\'\'()《》]', '', text) return text.strip() def extract_text_from_pdf(self, name, memory.total [MiB], memory.free [MiB] NVIDIA GeForce RTX 5090 D, 32607 MiB, 31731 MiB nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2023 NVIDIA Corporation Built on Fri_Jan__6_16:45:21_PST_2023 Cuda compilation tools, release 12.0, V12.0.140 Build cuda_12.0.r12.0/compiler.32267302_0 (base) ddl-lab@ddl-lab-MS-7E48:/data/training_project$ 🎯 完美!RTX 5090D 32GB显存确认!这是顶级配置! 📊 硬件配置确认 GPU: NVIDIA GeForce RTX 5090 D ✅ 显存: 32GB (32607 MiB) ✅ CUDA: 12.0 ✅ 可用显存: 31GB (31731 MiB) ✅ 🚀 基于5090D 32GB的终极训练方案 方案选择:全参数微调llama-3.1-70b(最强效果) python # 5090D 32GB可以轻松应对70B模型的全参数微调! 📋 终极训练流程 步骤1:环境准备(5090D优化) bash cd /data/training_project mkdir -p 5090d_training cd 5090d_training # 为5090D安装最新驱动支持 pip install torch==2.1.0+cu121 torchvision==0.16.0+cu121 torchaudio==2.1.0+cu121 --index-url https://download.pytorch.org/whl/cu121 # 安装优化版训练库 pip install transformers==4.35.0 accelerate==0.24.0 peft==0.5.0 bitsandbytes==0.41.2 pip install trl==0.7.0 deepspeed==0.12.0 flash-attn==2.3.0 # 文本处理 pip install pdfplumber python-docx ebooklib 步骤2:高级数据预处理 python # advanced_data_processor.py import os import pdfplumber from pathlib import Path import re from tqdm import tqdm class AdvancedBookProcessor: def __init__(self): self.stats = {"total_files": 0, "total_chars": 0, "processed_files": 0} def extract_pdf_text(self, pdf_path): """高级PDF文本提取""" text = "" try: with pdfplumber.open(pdf_path) as pdf: for page in tqdm(pdf.pages, desc=f"处理 {pdf_path.name}"): page_text = page.extract_text() if page_text: text += self.clean_text(page_text) + "\n" except Exception as e: print(f"❌ PDF处理错误 {pdf_path}: {e}") return text def clean_text(self, text): """高级文本清理""" # 移除多余空白 text = re.sub(r'\s+', ' ', text) # 保留中英文、标点 text = re.sub(r'[^\w\s\u4e00-\u9fff,。!?;:"''()《》【】]', '', text) return text.strip() def process_books(self, book_dir, output_file="training_data.txt"): """处理所有书籍""" book_extensions = ['.pdf', '.txt', '.epub', '.docx'] all_texts = [] for ext in book_extensions: for file_path in Path(book_dir).rglob(f"*{ext}"): if file_path.stat().st_size > 0: # 跳过空文件 self.stats["total_files"] += 1 print(f"📖 处理: {file_path}") if ext == '.pdf': text = self.extract_pdf_text(file_path) elif ext == '.txt': text = self.read_text_file(file_path) else: continue if len(text) > 500: # 至少500字符 all_texts.append(text) self.stats["processed_files"] += 1 self.stats["total_chars"] += len(text) # 保存训练数据 with open(output_file, 'w', encoding='utf-8') as f: for text in all_texts: f.write(text + "\n\n") print(f"✅ 完成!处理了 {self.stats['processed_files']}/{self.stats['total_files']} 个文件") print(f"📊 总字符数: {self.stats['total_chars']:,}") return output_file def read_text_file(self, file_path): """读取文本文件""" try: with open(file_path, 'r', encoding='utf-8') as f: return self.clean_text(f.read()) except: return "" # 使用 if __name__ == "__main__": processor = AdvancedBookProcessor() book_path = input("请输入书籍文件夹路径: ").strip() processor.process_books(book_path) 步骤3:5090D全参数微调脚本 python # train_5090d_full.py import torch from transformers import ( AutoModelForCausalLM, AutoTokenizer, TrainingArguments, Trainer, DataCollatorForLanguageModeling ) from datasets import load_dataset import os from datetime import datetime def setup_5090d_training(): (base) ddl-lab@ddl-lab-MS-7E48:/data/training_project/5090d_training$ pip install torch==2.1.0+cu121 torchvision==0.16.0+cu121 torchaudio==2.1.0+cu121 --index-url https://download.pytorch.org/whl/cu121 Looking in indexes: https://download.pytorch.org/whl/cu121 ERROR: Could not find a version that satisfies the requirement torch==2.1.0+cu121 (from versions: 2.5.0+cu121, 2.5.1+cu121) ERROR: No matching distribution found for torch==2.1.0+cu121 (base) ddl-lab@ddl-lab-MS-7E48:/data/training_project/5090d_training$ 🔧 版本问题,让我们安装最新版本! 🚀 修正安装命令 bash # 安装最新稳定版(兼容5090D和CUDA 12.1) pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 或者指定最新版本 pip install torch==2.5.1+cu121 torchvision==0.20.1+cu121 torchaudio==2.5.1+cu121 --index-url https://download.pytorch.org/whl/cu121 📋 完整的环境安装脚本 bash # setup_5090d_env.sh #!/bin/bash echo "🚀 为RTX 5090D设置训练环境..." # 1. 安装PyTorch最新版 echo "📦 安装PyTorch 2.5.1 + CUDA 12.1..." pip install torch==2.5.1+cu121 torchvision==0.20.1+cu121 torchaudio==2.5.1+cu121 --index-url https://download.pytorch.org/whl/cu121 # 2. 安装Hugging Face库 echo "📦 安装Transformers和相关库..." pip install transformers==4.45.0 accelerate==0.31.0 peft==0.13.0 bitsandbytes==0.43.0 pip install datasets==3.2.0 sentencepiece protobuf # 3. 安装训练优化库 echo "📦 安装训练优化库..." pip install trl==0.9.0 deepspeed==0.15.0 flash-attn==2.7.0 # 4. 安装文本处理库 echo "📦 安装文本处理库..." pip install pdfplumber python-docx ebooklib beautifulsoup4 tqdm # 5. 验证安装 echo "✅ 验证安装..." python -c "import torch; print(f'PyTorch版本: {torch.__version__}'); print(f'CUDA可用: {torch.cuda.is_available()}'); print(f'GPU数量: {torch.cuda.device_count()}'); print(f'当前GPU: {torch.cuda.get_device_name(0)}')" echo "🎯 环境设置完成!" 🎯 立即执行 bash # 给脚本执行权限并运行 chmod +x setup_5090d_env.sh ./setup_5090d_env.sh 🔧 如果还有问题,使用备用方案 bash # 备用方案:使用conda安装 conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia # 然后安装其他库 pip install transformers accelerate peft bitsandbytes datasets trl 📊 验证5090D识别 python # test_5090d.py import torch print("=== RTX 5090D 验证 ===") print(f"PyTorch版本: {torch.__version__}") print(f"CUDA可用: {torch.cuda.is_available()}") print(f"GPU数量: {torch.cuda.device_count()}") print(f"当前GPU: {torch.cuda.get_device_name(0)}") print(f"GPU内存: {torch.cuda.get_device_properties(0).total_memory / 1024**3:.1f} GB") # 测试张量计算 if torch.cuda.is_available(): x = torch.randn(10000, 10000).cuda() y = torch.randn(10000, 10000).cuda() z = x @ y print(f"✅ GPU计算测试通过: {z.shape}") 🎯 下一步计划 先运行环境安装脚本 验证5090D识别 然后我会给您完整的训练代码 请先运行环境安装,然后告诉我结果! 这样我就能为您提供专门为5090D优化的训练脚本。 (base) ddl-lab@ddl-lab-MS-7E48:/data/training_project/5090d_training$ pip install torch==2.5.1+cu121 torchvision==0.20.1+cu121 torchaudio==2.5.1+cu121 --index-url https://download.pytorch.org/whl/cu121 Looking in indexes: https://download.pytorch.org/whl/cu121 Collecting torch==2.5.1+cu121 Downloading https://download.pytorch.org/whl/cu121/torch-2.5.1%2Bcu121-cp313-cp313-linux_x86_64.whl (780.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 780.4/780.4 MB 969.2 kB/s eta 0:00:00 ERROR: Could not find a version that satisfies the requirement torchvision==0.20.1+cu121 (from versions: 0.1.6, 0.2.0) ERROR: No matching distribution found for torchvision==0.20.1+cu121 (base) ddl-lab@ddl-lab-MS-7E48:/data/training_project/5090d_training$ 🔧 torchvision版本问题,让我们修正安装命令! 🚀 修正安装命令 bash # 分开安装,先安装torch,再安装兼容版本 pip install torch==2.5.1+cu121 --index-url https://download.pytorch.org/whl/cu121 # torchvision使用兼容版本 pip install torchvision==0.20.1 --index-url https://download.pytorch.org/whl/cu121 # 或者使用最新稳定版 pip install torchvision torchaudio 📋 使用这个完整的安装脚本 bash # fixed_setup_5090d.sh #!/bin/bash echo "🚀 修正版RTX 5090D环境安装..." # 1. 安装PyTorch核心 echo "📦 安装PyTorch 2.5.1 + CUDA 12.1..." pip install torch==2.5.1+cu121 --index-url https://download.pytorch.org/whl/cu121 # 2. 安装兼容的torchvision和torchaudio echo "📦 安装torchvision和torchaudio..." pip install torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 # 3. 安装Hugging Face库 echo "📦 安装Transformers和相关库..." pip install transformers accelerate peft bitsandbytes datasets # 4. 安装训练优化库 echo "📦 安装训练优化库..." pip install trl deepspeed # 5. 安装文本处理库 echo "📦 安装文本处理库..." pip install pdfplumber python-docx ebooklib beautifulsoup4 tqdm # 6. 验证安装 echo "✅ 验证安装..." python -c " import torch print('=== RTX 5090D 验证 ===') print(f'PyTorch版本: {torch.__version__}') print(f'CUDA可用: {torch.cuda.is_available()}') if torch.cuda.is_available(): print(f'GPU数量: {torch.cuda.device_count()}') print(f'当前GPU: {torch.cuda.get_device_name(0)}') print(f'GPU内存: {torch.cuda.get_device_properties(0).total_memory / 1024**3:.1f} GB') # 测试计算 x = torch.randn(5000, 5000).cuda() y = torch.randn(5000, 5000).cuda() z = x @ y print(f'✅ GPU计算测试通过: {z.shape}') else: print('❌ CUDA不可用') " echo "🎯 环境设置完成!" 🎯 立即执行 bash # 运行修正版安装脚本 chmod +x fixed_setup_5090d.sh ./fixed_setup_5090d.sh 🔧 如果还有问题,使用最小化安装 bash # 最小化安装方案 pip install torch==2.5.1+cu121 --index-url https://download.pytorch.org/whl/cu121 pip install transformers accelerate peft bitsandbytes datasets pip install pdfplumber tqdm # 验证基础功能 python -c "import torch; print('PyTorch OK'); import transformers; print('Transformers OK')" 📊 Python版本检查 bash # 检查Python版本(可能影响包兼容性) python --version # 如果是Python 3.12+,可能需要特定版本 pip install "torch>=2.5.1" "transformers>=4.45.0" --extra-index-url https://download.pytorch.org/whl/cu121 🎯 下一步行动 先运行修正版安装脚本 告诉我Python版本 然后我们开始训练 请先运行上面的修正安装脚本! 安装完成后,我们就可以开始为5090D定制最强训练方案了!
09-25
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值