mqlayer播放器1.0

MQLayer播放器1.0正式发布,支持所有音视频格式,界面简洁美观,新增媒体管理器等功能,提供最佳用户体验。此次更新包括界面美化、快捷播放按钮等改进。
前端时间开发的播放器,因为是使用java开发,所以放到 javaeye上来,能更方便的做技术上的交流。

介绍:
mqlayer播放器支持所有音视频格式,资源占用率低,界面简洁美观,除具备一般播放器的功能外,还有很多创新功能,比如媒体管理器,画中画搜索,急速拖动,精确定位,鼠标手势,最简界面,智能缩放等,为用户提供最佳体验。
mqlayer 1.0相对预览版做了大量修改和完善。

主要变化:
1、美化界面,并增加多种主题外观。
2、增加快捷播放按钮。
3、增加所有文件的以及播放列表的断点记忆播放
4、增加常用快捷键。
5、改进操作方式。

如果觉得好用,可以帮忙做下宣传。

(jre的问题,原来使用的是精简后的jre,可以压缩到7兆左右,但造成程序的启动速度很慢,现在改为自动检测在线安装 jre。)

下载地址:

完整版,10兆

[url]http://lightvod.googlecode.com/files/mqlayerInstaller1.0.exe[/url]

默认界面:
[img]/upload/attachment/100351/6bc9952d-c6f6-363b-af95-7ccebecd17ff.jpg[/img]

[img]/upload/attachment/100353/45b6a295-83cd-3ff9-9ced-124ea852ca4b.jpg[/img]

媒体管理器:
[img]/upload/attachment/100355/d2951710-b959-3261-ab2e-f38387b364c9.jpg[/img]

透明效果:
[img]/upload/attachment/100357/4ea39f4d-e6aa-3004-b604-eb15874ac59d.jpg[/img]

无边框效果:
[img]/upload/attachment/100361/da9c4295-47da-332c-a8d7-7673e1262496.jpg[/img]

海蓝色主题:
[img]/upload/attachment/100359/cedd33ce-71e7-38d9-a855-fb89f324f8d4.jpg[/img]
import mindspore as ms from mindspore import nn, Parameter from mindquantum import Circuit, Hamiltonian, Simulator, X, H, RY, RX from mindquantum.framework import MQLayer # 量子层的封装接口[[2]] # ① 编码线路:把经典特征映射到量子态 def build_encoder(num_qubits): circ = Circuit() for i in range(num_qubits): circ.h(i) # 初始 Hadamard circ.ry(f'x{i}', i) # 参数化 Y 旋转,参数名对应特征 x_i return circ # ② 可训练线路(Ansatz):待学习的参数化门 def build_ansatz(num_qubits, depth=2): circ = Circuit() for d in range(depth): for i in range(num_qubits): circ.rx({f't{d}_{i}': 1.0}, i) # 参数化 X 旋转 # 交叉 CNOT 形成纠缠 for i in range(num_qubits - 1): circ.x(i, i + 1) return circ n_qubits = 2 encoder = build_encoder(n_qubits) ansatz = build_ansatz(n_qubits, depth=2) # 将编码和 Ansatz 串联 pqc = encoder + ansatz # 这里以 Z⊗Z 为例,得到一个标量输出 from mindquantum.core.operators import QubitOperator ham = Hamiltonian(QubitOperator('Z0 Z1', -1)) encoder_params=encoder.params_name ansatz_params=ansatz.params_name encoder_params,ansatz_params # ① 使用 Simulator 生成带梯度的期望值算子 sim = Simulator('mqvector', n_qubits) # 也可以换成 'mqvector'、'mqmatrix' 等后端 grad_ops = sim.get_expectation_with_grad( ham, pqc, encoder_params_name=encoder_params, ansatz_params_name=ansatz_params, parallel_worker=4 ) # ② 用 MQLayer 包装 quantum_layer = MQLayer(grad_ops) # 已封装前向+梯度[[6]] x=ms.Tensor([ [1,2], [2,4], [3,6], [4,8] ],ms.float32) y=quantum_layer(x) 以上代码为什么报错? --------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[6], line 44 42 # ① 使用 Simulator 生成带梯度的期望值算子 43 sim = Simulator('mqvector', n_qubits) # 也可以换成 'mqvector'、'mqmatrix' 等后端 ---> 44 grad_ops = sim.get_expectation_with_grad( 45 ham, 46 pqc, 47 encoder_params_name=encoder_params, 48 ansatz_params_name=ansatz_params, 49 parallel_worker=4 50 ) 52 # ② 用 MQLayer 包装 53 quantum_layer = MQLayer(grad_ops) # 已封装前向+梯度[[6]] TypeError: Simulator.get_expectation_with_grad() got an unexpected keyword argument 'encoder_params_name'
10-27
import mindspore as ms from mindspore import nn, Parameter from mindquantum import Circuit, Hamiltonian, Simulator, X, H, RY, RX from mindquantum.framework import MQLayer # 量子层的封装接口[[2]] # ① 编码线路:把经典特征映射到量子态 def build_encoder(num_qubits): circ = Circuit() for i in range(num_qubits): circ.h(i) # 初始 Hadamard circ.ry(f'x{i}', i) # 参数化 Y 旋转,参数名对应特征 x_i return circ # ② 可训练线路(Ansatz):待学习的参数化门 def build_ansatz(num_qubits, depth=2): circ = Circuit() for d in range(depth): for i in range(num_qubits): circ.rx({f't{d}_{i}': 1.0}, i) # 参数化 X 旋转 # 交叉 CNOT 形成纠缠 for i in range(num_qubits - 1): circ.x(i, i + 1) return circ n_qubits = 2 encoder = build_encoder(n_qubits) ansatz = build_ansatz(n_qubits, depth=2) # 将编码和 Ansatz 串联 pqc = encoder + ansatz # 这里以 Z⊗Z 为例,得到一个标量输出 from mindquantum.core.operators import QubitOperator ham = Hamiltonian(QubitOperator('Z0 Z1', -1)) encoder_params=encoder.params_name ansatz_params=ansatz.params_name # ① 使用 Simulator 生成带梯度的期望值算子 sim = Simulator('mqvector', n_qubits) # 也可以换成 'mqvector'、'mqmatrix' 等后端 grad_ops = sim.get_expectation_with_grad( ham, pqc, parallel_worker=4 ) # ② 用 MQLayer 包装 quantum_layer = MQLayer(grad_ops) # 已封装前向+梯度[[6]] x = ms.Tensor([ [1.0, 2.0], [2.0, 4.0], [3.0, 6.0], [4.0, 8.0] ], ms.float32) # 前向传播 y = quantum_layer(x) print("输出形状:", y.shape) # 应该是 (4, 1) print("输出值:\n", y) 以上代码,为什么报错? ValueError Traceback (most recent call last) Cell In[9], line 59 51 x = ms.Tensor([ 52 [1.0, 2.0], 53 [2.0, 4.0], 54 [3.0, 6.0], 55 [4.0, 8.0] 56 ], ms.float32) 58 # 前向传播 ---> 59 y = quantum_layer(x) 60 print("输出形状:", y.shape) # 应该是 (4, 1) 61 print("输出值:\n", y) File D:\10_The_Programs\4_The_Codes\00_virtual_environment\DeepLearning\Lib\site-packages\mindspore\nn\cell.py:1355, in Cell.__call__(self, *args, **kwargs) 1352 if not (self.requires_grad or self._dynamic_shape_inputs or self.mixed_precision_type): 1353 if not (self._forward_pre_hook or self._forward_hook or self._backward_pre_hook or self._backward_hook or 1354 self._shard_fn or self._recompute_cell or (self.has_bprop and _pynative_executor.requires_grad())): -> 1355 return self.construct(*args, **kwargs) 1357 return self._run_construct(*args, **kwargs) 1359 return self._complex_call(*args, **kwargs) File D:\10_The_Programs\4_The_Codes\00_virtual_environment\DeepLearning\Lib\site-packages\mindquantum\framework\layer.py:94, in MQLayer.construct(self, arg) 92 def construct(self, arg): 93 """Construct a MQLayer node.""" ---> 94 return self.evolution(arg, self.weight) File D:\10_The_Programs\4_The_Codes\00_virtual_environment\DeepLearning\Lib\site-packages\mindspore\nn\cell.py:1355, in Cell.__call__(self, *args, **kwargs) 1352 if not (self.requires_grad or self._dynamic_shape_inputs or self.mixed_precision_type): 1353 if not (self._forward_pre_hook or self._forward_hook or self._backward_pre_hook or self._backward_hook or 1354 self._shard_fn or self._recompute_cell or (self.has_bprop and _pynative_executor.requires_grad())): -> 1355 return self.construct(*args, **kwargs) 1357 return self._run_construct(*args, **kwargs) 1359 return self._complex_call(*args, **kwargs) File D:\10_The_Programs\4_The_Codes\00_virtual_environment\DeepLearning\Lib\site-packages\mindquantum\framework\operations.py:134, in MQOps.construct(self, enc_data, ans_data) 132 def construct(self, enc_data, ans_data): 133 """Construct an MQOps node.""" --> 134 check_enc_input_shape(enc_data, self.shape_ops(enc_data), len(self.expectation_with_grad.encoder_params_name)) 135 check_ans_input_shape(ans_data, self.shape_ops(ans_data), len(self.expectation_with_grad.ansatz_params_name)) 136 fval, g_enc, g_ans = self.expectation_with_grad(enc_data.asnumpy(), ans_data.asnumpy()) File D:\10_The_Programs\4_The_Codes\00_virtual_environment\DeepLearning\Lib\site-packages\mindspore\ops\primitive.py:955, in constexpr.<locals>.decorator.<locals>.ProxyOp.__call__(self, *args, **kwargs) 954 def __call__(self, *args, **kwargs): --> 955 return fn(*args, **kwargs) File D:\10_The_Programs\4_The_Codes\00_virtual_environment\DeepLearning\Lib\site-packages\mindquantum\framework\operations.py:38, in check_enc_input_shape(data, encoder_tensor, enc_len) 36 raise TypeError(f"Encoder parameter requires a Tensor but get {type(data)}") 37 if len(encoder_tensor) != 2 or encoder_tensor[1] != enc_len: ---> 38 raise ValueError( 39 'Encoder data requires a two dimension Tensor with second' 40 + f' dimension should be {enc_len}, but get shape {encoder_tensor}' 41 ) ValueError: Encoder data requires a two dimension Tensor with second dimension should be 0, but get shape (4, 2)
10-27
import mindspore as ms from mindspore import nn from mindquantum import Circuit, Hamiltonian, Simulator, H, RY, RX, X from mindquantum.framework import MQLayer from mindquantum.core.operators import QubitOperator # 设置运行模式 ms.set_context(mode=ms.PYNATIVE_MODE) # ① 编码线路:把经典特征映射到量子态 def build_encoder(num_qubits): circ = Circuit() for i in range(num_qubits): circ.h(i) # 初始叠加 circ.ry(f'x{i}', i) # 使用字符串参数名 'x0', 'x1' return circ # ② 可训练线路(Ansatz) def build_ansatz(num_qubits, depth=2): circ = Circuit() for d in range(depth): for i in range(num_qubits): circ.rx(f't{d}_{i}', i) # 改为字符串参数名,不是 {name: value} # 添加纠缠层 CNOT for i in range(num_qubits - 1): circ.x(i + 1, [i]) # X_{i+1} 控制于 qubit i return circ # 定义量子比特数 n_qubits = 2 encoder = build_encoder(n_qubits) ansatz = build_ansatz(n_qubits, depth=2) pqc = encoder + ansatz # 总电路 # 输出参数名用于调试 print("Encoder params:", encoder.params_name) # 应该是 ['x0', 'x1'] print("Ansatz params:", ansatz.params_name) # 应该是 ['t0_0', 't0_1', 't1_0', 't1_1'] # 定义哈密顿量:测量 Z0 ⊗ Z1 ham = Hamiltonian(QubitOperator('Z0 Z1')) # 创建模拟器并获取梯度算子 sim = Simulator('mqvector', n_qubits) # 注意:v0.11 不支持 encoder_params_name 等参数,全部由参数名自动推断 grad_ops = sim.get_expectation_with_grad( hams=ham, encoder=encoder, ansatz=ansatz, parallel_worker=4 ) # 包装成可训练层 quantum_layer = MQLayer(grad_ops) # 输入数据:每行是一个样本,对应 x0, x1 x = ms.Tensor([ [1.0, 2.0], [2.0, 4.0], [3.0, 6.0], [4.0, 8.0] ], ms.float32) # 前向传播 y = quantum_layer(x) print("输出形状:", y.shape) # (4, 1) print("输出值:\n", y) 针对以上代码在0.11.0的mindquantum中为什么还会报错? TypeError Traceback (most recent call last) Cell In[2], line 46 43 sim = Simulator('mqvector', n_qubits) 45 # 注意:v0.11 不支持 encoder_params_name 等参数,全部由参数名自动推断 ---> 46 grad_ops = sim.get_expectation_with_grad( 47 hams=ham, 48 encoder=encoder, 49 ansatz=ansatz, 50 parallel_worker=4 51 ) 53 # 包装成可训练层 54 quantum_layer = MQLayer(grad_ops) TypeError: Simulator.get_expectation_with_grad() got an unexpected keyword argument 'encoder'
10-27
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值