diff --git a/examples/SAGPool/main.py b/examples/SAGPool/main.py index 8895311e0f729bf572919faf07df50c7921cb545..653d89e622e46b65e167dfda9252712032bcbcb2 100644 --- a/examples/SAGPool/main.py +++ b/examples/SAGPool/main.py @@ -124,8 +124,7 @@ def main(args, train_dataset, val_dataset, test_dataset): break correct = 0. - new_test_program = fluid.Program() - fluid.load(new_test_program, "./save/%s/%s" \ + fluid.load(test_program, "./save/%s/%s" \ % (args.dataset_name, args.save_model), exe) for feed_dict in test_loader: correct_ = exe.run(test_program, diff --git a/examples/citation_benchmark/README.md b/examples/citation_benchmark/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f2abd2a1fc920bc5a32ab4b45b28473566f72481 --- /dev/null +++ b/examples/citation_benchmark/README.md @@ -0,0 +1,62 @@ +# Easy Paper Reproduction for Citation Network (Cora/Pubmed/Citeseer) + + + +This page tries to reproduce all the **Graph Neural Network** paper for Citation Network (Cora/Pubmed/Citeseer), which is the **Hello world** dataset (**small** and **fast**) for graph neural networks. But it's very hard to achieve very high performance. + + + +All datasets are runned with public split of **semi-supervised** settings. And we report the averarge accuracy by running 10 times. + + + +# Experiment Results + +| Model | Cora | Pubmed | Citeseer | Remarks | +| ------------------------------------------------------------ | ------------ | ------------ | ------------ | --------------------------------------------------------- | +| [Vanilla GCN (Kipf 2017)](https://openreview.net/pdf?id=SJU4ayYgl ) | 0.807(0.010) | 0.794(0.003) | 0.710(0.007) | | +| [GAT (Veličković 2017)](https://arxiv.org/pdf/1710.10903.pdf) | 0.834(0.004) | 0.772(0.004) | 0.700(0.006) | | +| [SGC(Wu 2019)](https://arxiv.org/pdf/1902.07153.pdf) | 0.818(0.000) | 0.782(0.000) | 0.708(0.000) | | +| [APPNP (Johannes 2018)](https://arxiv.org/abs/1810.05997) | 0.846(0.003) | 0.803(0.002) | 0.719(0.003) | Almost the same with the results reported in Appendix E. | +| [GCNII (64 Layers, 1500 Epochs, Chen 2020)](https://arxiv.org/pdf/2007.02133.pdf) | 0.846(0.003) | 0.798(0.003) | 0.724(0.006) | | + + + + + +How to run the experiments? + + + +```shell +# Device choose +export CUDA_VISIBLE_DEVICES=0 +# GCN +python train.py --conf config/gcn.yaml --use_cuda --dataset cora +python train.py --conf config/gcn.yaml --use_cuda --dataset pubmed +python train.py --conf config/gcn.yaml --use_cuda --dataset citeseer + + +# GAT +python train.py --conf config/gat.yaml --use_cuda --dataset cora +python train.py --conf config/gat.yaml --use_cuda --dataset pubmed +python train.py --conf config/gat.yaml --use_cuda --dataset citeseer + + +# SGC (Slow version) +python train.py --conf config/sgc.yaml --use_cuda --dataset cora +python train.py --conf config/sgc.yaml --use_cuda --dataset pubmed +python train.py --conf config/sgc.yaml --use_cuda --dataset citeseer + +# APPNP +python train.py --conf config/appnp.yaml --use_cuda --dataset cora +python train.py --conf config/appnp.yaml --use_cuda --dataset pubmed +python train.py --conf config/appnp.yaml --use_cuda --dataset citeseer + +# GCNII (The original code use 1500 epochs.) +python train.py --conf config/gcnii.yaml --use_cuda --dataset cora --epoch 1500 +python train.py --conf config/gcnii.yaml --use_cuda --dataset pubmed --epoch 1500 +python train.py --conf config/gcnii.yaml --use_cuda --dataset citeseer --epoch 1500 +``` + + diff --git a/examples/citation_benchmark/build_model.py b/examples/citation_benchmark/build_model.py new file mode 100644 index 0000000000000000000000000000000000000000..179483d5284a7de18f59455ddfdaf5c742d8e810 --- /dev/null +++ b/examples/citation_benchmark/build_model.py @@ -0,0 +1,43 @@ +import pgl +import model +from pgl import data_loader +import paddle.fluid as fluid +import numpy as np +import time + +def build_model(dataset, config, phase, main_prog): + gw = pgl.graph_wrapper.GraphWrapper( + name="graph", + node_feat=dataset.graph.node_feat_info()) + + GraphModel = getattr(model, config.model_name) + m = GraphModel(config=config, num_class=dataset.num_classes) + logits = m.forward(gw, gw.node_feat["words"], phase) + + # Take the last + node_index = fluid.layers.data( + "node_index", + shape=[None, 1], + dtype="int64", + append_batch_size=False) + node_label = fluid.layers.data( + "node_label", + shape=[None, 1], + dtype="int64", + append_batch_size=False) + + pred = fluid.layers.gather(logits, node_index) + loss, pred = fluid.layers.softmax_with_cross_entropy( + logits=pred, label=node_label, return_softmax=True) + acc = fluid.layers.accuracy(input=pred, label=node_label, k=1) + loss = fluid.layers.mean(loss) + + if phase == "train": + adam = fluid.optimizer.Adam( + learning_rate=config.learning_rate, + regularization=fluid.regularizer.L2DecayRegularizer( + regularization_coeff=config.weight_decay)) + adam.minimize(loss) + return gw, loss, acc + + diff --git a/examples/citation_benchmark/config/appnp.yaml b/examples/citation_benchmark/config/appnp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..5b1b986a46d856d199503caa85dc6d05b0866e5b --- /dev/null +++ b/examples/citation_benchmark/config/appnp.yaml @@ -0,0 +1,9 @@ +model_name: APPNP +k_hop: 10 +alpha: 0.1 +num_layer: 1 +learning_rate: 0.01 +dropout: 0.5 +hidden_size: 64 +weight_decay: 0.0005 +edge_dropout: 0.0 diff --git a/examples/citation_benchmark/config/gat.yaml b/examples/citation_benchmark/config/gat.yaml new file mode 100644 index 0000000000000000000000000000000000000000..9f62aedb1a3891388e16b2667bc556d236c59c9a --- /dev/null +++ b/examples/citation_benchmark/config/gat.yaml @@ -0,0 +1,9 @@ +model_name: GAT +learning_rate: 0.005 +weight_decay: 0.0005 +num_layers: 1 +feat_drop: 0.6 +attn_drop: 0.6 +num_heads: 8 +hidden_size: 8 +edge_dropout: 0.0 diff --git a/examples/citation_benchmark/config/gcn.yaml b/examples/citation_benchmark/config/gcn.yaml new file mode 100644 index 0000000000000000000000000000000000000000..beb9129068e12ad077156d4f030f1c06f1cdbb01 --- /dev/null +++ b/examples/citation_benchmark/config/gcn.yaml @@ -0,0 +1,7 @@ +model_name: GCN +num_layers: 1 +dropout: 0.5 +hidden_size: 16 +learning_rate: 0.01 +weight_decay: 0.0005 +edge_dropout: 0.0 diff --git a/examples/citation_benchmark/config/gcnii.yaml b/examples/citation_benchmark/config/gcnii.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8fc5595f1eeb4965cf8cf5bf3f42cb8a94089e05 --- /dev/null +++ b/examples/citation_benchmark/config/gcnii.yaml @@ -0,0 +1,9 @@ +model_name: GCNII +k_hop: 64 +alpha: 0.1 +num_layer: 1 +learning_rate: 0.01 +dropout: 0.6 +hidden_size: 64 +weight_decay: 0.0005 +edge_dropout: 0.0 diff --git a/examples/citation_benchmark/config/sgc.yaml b/examples/citation_benchmark/config/sgc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2124608fa5533d2b29886f3b63dad973e60e0b5f --- /dev/null +++ b/examples/citation_benchmark/config/sgc.yaml @@ -0,0 +1,5 @@ +model_name: SGC +num_layers: 2 +learning_rate: 0.2 +weight_decay: 0.000005 +feature_pre_normalize: False diff --git a/examples/citation_benchmark/model.py b/examples/citation_benchmark/model.py new file mode 100644 index 0000000000000000000000000000000000000000..6028e0f63a82432d588da5543996d57c90d1ffe1 --- /dev/null +++ b/examples/citation_benchmark/model.py @@ -0,0 +1,193 @@ +import pgl +import paddle.fluid.layers as L +import pgl.layers.conv as conv + +def get_norm(indegree): + float_degree = L.cast(indegree, dtype="float32") + float_degree = L.clamp(float_degree, min=1.0) + norm = L.pow(float_degree, factor=-0.5) + return norm + + +class GCN(object): + """Implement of GCN + """ + def __init__(self, config, num_class): + self.num_class = num_class + self.num_layers = config.get("num_layers", 1) + self.hidden_size = config.get("hidden_size", 64) + self.dropout = config.get("dropout", 0.5) + self.edge_dropout = config.get("edge_dropout", 0.0) + + def forward(self, graph_wrapper, feature, phase): + + for i in range(self.num_layers): + + if phase == "train": + ngw = pgl.sample.edge_drop(graph_wrapper, self.edge_dropout) + norm = get_norm(ngw.indegree()) + else: + ngw = graph_wrapper + norm = graph_wrapper.node_feat["norm"] + + + feature = pgl.layers.gcn(ngw, + feature, + self.hidden_size, + activation="relu", + norm=norm, + name="layer_%s" % i) + + feature = L.dropout( + feature, + self.dropout, + dropout_implementation='upscale_in_train') + + if phase == "train": + ngw = pgl.sample.edge_drop(graph_wrapper, self.edge_dropout) + norm = get_norm(ngw.indegree()) + else: + ngw = graph_wrapper + norm = graph_wrapper.node_feat["norm"] + + feature = conv.gcn(ngw, + feature, + self.num_class, + activation=None, + norm=norm, + name="output") + + return feature + +class GAT(object): + """Implement of GAT""" + def __init__(self, config, num_class): + self.num_class = num_class + self.num_layers = config.get("num_layers", 1) + self.num_heads = config.get("num_heads", 8) + self.hidden_size = config.get("hidden_size", 8) + self.feat_dropout = config.get("feat_drop", 0.6) + self.attn_dropout = config.get("attn_drop", 0.6) + self.edge_dropout = config.get("edge_dropout", 0.0) + + def forward(self, graph_wrapper, feature, phase): + if phase == "train": + edge_dropout = self.edge_dropout + else: + edge_dropout = 0 + + for i in range(self.num_layers): + ngw = pgl.sample.edge_drop(graph_wrapper, edge_dropout) + + feature = conv.gat(ngw, + feature, + self.hidden_size, + activation="elu", + name="gat_layer_%s" % i, + num_heads=self.num_heads, + feat_drop=self.feat_dropout, + attn_drop=self.attn_dropout) + + ngw = pgl.sample.edge_drop(graph_wrapper, edge_dropout) + feature = conv.gat(ngw, + feature, + self.num_class, + num_heads=1, + activation=None, + feat_drop=self.feat_dropout, + attn_drop=self.attn_dropout, + name="output") + return feature + + +class APPNP(object): + """Implement of APPNP""" + def __init__(self, config, num_class): + self.num_class = num_class + self.num_layers = config.get("num_layers", 1) + self.hidden_size = config.get("hidden_size", 64) + self.dropout = config.get("dropout", 0.5) + self.alpha = config.get("alpha", 0.1) + self.k_hop = config.get("k_hop", 10) + self.edge_dropout = config.get("edge_dropout", 0.0) + + def forward(self, graph_wrapper, feature, phase): + if phase == "train": + edge_dropout = self.edge_dropout + else: + edge_dropout = 0 + + for i in range(self.num_layers): + feature = L.dropout( + feature, + self.dropout, + dropout_implementation='upscale_in_train') + feature = L.fc(feature, self.hidden_size, act="relu", name="lin%s" % i) + + feature = L.dropout( + feature, + self.dropout, + dropout_implementation='upscale_in_train') + + feature = L.fc(feature, self.num_class, act=None, name="output") + + feature = conv.appnp(graph_wrapper, + feature=feature, + edge_dropout=edge_dropout, + alpha=self.alpha, + k_hop=self.k_hop) + return feature + +class SGC(object): + """Implement of SGC""" + def __init__(self, config, num_class): + self.num_class = num_class + self.num_layers = config.get("num_layers", 1) + + def forward(self, graph_wrapper, feature, phase): + feature = conv.appnp(graph_wrapper, + feature=feature, + edge_dropout=0, + alpha=0, + k_hop=self.num_layers) + feature.stop_gradient=True + feature = L.fc(feature, self.num_class, act=None, bias_attr=False, name="output") + return feature + + +class GCNII(object): + """Implement of GCNII""" + def __init__(self, config, num_class): + self.num_class = num_class + self.num_layers = config.get("num_layers", 1) + self.hidden_size = config.get("hidden_size", 64) + self.dropout = config.get("dropout", 0.6) + self.alpha = config.get("alpha", 0.1) + self.lambda_l = config.get("lambda_l", 0.5) + self.k_hop = config.get("k_hop", 64) + self.edge_dropout = config.get("edge_dropout", 0.0) + + def forward(self, graph_wrapper, feature, phase): + if phase == "train": + edge_dropout = self.edge_dropout + else: + edge_dropout = 0 + + for i in range(self.num_layers): + feature = L.fc(feature, self.hidden_size, act="relu", name="lin%s" % i) + feature = L.dropout( + feature, + self.dropout, + dropout_implementation='upscale_in_train') + + feature = conv.gcnii(graph_wrapper, + feature=feature, + name="gcnii", + activation="relu", + lambda_l=self.lambda_l, + alpha=self.alpha, + dropout=self.dropout, + k_hop=self.k_hop) + + feature = L.fc(feature, self.num_class, act=None, name="output") + return feature diff --git a/examples/citation_benchmark/train.py b/examples/citation_benchmark/train.py new file mode 100644 index 0000000000000000000000000000000000000000..9e96fdadd8e47185a53a8424aa0f1abddd31a72e --- /dev/null +++ b/examples/citation_benchmark/train.py @@ -0,0 +1,152 @@ +# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import pgl +import model# import LabelGraphGCN +from pgl import data_loader +from pgl.utils.logger import log +import paddle.fluid as fluid +import numpy as np +import time +import argparse +from build_model import build_model +import yaml +from easydict import EasyDict as edict +import tqdm + +def normalize(feat): + return feat / np.maximum(np.sum(feat, -1, keepdims=True), 1) + + +def load(name, normalized_feature=True): + if name == 'cora': + dataset = data_loader.CoraDataset() + elif name == "pubmed": + dataset = data_loader.CitationDataset("pubmed", symmetry_edges=True) + elif name == "citeseer": + dataset = data_loader.CitationDataset("citeseer", symmetry_edges=True) + else: + raise ValueError(name + " dataset doesn't exists") + + indegree = dataset.graph.indegree() + norm = np.maximum(indegree.astype("float32"), 1) + norm = np.power(norm, -0.5) + dataset.graph.node_feat["norm"] = np.expand_dims(norm, -1) + dataset.graph.node_feat["words"] = normalize(dataset.graph.node_feat["words"]) + return dataset + + +def main(args, config): + dataset = load(args.dataset, args.feature_pre_normalize) + place = fluid.CUDAPlace(0) if args.use_cuda else fluid.CPUPlace() + train_program = fluid.default_main_program() + startup_program = fluid.default_startup_program() + with fluid.program_guard(train_program, startup_program): + with fluid.unique_name.guard(): + gw, loss, acc = build_model(dataset, + config=config, + phase="train", + main_prog=train_program) + + test_program = fluid.Program() + with fluid.program_guard(test_program, startup_program): + with fluid.unique_name.guard(): + _gw, v_loss, v_acc = build_model(dataset, + config=config, + phase="test", + main_prog=test_program) + + test_program = test_program.clone(for_test=True) + + exe = fluid.Executor(place) + + + train_index = dataset.train_index + train_label = np.expand_dims(dataset.y[train_index], -1) + train_index = np.expand_dims(train_index, -1) + + val_index = dataset.val_index + val_label = np.expand_dims(dataset.y[val_index], -1) + val_index = np.expand_dims(val_index, -1) + + test_index = dataset.test_index + test_label = np.expand_dims(dataset.y[test_index], -1) + test_index = np.expand_dims(test_index, -1) + + dur = [] + + # Feed data + feed_dict = gw.to_feed(dataset.graph) + + + best_test = [] + + for run in range(args.runs): + exe.run(startup_program) + cal_val_acc = [] + cal_test_acc = [] + cal_val_loss = [] + cal_test_loss = [] + for epoch in tqdm.tqdm(range(args.epoch)): + feed_dict["node_index"] = np.array(train_index, dtype="int64") + feed_dict["node_label"] = np.array(train_label, dtype="int64") + train_loss, train_acc = exe.run(train_program, + feed=feed_dict, + fetch_list=[loss, acc], + return_numpy=True) + + + feed_dict["node_index"] = np.array(val_index, dtype="int64") + feed_dict["node_label"] = np.array(val_label, dtype="int64") + val_loss, val_acc = exe.run(test_program, + feed=feed_dict, + fetch_list=[v_loss, v_acc], + return_numpy=True) + + cal_val_acc.append(val_acc[0]) + cal_val_loss.append(val_loss[0]) + + feed_dict["node_index"] = np.array(test_index, dtype="int64") + feed_dict["node_label"] = np.array(test_label, dtype="int64") + test_loss, test_acc = exe.run(test_program, + feed=feed_dict, + fetch_list=[v_loss, v_acc], + return_numpy=True) + + cal_test_acc.append(test_acc[0]) + cal_test_loss.append(test_loss[0]) + + + log.info("Runs %s: Model: %s Best Test Accuracy: %f" % (run, config.model_name, + cal_test_acc[np.argmin(cal_val_loss)])) + + best_test.append(cal_test_acc[np.argmin(cal_val_loss)]) + log.info("Dataset: %s Best Test Accuracy: %f ( stddev: %f )" % (args.dataset, np.mean(best_test), np.std(best_test))) + print("Dataset: %s Best Test Accuracy: %f ( stddev: %f )" % (args.dataset, np.mean(best_test), np.std(best_test))) + + + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Benchmarking Citation Network') + parser.add_argument( + "--dataset", type=str, default="cora", help="dataset (cora, pubmed)") + parser.add_argument("--use_cuda", action='store_true', help="use_cuda") + parser.add_argument("--conf", type=str, help="config file for models") + parser.add_argument("--epoch", type=int, default=200, help="Epoch") + parser.add_argument("--runs", type=int, default=10, help="runs") + parser.add_argument("--feature_pre_normalize", type=bool, default=True, help="pre_normalize feature") + args = parser.parse_args() + config = edict(yaml.load(open(args.conf), Loader=yaml.FullLoader)) + log.info(args) + main(args, config) diff --git a/examples/erniesage/README.en.md b/examples/erniesage/README.en.md index 5933b9576bcc882de5014a6d09e5ef09107fce19..c21b2dc144f05882caa7749785c215dd917d844e 100644 --- a/examples/erniesage/README.en.md +++ b/examples/erniesage/README.en.md @@ -49,6 +49,8 @@ sh local_run.sh config/enriesage_v1_gpu.yaml sh local_run.sh config/enriesage_v1_cpu.yaml ``` +**NOTE**: To help users better understand the ERNIESage Model, we provide a running example in Baidu AIStudio. Please visit here: https://aistudio.baidu.com/aistudio/projectdetail/667443. + ## Hyperparamters - learner_type: `gpu` or `cpu`; gpu use fleet Collective mode, cpu use fleet Transpiler mode. diff --git a/examples/erniesage/README.md b/examples/erniesage/README.md index 78004852b9aa1f95b372f06d4104e7d65118f6e7..7ae48ba7d2ce763a327632c2a494c10f82151a90 100644 --- a/examples/erniesage/README.md +++ b/examples/erniesage/README.md @@ -50,6 +50,8 @@ sh local_run.sh config/erniesage_v2_gpu.yaml sh local_run.sh config/erniesage_v2_cpu.yaml ``` +**NOTE**:为了方便用户们学习使用ERNIESage,我们在百度AIStudio中提供了可以直接运行的ERNIESage实例,详情可见:https://aistudio.baidu.com/aistudio/projectdetail/667443. + ## Hyperparamters - learner_type: `gpu` or `cpu`; gpu 使用fleet Collective 模式, cpu 使用fleet Transpiler 模式. diff --git a/examples/erniesage/config/erniesage_v1_gpu.yaml b/examples/erniesage/config/erniesage_link_predict.yaml similarity index 77% rename from examples/erniesage/config/erniesage_v1_gpu.yaml rename to examples/erniesage/config/erniesage_link_predict.yaml index 7b883fe3fa06332cf196d5142c40acaee8b98259..e9ea76eca667aa3ad210a2ab44839013fc97ade7 100644 --- a/examples/erniesage/config/erniesage_v1_gpu.yaml +++ b/examples/erniesage/config/erniesage_link_predict.yaml @@ -1,27 +1,30 @@ # Global Enviroment Settings # # trainer config ------ +task: "link_predict" learner_type: "gpu" optimizer_type: "adam" lr: 0.00005 batch_size: 32 CPU_NUM: 10 -epoch: 20 +epoch: 3 log_per_step: 1 -save_per_step: 100 +save_per_step: 1000 output_path: "./output" ckpt_path: "./ernie_base_ckpt" # data config ------ -input_data: "./data.txt" -graph_path: "./workdir" +train_data: "./example_data/link_predict/graph_data.txt" +graph_data: "./example_data/link_predict/train_data.txt" + +graph_work_path: "./workdir" sample_workers: 1 use_pyreader: true input_type: "text" # model config ------ samples: [10] -model_type: "ErnieSageModelV1" +model_type: "ERNIESageV2" layer_type: "graphsage_sum" max_seqlen: 40 @@ -30,8 +33,9 @@ num_layers: 1 hidden_size: 128 final_fc: true final_l2_norm: true -loss_type: "hinge" -margin: 0.3 +loss_type: "global_hinge" +margin: 0.1 +neg_type: "batch_neg" # infer config ------ infer_model: "./output/last" diff --git a/examples/erniesage/config/erniesage_v2_gpu.yaml b/examples/erniesage/config/erniesage_node_classfication.yaml similarity index 72% rename from examples/erniesage/config/erniesage_v2_gpu.yaml rename to examples/erniesage/config/erniesage_node_classfication.yaml index 7a9b4afa380904463b2b57e0944c3c29a14c77ff..2ceb4ff15d888304d9b3d86a9ac4c8e93f31eb14 100644 --- a/examples/erniesage/config/erniesage_v2_gpu.yaml +++ b/examples/erniesage/config/erniesage_node_classfication.yaml @@ -1,27 +1,32 @@ # Global Enviroment Settings # # trainer config ------ +task: "node_classification" learner_type: "gpu" optimizer_type: "adam" lr: 0.00005 batch_size: 32 CPU_NUM: 10 epoch: 3 -log_per_step: 10 +log_per_step: 1 save_per_step: 1000 output_path: "./output" ckpt_path: "./ernie_base_ckpt" # data config ------ -input_data: "./data.txt" -graph_path: "./workdir" +graph_data: "./example_data/node_classification/graph_data.txt" +train_data: "./example_data/node_classification/train_data.txt" + +graph_work_path: "./workdir" sample_workers: 1 use_pyreader: true input_type: "text" # model config ------ +num_label: 10 samples: [10] -model_type: "ErnieSageModelV2" +model_type: "ERNIESageV2" +layer_type: "graphsage_sum" max_seqlen: 40 @@ -29,8 +34,8 @@ num_layers: 1 hidden_size: 128 final_fc: true final_l2_norm: true -loss_type: "hinge" -margin: 0.3 +loss_type: "softmax_with_cross_entropy" +margin: 0.1 neg_type: "batch_neg" # infer config ------ @@ -49,7 +54,7 @@ ernie_config: max_position_embeddings: 513 num_attention_heads: 12 num_hidden_layers: 12 - sent_type_vocab_size: 2 + sent_type_vocab_size: 4 task_type_vocab_size: 3 vocab_size: 18000 use_task_id: false diff --git a/examples/erniesage/config/erniesage_v1_cpu.yaml b/examples/erniesage/config/erniesage_v1_cpu.yaml deleted file mode 100644 index 1f7e5eddc0b6bda5f8c3377c7320429d16b0718b..0000000000000000000000000000000000000000 --- a/examples/erniesage/config/erniesage_v1_cpu.yaml +++ /dev/null @@ -1,56 +0,0 @@ -# Global Enviroment Settings -# -# trainer config ------ -learner_type: "cpu" -optimizer_type: "adam" -lr: 0.00005 -batch_size: 2 -CPU_NUM: 10 -epoch: 20 -log_per_step: 1 -save_per_step: 100 -output_path: "./output" -ckpt_path: "./ernie_base_ckpt" - -# data config ------ -input_data: "./data.txt" -graph_path: "./workdir" -sample_workers: 1 -use_pyreader: true -input_type: "text" - -# model config ------ -samples: [10] -model_type: "ErnieSageModelV1" -layer_type: "graphsage_sum" - -max_seqlen: 40 - -num_layers: 1 -hidden_size: 128 -final_fc: true -final_l2_norm: true -loss_type: "hinge" -margin: 0.3 - -# infer config ------ -infer_model: "./output/last" -infer_batch_size: 128 - -# ernie config ------ -encoding: "utf8" -ernie_vocab_file: "./vocab.txt" -ernie_config: - attention_probs_dropout_prob: 0.1 - hidden_act: "relu" - hidden_dropout_prob: 0.1 - hidden_size: 768 - initializer_range: 0.02 - max_position_embeddings: 513 - num_attention_heads: 12 - num_hidden_layers: 12 - sent_type_vocab_size: 4 - task_type_vocab_size: 3 - vocab_size: 18000 - use_task_id: false - use_fp16: false diff --git a/examples/erniesage/config/erniesage_v2_cpu.yaml b/examples/erniesage/config/erniesage_v2_cpu.yaml deleted file mode 100644 index 77b78052122448dd8ced0fe8518c8ae1de858a32..0000000000000000000000000000000000000000 --- a/examples/erniesage/config/erniesage_v2_cpu.yaml +++ /dev/null @@ -1,56 +0,0 @@ -# Global Enviroment Settings -# -# trainer config ------ -learner_type: "cpu" -optimizer_type: "adam" -lr: 0.00005 -batch_size: 4 -CPU_NUM: 16 -epoch: 3 -log_per_step: 1 -save_per_step: 100 -output_path: "./output" -ckpt_path: "./ernie_base_ckpt" - -# data config ------ -input_data: "./data.txt" -graph_path: "./workdir" -sample_workers: 1 -use_pyreader: true -input_type: "text" - -# model config ------ -samples: [10] -model_type: "ErnieSageModelV2" - -max_seqlen: 40 - -num_layers: 1 -hidden_size: 128 -final_fc: true -final_l2_norm: true -loss_type: "hinge" -margin: 0.3 -neg_type: "batch_neg" - -# infer config ------ -infer_model: "./output/last" -infer_batch_size: 128 - -# ernie config ------ -encoding: "utf8" -ernie_vocab_file: "./vocab.txt" -ernie_config: - attention_probs_dropout_prob: 0.1 - hidden_act: "relu" - hidden_dropout_prob: 0.1 - hidden_size: 768 - initializer_range: 0.02 - max_position_embeddings: 513 - num_attention_heads: 12 - num_hidden_layers: 12 - sent_type_vocab_size: 2 - task_type_vocab_size: 3 - vocab_size: 18000 - use_task_id: false - use_fp16: false diff --git a/examples/erniesage/config/erniesage_v3_cpu.yaml b/examples/erniesage/config/erniesage_v3_cpu.yaml deleted file mode 100644 index 2172a26133c9718358163f4495133720dbeb9eff..0000000000000000000000000000000000000000 --- a/examples/erniesage/config/erniesage_v3_cpu.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# Global Enviroment Settings -# -# trainer config ------ -learner_type: "cpu" -optimizer_type: "adam" -lr: 0.00005 -batch_size: 2 -CPU_NUM: 10 -epoch: 20 -log_per_step: 1 -save_per_step: 100 -output_path: "./output" -ckpt_path: "./ernie_base_ckpt" - -# data config ------ -input_data: "./data.txt" -graph_path: "./workdir" -sample_workers: 1 -use_pyreader: true -input_type: "text" - -# model config ------ -samples: [10] -model_type: "ErnieSageModelV3" - -max_seqlen: 40 - -num_layers: 1 -hidden_size: 128 -final_fc: true -final_l2_norm: true -loss_type: "hinge" -margin: 0.3 - -# infer config ------ -infer_model: "./output/last" -infer_batch_size: 128 - -# ernie config ------ -encoding: "utf8" -ernie_vocab_file: "./vocab.txt" -ernie_config: - attention_probs_dropout_prob: 0.1 - hidden_act: "relu" - hidden_dropout_prob: 0.1 - hidden_size: 768 - initializer_range: 0.02 - max_position_embeddings: 513 - num_attention_heads: 12 - num_hidden_layers: 12 - sent_type_vocab_size: 4 - task_type_vocab_size: 3 - vocab_size: 18000 - use_task_id: false - use_fp16: false diff --git a/examples/erniesage/config/erniesage_v3_gpu.yaml b/examples/erniesage/config/erniesage_v3_gpu.yaml deleted file mode 100644 index e53ab33c41f8b8760e75d602bf1b8ed9f1735fb8..0000000000000000000000000000000000000000 --- a/examples/erniesage/config/erniesage_v3_gpu.yaml +++ /dev/null @@ -1,55 +0,0 @@ -# Global Enviroment Settings -# -# trainer config ------ -learner_type: "gpu" -optimizer_type: "adam" -lr: 0.00005 -batch_size: 32 -CPU_NUM: 10 -epoch: 20 -log_per_step: 1 -save_per_step: 100 -output_path: "./output" -ckpt_path: "./ernie_base_ckpt" - -# data config ------ -input_data: "./data.txt" -graph_path: "./workdir" -sample_workers: 1 -use_pyreader: true -input_type: "text" - -# model config ------ -samples: [10] -model_type: "ErnieSageModelV3" - -max_seqlen: 40 - -num_layers: 1 -hidden_size: 128 -final_fc: true -final_l2_norm: true -loss_type: "hinge" -margin: 0.3 - -# infer config ------ -infer_model: "./output/last" -infer_batch_size: 128 - -# ernie config ------ -encoding: "utf8" -ernie_vocab_file: "./vocab.txt" -ernie_config: - attention_probs_dropout_prob: 0.1 - hidden_act: "relu" - hidden_dropout_prob: 0.1 - hidden_size: 768 - initializer_range: 0.02 - max_position_embeddings: 513 - num_attention_heads: 12 - num_hidden_layers: 12 - sent_type_vocab_size: 4 - task_type_vocab_size: 3 - vocab_size: 18000 - use_task_id: false - use_fp16: false diff --git a/examples/erniesage/dataset/graph_reader.py b/examples/erniesage/dataset/graph_reader.py index c811b56b1273377d476d8b6f0e53ac23ffdefca8..094ff7b54d6976bee13c5c1596a7bc9db3a72cf4 100644 --- a/examples/erniesage/dataset/graph_reader.py +++ b/examples/erniesage/dataset/graph_reader.py @@ -74,17 +74,15 @@ class GraphGenerator(BaseDataGenerator): batch_dst = np.array(batch_dst, dtype="int64") if self.neg_type == "batch_neg": - neg_shape = [1] + batch_neg = batch_dst else: + # TODO user define shape of neg_sample neg_shape = batch_dst.shape - sampled_batch_neg = alias_sample(neg_shape, self.alias, self.events) - - if len(batch_neg) > 0: + sampled_batch_neg = alias_sample(neg_shape, self.alias, self.events) batch_neg = np.concatenate([batch_neg, sampled_batch_neg], 0) - else: - batch_neg = sampled_batch_neg if self.phase == "train": + # TODO user define ignore edges or not #ignore_edges = np.concatenate([np.stack([batch_src, batch_dst], 1), np.stack([batch_dst, batch_src], 1)], 0) ignore_edges = set() else: @@ -92,7 +90,8 @@ class GraphGenerator(BaseDataGenerator): nodes = np.unique(np.concatenate([batch_src, batch_dst, batch_neg], 0)) subgraphs = graphsage_sample(self.graph, nodes, self.samples, ignore_edges=ignore_edges) - #subgraphs[0].reindex_to_parrent_nodes(subgraphs[0].nodes) + subgraphs[0].node_feat["index"] = subgraphs[0].reindex_to_parrent_nodes(subgraphs[0].nodes).astype(np.int64) + subgraphs[0].node_feat["term_ids"] = self.term_ids[subgraphs[0].node_feat["index"]].astype(np.int64) feed_dict = {} for i in range(self.num_layers): feed_dict.update(self.graph_wrappers[i].to_feed(subgraphs[i])) @@ -103,9 +102,11 @@ class GraphGenerator(BaseDataGenerator): sub_neg_idx = subgraphs[0].reindex_from_parrent_nodes(batch_neg) feed_dict["user_index"] = np.array(sub_src_idx, dtype="int64") - feed_dict["item_index"] = np.array(sub_dst_idx, dtype="int64") + feed_dict["pos_item_index"] = np.array(sub_dst_idx, dtype="int64") feed_dict["neg_item_index"] = np.array(sub_neg_idx, dtype="int64") - feed_dict["term_ids"] = self.term_ids[subgraphs[0].node_feat["index"]].astype(np.int64) + + feed_dict["user_real_index"] = np.array(batch_src, dtype="int64") + feed_dict["pos_item_real_index"] = np.array(batch_dst, dtype="int64") return feed_dict def __call__(self): @@ -124,3 +125,37 @@ class GraphGenerator(BaseDataGenerator): +class NodeClassificationGenerator(GraphGenerator): + def batch_fn(self, batch_ex): + # batch_ex = [ + # (node, label), + # (node, label), + # ] + # + batch_node = [] + batch_label = [] + for batch in batch_ex: + batch_node.append(batch[0]) + batch_label.append(batch[1]) + + if len(batch_node) != self.batch_size: + if self.phase == "train": + return None #Skip + + batch_node = np.array(batch_node, dtype="int64") + batch_label = np.array(batch_label, dtype="int64") + + subgraphs = graphsage_sample(self.graph, batch_node, self.samples) + subgraphs[0].node_feat["index"] = subgraphs[0].reindex_to_parrent_nodes(subgraphs[0].nodes).astype(np.int64) + subgraphs[0].node_feat["term_ids"] = self.term_ids[subgraphs[0].node_feat["index"]].astype(np.int64) + feed_dict = {} + for i in range(self.num_layers): + feed_dict.update(self.graph_wrappers[i].to_feed(subgraphs[i])) + + # only reindex from first subgraph + sub_node_idx = subgraphs[0].reindex_from_parrent_nodes(batch_node) + + feed_dict["node_index"] = np.array(sub_node_idx, dtype="int64") + feed_dict["node_real_index"] = np.array(batch_node, dtype="int64") + feed_dict["label"] = np.array(batch_label, dtype="int64") + return feed_dict diff --git a/examples/erniesage/data.txt b/examples/erniesage/example_data/link_predict/graph_data.txt similarity index 100% rename from examples/erniesage/data.txt rename to examples/erniesage/example_data/link_predict/graph_data.txt diff --git a/examples/erniesage/example_data/link_predict/train_data.txt b/examples/erniesage/example_data/link_predict/train_data.txt new file mode 100644 index 0000000000000000000000000000000000000000..e9aead6c89fa2fdbed64e5dada352106a8deb349 --- /dev/null +++ b/examples/erniesage/example_data/link_predict/train_data.txt @@ -0,0 +1,1000 @@ +黑缘粗角肖叶甲触角有多大? 体长卵形,棕红色;鞘翅棕黄或淡棕色,外缘和中缝黑色或黑褐色;触角基部3、4节棕黄,余节棕色。 +黑缘粗角肖叶甲触角有多大? 头部刻点粗大,分布不均匀,头顶刻点十分稀疏;触角基部的内侧有一个三角形光瘤,唇基前缘呈半圆形凹切。 +黑缘粗角肖叶甲触角有多大? 触角近于体长之半,第1节粗大,棒状,第2节短,椭圆形,3、4两节细长,稍短于第5节,第5节基细端粗,末端6节明显粗大。 +黑缘粗角肖叶甲触角有多大? 前胸背板横宽,宽约为长的两倍,侧缘敞出较宽,圆形,敞边与盘区之间有一条细纵沟;盘区刻点相当密,前半部刻点较大于后半部。 +黑缘粗角肖叶甲触角有多大? 小盾片舌形,光亮,末端圆钝。 +黑缘粗角肖叶甲触角有多大? 鞘翅刻点粗大,不规则排列,肩部之后的刻点更为粗大,具皱褶,近中缝的刻点较小,略呈纵行排列。 +黑缘粗角肖叶甲触角有多大? 前胸前侧片前缘直;前胸后侧片具粗大刻点。 +黑缘粗角肖叶甲触角有多大? 足粗壮;胫节具纵脊,外端角向外延伸,呈弯角状;爪具附齿。 +暮光闪闪的姐姐是谁? 暮光闪闪是一匹雌性独角兽,后来在神秘魔法的影响下变成了空角兽(公主),她是《我的小马驹:友情是魔法》(英文名:My Little Pony:Friendship is Magic)中的主角之一。 +暮光闪闪的姐姐是谁? 她是银甲闪闪(Shining Armor)的妹妹,同时也是韵律公主(Princess Cadance)的小姑子。 +暮光闪闪的姐姐是谁? 在该系列中,她与最好的朋友与助手斯派克(Spike)一起生活在小马镇(Ponyville)的金橡图书馆(Golden Oak Library),研究友谊的魔法。 +暮光闪闪的姐姐是谁? 在暮光闪闪成为天角兽之前(即S3E13前),常常给塞拉丝蒂娅公主(Princess Celestia)关于友谊的报告。[1] +暮光闪闪的姐姐是谁? 《我的小马驹:友谊是魔法》(英文名称:My Little Pony:Friendship is Magic)(简称MLP) +暮光闪闪的姐姐是谁? 动画讲述了一只名叫做暮光闪闪(Twilight Sparkle)的独角兽(在SE3E13 +暮光闪闪的姐姐是谁? My Little Pony:Friendship is Magic[2] +暮光闪闪的姐姐是谁? 后成为了天角兽),执行她的导师塞拉斯蒂娅公主(PrincessCelestia)的任务,在小马镇(Ponyville)学习关于友谊的知识。 +暮光闪闪的姐姐是谁? 她与另外五只小马,苹果杰克(Applejack)、瑞瑞(Rarity)、云宝黛西(Rainbow Dash)、小蝶(Fluttershy)与萍琪派(Pinkie Pie),成为了最要好的朋友。 +暮光闪闪的姐姐是谁? 每匹小马都分别代表了协律精华的6个元素:诚实,慷慨,忠诚,善良,欢笑,魔法,各自扮演着属于自己的重要角色。 +暮光闪闪的姐姐是谁? 此后,暮光闪闪(Twilight Sparkle)便与她认识的新朋友们开始了有趣的日常生活。 +暮光闪闪的姐姐是谁? 在动画中,随时可见她们在小马镇(Ponyville)的种种冒险、奇遇、日常等等。 +暮光闪闪的姐姐是谁? 同时,也在她们之间的互动和冲突中,寻找着最适合最合理的完美解决方案。 +暮光闪闪的姐姐是谁? “尽管小马国并不太平,六位主角之间也常常有这样那样的问题,但是他们之间的真情对待,使得这个童话世界已经成为不少人心中理想的世外桃源。” +暮光闪闪的姐姐是谁? 暮光闪闪在剧情刚开始的时候生活在中心城(Canterlot),后来在夏日 +暮光闪闪的姐姐是谁? 暮光闪闪与斯派克(Spike) +暮光闪闪的姐姐是谁? 庆典的时候被塞拉丝蒂娅公主派遣到小马镇执行检查夏日庆典的准备工作的任务。 +暮光闪闪的姐姐是谁? 在小马镇交到了朋友(即其余5个主角),并和她们一起使用协律精华(Elements of harmony)击败了梦魇之月。 +暮光闪闪的姐姐是谁? 并在塞拉丝蒂亚公主的许可下,留在小马镇继续研究友谊的魔法。 +暮光闪闪的姐姐是谁? 暮光闪闪的知识基本来自于书本,并且她相当不相信书本以外的“迷信”,因为这样她在S1E15里吃足了苦头。 +暮光闪闪的姐姐是谁? 在这之后,她也开始慢慢学会相信一些书本以外的东西。 +暮光闪闪的姐姐是谁? 暮光闪闪热爱学习,并且学习成绩相当好(从她可以立刻算出 +暮光闪闪的姐姐是谁? 的结果可以看 +暮光闪闪的姐姐是谁? 暮光闪闪的原型 +暮光闪闪的姐姐是谁? 出)。 +暮光闪闪的姐姐是谁? 相当敬爱自己的老师塞拉丝蒂亚公主甚至到了精神失常的地步。 +暮光闪闪的姐姐是谁? 在第二季中,曾因为无法交出关于友谊的报告而做出了疯狂的行为,后来被塞拉丝蒂亚公主制止,在这之后,暮光闪闪得到了塞拉丝蒂亚公主“不用定期交友谊报告”的许可。 +暮光闪闪的姐姐是谁? 于是暮光闪闪在后面的剧情中的主角地位越来越得不到明显的体现。 +暮光闪闪的姐姐是谁? 在SE3E13中,因为破解了白胡子星璇留下的神秘魔法而被加冕成为了天角兽(公主),被尊称为“闪闪公主”。 +暮光闪闪的姐姐是谁? 当小星座熊在小马镇引起恐慌的时候,暮光闪闪运用了自身强大的魔法将水库举起后装满牛奶,用牛奶将小星座熊安抚后,连着巨型奶瓶和小星座熊一起送回了小星座熊居住的山洞。 +我想知道红谷十二庭有哪些金融机构? 红谷十二庭是由汪氏集团旗下子公司江西尤金房地产开发有限公司携手城发投资共同开发的精品社区,项目占地面积约380亩,总建筑面积约41万平方米。 +我想知道红谷十二庭有哪些金融机构? 项目以建设人文型、生态型居住环境为规划目标;创造一个布局合理、功能齐全、交通便捷、绿意盎然、生活方便,有文化内涵的居住区。 +我想知道红谷十二庭有哪些金融机构? 金融机构:工商银行、建设银行、农业银行、中国银行红谷滩支行、商业银行红谷滩支行等 +我想知道红谷十二庭有哪些金融机构? 周边公园:沿乌砂河50米宽绿化带、乌砂河水岸公园、秋水广场、赣江市民公园 +我想知道红谷十二庭有哪些金融机构? 周边医院:新建县人民医院、开心人药店、中寰医院 +我想知道红谷十二庭有哪些金融机构? 周边学校:育新小学红谷滩校区、南师附小红谷滩校区、实验小学红谷滩校区中学:南昌二中红谷滩校区、南昌五中、新建二中、竞秀贵族学校 +我想知道红谷十二庭有哪些金融机构? 周边公共交通:112、204、211、219、222、227、238、501等20多辆公交车在本项目社区门前停靠 +我想知道红谷十二庭有哪些金融机构? 红谷十二庭处在南昌一江两城中的西城中心,位属红谷滩CBD文化公园中心——马兰圩中心组团,红谷滩中心区、红角洲、新建县三区交汇处,南临南期友好路、东接红谷滩中心区、西靠乌砂河水岸公园(50米宽,1000米长)。 +我想知道红谷十二庭有哪些金融机构? 交通便捷,景观资源丰富,生活配套设施齐全,出则繁华,入则幽静,是现代人居的理想地段。 +我想知道红谷十二庭有哪些金融机构? 红谷十二庭户型图 +苏琳最开始进入智通实业是担任什么职位? 现任广东智通人才连锁股份有限公司总裁,清华大学高级工商管理硕士。 +苏琳最开始进入智通实业是担任什么职位? 1994年,加入智通实业,从总经理秘书做起。 +苏琳最开始进入智通实业是担任什么职位? 1995年,智通实业决定进入人才服务行业,被启用去负责新公司的筹建及运营工作,在苏琳的努力下,智通人才智力开发有限公司成立。 +苏琳最开始进入智通实业是担任什么职位? 2003年,面对同城对手的激烈竞争,苏琳冷静对待,领导智通先后接管、并购了同城的腾龙、安达盛人才市场,,“品牌运作,连锁经营,差异制胜”成为苏琳屡屡制胜的法宝。 +苏琳最开始进入智通实业是担任什么职位? 2006年,苏琳先是将智通人才升级为“东莞市智通人才连锁有限公司”,一举成为广东省人才市场目前惟一的连锁机构,随后在东莞同时开设长安、松山湖、清溪等镇区分部,至此智通在东莞共有6个分部。 +苏琳最开始进入智通实业是担任什么职位? 一番大刀阔斧完成东莞布局后,苏琳确定下一个更为高远的目标——进军珠三角,向全国发展连锁机构。 +苏琳最开始进入智通实业是担任什么职位? 到2011年末,苏琳领导的智通人才已在珠三角的东莞、佛山、江门、中山等地,长三角的南京、宁波、合肥等地,中西部的南昌、长沙、武汉、重庆、西安等地设立了20多家连锁经营网点。 +苏琳最开始进入智通实业是担任什么职位? 除了财务副总裁之外,苏琳是智通人才核心管理高层当中唯一的女性,不管是要约采访的记者还是刚刚加入智通的员工,见到苏琳的第一面,都会有一种惊艳的感觉,“一位女企业家居然非常美丽和时尚?!” +苏琳最开始进入智通实业是担任什么职位? 智通管理高层的另外6位男性成员,有一次同时接受一家知名媒体采访时,共同表达了对自己老板的“爱慕”之情,苏琳听后莞尔一笑,指着在座的这几位高层说道“其实,我更爱他们!” +苏琳最开始进入智通实业是担任什么职位? 这种具有独特领导魅力的表述让这位记者唏嘘不已,同时由这样的一个细节让他感受到了智通管理团队的协作力量。 +谁知道黄沙中心小学的邮政编码是多少? 学校于1954年始建于棕树湾村,当时借用一间民房做教室,取名为“黄沙小学”,只有教师1人,学生8人。 +谁知道黄沙中心小学的邮政编码是多少? 1958年在大跃进精神的指导下,实行大集体,全乡集中办学,发展到12个班,300多学生,20名教职工。 +谁知道黄沙中心小学的邮政编码是多少? 1959年解散。 +谁知道黄沙中心小学的邮政编码是多少? 1959年下半年,在上级的扶持下,建了6间木房,搬到1960年学校所在地,有6名教师,3个班,60名学生。 +谁知道黄沙中心小学的邮政编码是多少? 1968年,开始招收一个初中班,“黄沙小学”改名为 “附小”。 +谁知道黄沙中心小学的邮政编码是多少? 当时已发展到5个班,8名教师,110多名学生。 +谁知道黄沙中心小学的邮政编码是多少? 增建土木结构教室两间。 +谁知道黄沙中心小学的邮政编码是多少? 1986年,初中、小学分开办学。 +谁知道黄沙中心小学的邮政编码是多少? 增建部分教师宿舍和教室,办学条件稍有改善,学校初具规模。 +谁知道黄沙中心小学的邮政编码是多少? 1996年,我校在市、县领导及希望工程主管部门的关怀下,决定改为“黄沙希望小学”并拨款32万元,新建一栋4层,12间教室的教学楼,教学条件大有改善。 +谁知道黄沙中心小学的邮政编码是多少? 当时发展到10个班,学生300多人,教职工19人,小学高级教师3人,一级教师7人,二级教师9人。 +谁知道黄沙中心小学的邮政编码是多少? 2003年下半年由于农村教育体制改革,撤销教育组,更名为“黄沙中心小学”。 +谁知道黄沙中心小学的邮政编码是多少? 学校现有在校生177人(含学前42人),设有学前至六年级共7个教学班。 +谁知道黄沙中心小学的邮政编码是多少? 有教师19人,其中大专以上学历11人,中师6人;小学高级教师14人,一级教师5人。 +谁知道黄沙中心小学的邮政编码是多少? 学校校园占地面积2050平方米,生均达15.29平方米,校舍建筑面积1645平方米,生均12.27平方米;设有教师办公室、自然实验、电教室(合二为一)、微机室、图书阅览室(合二为一)、体育室、广播室、少先队活动室。 +谁知道黄沙中心小学的邮政编码是多少? 广西壮族自治区桂林市临桂县黄沙瑶族乡黄沙街 邮编:541113[1] +伊藤实华的职业是什么? 伊藤实华(1984年3月25日-)是日本的女性声优。 +伊藤实华的职业是什么? THREE TREE所属,东京都出身,身长149cm,体重39kg,血型AB型。 +伊藤实华的职业是什么? ポルノグラフィティのLION(森男) +伊藤实华的职业是什么? 2000年 +伊藤实华的职业是什么? 犬夜叉(枫(少女时代)) +伊藤实华的职业是什么? 幻影死神(西亚梨沙) +伊藤实华的职业是什么? 2001年 +伊藤实华的职业是什么? NOIR(ロザリー) +伊藤实华的职业是什么? 2002年 +伊藤实华的职业是什么? 水瓶战记(柠檬) +伊藤实华的职业是什么? 返乡战士(エイファ) +伊藤实华的职业是什么? 2003年 +伊藤实华的职业是什么? 奇诺之旅(女子A(悲しい国)) +伊藤实华的职业是什么? 2004年 +伊藤实华的职业是什么? 爱你宝贝(坂下ミキ) +伊藤实华的职业是什么? Get Ride! アムドライバー(イヴァン・ニルギース幼少期) +伊藤实华的职业是什么? スクールランブル(花井春树(幼少时代)) +伊藤实华的职业是什么? 2005年 +伊藤实华的职业是什么? 光速蒙面侠21(虎吉) +伊藤实华的职业是什么? 搞笑漫画日和(男子トイレの精、パン美先生) +伊藤实华的职业是什么? 银牙伝说WEED(テル) +伊藤实华的职业是什么? 魔女的考验(真部カレン、守山太郎) +伊藤实华的职业是什么? BUZZER BEATER(レニー) +伊藤实华的职业是什么? 虫师(“眼福眼祸”さき、“草を踏む音”沢(幼少时代)) +伊藤实华的职业是什么? 2006年 +伊藤实华的职业是什么? 魔女之刃(娜梅) +伊藤实华的职业是什么? 反斗小王子(远藤レイラ) +伊藤实华的职业是什么? 搞笑漫画日和2(パン美先生、フグ子、ダンサー、ヤマトの妹、女性) +伊藤实华的职业是什么? 人造昆虫カブトボーグ V×V(ベネチアンの弟、东ルリ、园儿A) +伊藤实华的职业是什么? 2007年 +爆胎监测与安全控制系统英文是什么? 爆胎监测与安全控制系统(Blow-out Monitoring and Brake System),是吉利全球首创,并拥有自主知识产权及专利的一项安全技术。 +爆胎监测与安全控制系统英文是什么? 这项技术主要是出于防止高速爆胎所导致的车辆失控而设计。 +爆胎监测与安全控制系统英文是什么? BMBS爆胎监测与安全控制系统技术于2004年1月28日正式获得中国发明专利授权。 +爆胎监测与安全控制系统英文是什么? 2008年第一代BMBS系统正式与世人见面,BMBS汇集国内外汽车力学、控制学、人体生理学、电子信息学等方面的专家和工程技术人员经过一百余辆试验车累计行程超过五百万公里的可靠性验证,以确保产品的可靠性。 +爆胎监测与安全控制系统英文是什么? BMBS技术方案的核心即是采用智能化自动控制系统,弥补驾驶员生理局限,在爆胎后反应时间为0.5秒,替代驾驶员实施行车制动,保障行车安全。 +爆胎监测与安全控制系统英文是什么? BMBS系统由控制系统和显示系统两大部分组成,控制系统由BMBS开关、BMBS主机、BMBS分机、BMBS真空助力器四部分组成;显示系统由GPS显示、仪表指示灯、语言提示、制动双闪灯组成。 +爆胎监测与安全控制系统英文是什么? 当轮胎气压高于或低于限值时,控制器声光提示胎压异常。 +爆胎监测与安全控制系统英文是什么? 轮胎温度过高时,控制器发出信号提示轮胎温度过高。 +爆胎监测与安全控制系统英文是什么? 发射器电量不足时,控制器显示低电压报警。 +爆胎监测与安全控制系统英文是什么? 发射器受到干扰长期不发射信号时,控制器显示无信号报警。 +爆胎监测与安全控制系统英文是什么? 当汽车电门钥匙接通时,BMBS首先进入自检程序,检测系统各部分功能是否正常,如不正常,BMBS报警灯常亮。 +走读干部现象在哪里比较多? 走读干部一般是指县乡两级干部家住县城以上的城市,本人在县城或者乡镇工作,要么晚出早归,要么周一去单位上班、周五回家过周末。 +走读干部现象在哪里比较多? 对于这种现象,社会上的议论多是批评性的,认为这些干部脱离群众、作风漂浮、官僚主义,造成行政成本增加和腐败。 +走读干部现象在哪里比较多? 截至2014年10月,共有6484名“走读干部”在专项整治中被查处。 +走读干部现象在哪里比较多? 这是中央首次大规模集中处理这一长期遭诟病的干部作风问题。 +走读干部现象在哪里比较多? 干部“走读”问题主要在乡镇地区比较突出,城市地区则较少。 +走读干部现象在哪里比较多? 从历史成因和各地反映的情况来看,产生“走读”现象的主要原因大致有四种: +走读干部现象在哪里比较多? 现今绝大多数乡村都有通往乡镇和县城的石子公路甚至柏油公路,这无疑为农村干部的出行创造了便利条件,为“干部像候鸟,频往家里跑”创造了客观条件。 +走读干部现象在哪里比较多? 选调生、公务员队伍大多是学历较高的大学毕业生,曾在高校所在地的城市生活,不少人向往城市生活,他们不安心长期扎根基层,而是将基层当作跳板,因此他们往往成为“走读”的主力军。 +走读干部现象在哪里比较多? 公仆意识、服务意识淡化,是“走读”现象滋生的主观原因。 +走读干部现象在哪里比较多? 有些党员干部感到自己长期在基层工作,该为自己和家庭想想了。 +走读干部现象在哪里比较多? 于是,不深入群众认真调查研究、认真听取群众意见、认真解决群众的实际困难,也就不难理解了。 +走读干部现象在哪里比较多? 县级党政组织对乡镇领导干部管理的弱化和为基层服务不到位,导致“走读”问题得不到应有的制度约束,是“走读”问题滋长的组织原因。[2] +走读干部现象在哪里比较多? 近些年来,我国一些地方的“干部走读”现象较为普遍,社会上对此议走读干部论颇多。 +走读干部现象在哪里比较多? 所谓“干部走读”,一般是指县乡两级干部家住县城以上的城市,本人在县城或者乡镇工作,要么早出晚归,要么周一去单位上班、周五回家过周末。 +走读干部现象在哪里比较多? 对于这种现象,社会上的议论多是批评性的,认为这些干部脱离群众、作风漂浮、官僚主义,造成行政成本增加和腐败。 +走读干部现象在哪里比较多? 干部走读之所以成为“千夫所指”,是因为这种行为增加了行政成本。 +走读干部现象在哪里比较多? 从根子上说,干部走读是城乡发展不平衡的产物,“人往高处走,水往低处流”,有了更加舒适的生活环境,不管是为了自己生活条件改善也好,还是因为子女教育也好,农村人口向城镇转移,这是必然结果。 +走读干部现象在哪里比较多? “干部走读”的另一个重要原因,是干部人事制度改革。 +走读干部现象在哪里比较多? 目前公务员队伍“凡进必考”,考上公务员的大多是学历较高的大学毕业生,这些大学毕业生来自各个全国各地,一部分在本地结婚生子,沉淀下来;一部分把公务员作为跳板,到基层后或考研,或再参加省考、国考,或想办法调回原籍。 +走读干部现象在哪里比较多? 再加上一些下派干部、异地交流任职干部,构成了看似庞大的“走读”队伍。 +走读干部现象在哪里比较多? 那么,“干部走读”有哪些弊端呢? +走读干部现象在哪里比较多? 一是这些干部人在基层,心在城市,缺乏长期作战的思想,工作不安心。 +走读干部现象在哪里比较多? 周一来上班,周五回家转,对基层工作缺乏热情和感情;二是长期在省市直机关工作,对基层工作不熟悉不了解,工作不热心;三是长期走读,基层干群有工作难汇报,有困难难解决,群众不开心;四是干部来回走读,公车私驾,私费公报,把大量的经济负担转嫁给基层;五是对这些走读干部,基层管不了,上级监督难,节假日期间到哪里去、做什么事,基本处于失控和真空状态,各级组织和基层干群不放心。 +走读干部现象在哪里比较多? 特别需要引起警觉的是,由于少数走读干部有临时思想,满足于“当维持会长”,得过且过混日子,热衷于做一些急功近利、砸锅求铁的短期行为和政绩工程,不愿做打基础、管长远的实事好事,甚至怠政、疏政和懒于理政,影响了党和政府各项方针政策措施的落实,导致基层无政府主义、自由主义抬头,削弱了党和政府的领导,等到矛盾激化甚至不可收拾的时候,处理已是来之不及。 +走读干部现象在哪里比较多? 权利要与义务相等,不能只有义务而没有权利,或是只有权利没有义务。 +走读干部现象在哪里比较多? 如何真正彻底解决乡镇干部“走读”的现象呢? +走读干部现象在哪里比较多? 那就必须让乡镇基层干部义务与权利相等。 +走读干部现象在哪里比较多? 如果不能解决基层干部待遇等问题,即使干部住村,工作上也不会有什么进展的。 +走读干部现象在哪里比较多? 所以,在政治上关心,在生活上照顾,在待遇上提高。 +走读干部现象在哪里比较多? 如,提高基层干部的工资待遇,增加通讯、交通补助;帮助解决子女入学及老人赡养问题;提拔干部优先考虑基层干部;干部退休时的待遇至少不低于机关干部等等。 +化州市良光镇东岸小学学风是什么? 学校全体教职工爱岗敬业,团结拼搏,勇于开拓,大胆创新,进行教育教学改革,努力开辟第二课堂的教学路子,并开通了网络校校通的交流合作方式。 +化州市良光镇东岸小学学风是什么? 现学校教师正在为创建安全文明校园而努力。 +化州市良光镇东岸小学学风是什么? 东岸小学位置偏僻,地处贫穷落后,是良光镇最偏远的学校,学校,下辖分教点——东心埇小学,[1]?。 +化州市良光镇东岸小学学风是什么? 学校2011年有教师22人,学生231人。 +化州市良光镇东岸小学学风是什么? 小学高级教师8人,小学一级教师10人,未定级教师4人,大专学历的教师6人,其余的都具有中师学历。 +化州市良光镇东岸小学学风是什么? 全校共设12个班,学校课程按标准开设。 +化州市良光镇东岸小学学风是什么? 东岸小学原来是一所破旧不堪,教学质量非常差的薄弱学校。 +化州市良光镇东岸小学学风是什么? 近几年来,在各级政府、教育部门及社会各界热心人士鼎力支持下,学校领导大胆改革创新,致力提高教学质量和教师水平,并加大经费投入,大大改善了办学条件,使学校由差变好,实现了大跨越。 +化州市良光镇东岸小学学风是什么? 学校建设性方面。 +化州市良光镇东岸小学学风是什么? 东岸小学属于革命老区学校,始建于1980年,从东心埇村祠堂搬到这个校址,1990年建造一幢建筑面积为800平方米的南面教学楼, 1998年老促会支持从北面建造一幢1800平方米的教学大楼。 +化州市良光镇东岸小学学风是什么? 学校在管理方面表现方面颇具特色,实现了各项制度的日常化和规范化。 +化州市良光镇东岸小学学风是什么? 学校领导有较强的事业心和责任感,讲求民主与合作,勤政廉政,依法治校,树立了服务意识。 +化州市良光镇东岸小学学风是什么? 学校一贯实施“德育为先,以人为本”的教育方针,制定了“团结,律已,拼搏,创新”的校训。 +化州市良光镇东岸小学学风是什么? 教育风为“爱岗敬业,乐于奉献”,学风为“乐学,勤学,巧学,会学”。 +化州市良光镇东岸小学学风是什么? 校内营造了尊师重教的氛围,形成了良好的校风和学风。 +化州市良光镇东岸小学学风是什么? 教师们爱岗敬业,师德高尚,治学严谨,教研教改气氛浓厚,获得喜人的教研成果。 +化州市良光镇东岸小学学风是什么? 近几年来,教师撰写的教育教学论文共10篇获得县市级以上奖励,获了镇级以上奖励的有100人次。 +化州市良光镇东岸小学学风是什么? 学校德育工作成绩显著,多年被评为“安全事故为零”的学校,良光镇先进学校。 +化州市良光镇东岸小学学风是什么? 特别是教学质量大大提高了。 +化州市良光镇东岸小学学风是什么? 这些成绩得到了上级及群众的充分肯定。 +化州市良光镇东岸小学学风是什么? 1.学校环境欠美观有序,学校大门口及校道有待改造。 +化州市良光镇东岸小学学风是什么? 2.学校管理制度有待改进,部分教师业务水平有待提高。 +化州市良光镇东岸小学学风是什么? 3.教师宿舍、教室及学生宿舍欠缺。 +化州市良光镇东岸小学学风是什么? 4.运动场不够规范,各类体育器材及设施需要增加。 +化州市良光镇东岸小学学风是什么? 5.学生活动空间少,见识面窄,视野不够开阔。 +化州市良光镇东岸小学学风是什么? 1.努力营造和谐的教育教学新气氛。 +化州市良光镇东岸小学学风是什么? 建立科学的管理制度,坚持“与时俱进,以人为本”,真正实现领导对教师,教师对学生之间进行“德治与情治”;学校的人文环境做到“文明,和谐,清新”;德育环境做到“自尊,律已,律人”;心理环境做到“安全,谦虚,奋发”;交际环境做到“团结合作,真诚助人”;景物环境做到“宜人,有序。” +化州市良光镇东岸小学学风是什么? 营造学校与育人的新特色。 +我很好奇发射管的输出功率怎么样? 产生或放大高频功率的静电控制电子管,有时也称振荡管。 +我很好奇发射管的输出功率怎么样? 用于音频或开关电路中的发射管称调制管。 +我很好奇发射管的输出功率怎么样? 发射管是无线电广播、通信、电视发射设备和工业高频设备中的主要电子器件。 +我很好奇发射管的输出功率怎么样? 输出功率和工作频率是发射管的基本技术指标。 +我很好奇发射管的输出功率怎么样? 广播、通信和工业设备的发射管,工作频率一般在30兆赫以下,输出功率在1919年为2千瓦以下,1930年达300千瓦,70年代初已超过1000千瓦,效率高达80%以上。 +我很好奇发射管的输出功率怎么样? 发射管工作频率提高时,输出功率和效率都会降低,因此1936年首次实用的脉冲雷达工作频率仅28兆赫,80年代则已达 400兆赫以上。 +我很好奇发射管的输出功率怎么样? 40年代电视发射管的工作频率为数十兆赫,而80年代初,优良的电视发射管可在1000兆赫下工作,输出功率达20千瓦,效率为40%。 +我很好奇发射管的输出功率怎么样? 平面电极结构的小功率发射三极管可在更高的频率下工作。 +我很好奇发射管的输出功率怎么样? 发射管多采用同心圆筒电极结构。 +我很好奇发射管的输出功率怎么样? 阴极在最内层,向外依次为各个栅极和阳极。 +我很好奇发射管的输出功率怎么样? 图中,自左至右为阴极、第一栅、第二栅、栅极阴极组装件和装入阳极后的整个管子。 +我很好奇发射管的输出功率怎么样? 发射管 +我很好奇发射管的输出功率怎么样? 中小功率发射管多采用间热式氧化物阴极。 +我很好奇发射管的输出功率怎么样? 大功率发射管一般采用碳化钍钨丝阴极,有螺旋、直条或网笼等结构形式。 +我很好奇发射管的输出功率怎么样? 图为网笼式阴极。 +我很好奇发射管的输出功率怎么样? 栅极多用钼丝或钨丝绕制,或用钼片经电加工等方法制造。 +我很好奇发射管的输出功率怎么样? 栅极表面经镀金(或铂)或涂敷锆粉等处理,以降低栅极电子发射,使发射管稳定工作。 +我很好奇发射管的输出功率怎么样? 用气相沉积方法制造的石墨栅极,具有良好的性能。 +我很好奇发射管的输出功率怎么样? 发射管阳极直流输入功率转化为高频输出功率的部分约为75%,其余25%成为阳极热损耗,因此对发射管的阳极必须进行冷却。 +我很好奇发射管的输出功率怎么样? 中小功率发射管的阳极采取自然冷却方式,用镍、钼或石墨等材料制造,装在管壳之内,工作温度可达 600℃。 +我很好奇发射管的输出功率怎么样? 大功率发射管的阳极都用铜制成,并作为真空密封管壳的一部分,采用各种强制冷却方式。 +我很好奇发射管的输出功率怎么样? 各种冷却方式下每平方厘米阳极内表面的散热能力为:水冷100瓦;风冷30瓦;蒸发冷却250瓦;超蒸发冷却1000瓦以上,80年代已制成阳极损耗功率为1250千瓦的超蒸发冷却发射管。 +我很好奇发射管的输出功率怎么样? 发射管也常以冷却方式命名,如风冷发射管、水冷发射管和蒸发冷却发射管。 +我很好奇发射管的输出功率怎么样? 发射管管壳用玻璃或陶瓷制造。 +我很好奇发射管的输出功率怎么样? 小功率发射管内使用含钡的吸气剂;大功率发射管则采用锆、钛、钽等吸气材料,管内压强约为10帕量级。 +我很好奇发射管的输出功率怎么样? 发射管寿命取决于阴极发射电子的能力。 +我很好奇发射管的输出功率怎么样? 大功率发射管寿命最高记录可达8万小时。 +我很好奇发射管的输出功率怎么样? 发射四极管的放大作用和输出输入电路间的隔离效果优于三极管,应用最广。 +我很好奇发射管的输出功率怎么样? 工业高频振荡器普遍采用三极管。 +我很好奇发射管的输出功率怎么样? 五极管多用在小功率范围中。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 鲁能领秀城中央公园位于鲁能领秀城景观中轴之上,总占地161.55亩,总建筑面积约40万平米,容积率为2.70,由22栋小高层、高层组成;其绿地率高达35.2%,环境优美,产品更加注重品质化、人性化和自然生态化,是鲁能领秀城的生态人居典范。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 中央公园[1] 学区准现房,坐享鲁能领秀城成熟配套,成熟生活一步到位。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 经典板式小高层,103㎡2+1房仅22席,稀市推出,错过再无;92㎡经典两房、137㎡舒适三房压轴登场! +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 物业公司: +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 济南凯瑞物业公司;深圳长城物业公司;北京盛世物业有限公司 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 绿化率: +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 42% +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 容积率: +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 2.70 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 暖气: +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 集中供暖 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 楼座展示:中央公园由22栋小高层、高层组成,3、16、17号楼分别是11层小高层,18层和28层的高层。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 4号楼是23层,2梯3户。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 项目位置: +鬼青蛙在哪里有收录详情? 鬼青蛙这张卡可以从手卡把这张卡以外的1只水属性怪兽丢弃,从手卡特殊召唤。 +鬼青蛙在哪里有收录详情? 这张卡召唤·反转召唤·特殊召唤成功时,可以从自己的卡组·场上选1只水族·水属性·2星以下的怪兽送去墓地。 +鬼青蛙在哪里有收录详情? 此外,1回合1次,可以通过让自己场上1只怪兽回到手卡,这个回合通常召唤外加上只有1次,自己可以把「鬼青蛙」以外的1只名字带有「青蛙」的怪兽召唤。[1] +鬼青蛙在哪里有收录详情? 游戏王卡包收录详情 +鬼青蛙在哪里有收录详情? [09/09/18] +西湖区有多大? 西湖区是江西省南昌市市辖区。 +西湖区有多大? 为南昌市中心城区之一,有着2200多年历史,是一个物华天宝、人杰地灵的古老城区。 +西湖区有多大? 2004年南昌市老城区区划调整后,西湖区东起京九铁路线与青山湖区毗邻,南以洪城路东段、抚河路南段、象湖以及南隔堤为界与青云谱区、南昌县接壤,西凭赣江中心线与红谷滩新区交界,北沿中山路、北京西路与东湖区相连,所辖面积34.5平方公里,常住人口43万,管辖1个镇、10个街道办事处,设12个行政村、100个社区。 +西湖区有多大? (图)西湖区[南昌市] +西湖区有多大? 西湖原为汉代豫章群古太湖的一部分,唐贞元15年(公元799年)洪恩桥的架设将东太湖分隔成东西两部分,洪恩桥以西谓之西湖,西湖区由此而得名。 +西湖区有多大? 西湖区在1926年南昌设市后分别称第四、五部分,六、七部分。 +西湖区有多大? 1949年解放初期分别称第三、四区。 +西湖区有多大? 1955年分别称抚河区、西湖区。 +西湖区有多大? 1980年两区合并称西湖区。[1] +西湖区有多大? 辖:西湖街道、丁公路街道、广外街道、系马桩街道、绳金塔街道、朝阳洲街道、禾草街街道、十字街街道、瓦子角街道、三眼井街道、上海路街道、筷子巷街道、南站街道。[1] +西湖区有多大? 2002年9月,由原筷子巷街道和原禾草街街道合并设立南浦街道,原广外街道与瓦子角街道的一部分合并设立广润门街道。 +西湖区有多大? 2002年12月1日设立桃源街道。 +西湖区有多大? 2004年区划调整前的西湖区区域:东与青山湖区湖坊乡插花接壤;西临赣江与红谷滩新区隔江相望;南以建设路为界,和青云谱区毗邻;北连中山路,北京西路,与东湖区交界。[1] +西湖区有多大? 2002年9月,由原筷子巷街道和原禾草街街道合并设立南浦街道,原广外街道与瓦子角街道的一部分合并设立广润门街道。 +西湖区有多大? 2002年12月1日设立桃源街道。 +西湖区有多大? 2004年区划调整前的西湖区区域:东与青山湖区湖坊乡插花接壤;西临赣江与红谷滩新区隔江相望;南以建设路为界,和青云谱区毗邻;北连中山路,北京西路,与东湖区交界。 +西湖区有多大? 2004年9月7日,国务院批准(国函[2004]70号)调整南昌市市辖区部分行政区划:将西湖区朝阳洲街道的西船居委会划归东湖区管辖。 +西湖区有多大? 将青山湖区的桃花镇和湖坊镇的同盟村划归西湖区管辖。 +西湖区有多大? 将西湖区十字街街道的谷市街、洪城路、南关口、九四、新丰5个居委会,上海路街道的草珊瑚集团、南昌肠衣厂、电子计算机厂、江西涤纶厂、江地基础公司、曙光、商标彩印厂、南昌市染整厂、江南蓄电池厂、四机床厂、二进、国乐新村12个居委会,南站街道的解放西路东居委会划归青云谱区管辖。 +西湖区有多大? 将西湖区上海路街道的轻化所、洪钢、省人民检察院、电信城东分局、安康、省机械施工公司、省水利设计院、省安装公司、南方电动工具厂、江西橡胶厂、上海路北、南昌电池厂、东华计量所、南昌搪瓷厂、上海路新村、华安针织总厂、江西五金厂、三波电机厂、水文地质大队、二六○厂、省卫生学校、新世纪、上海路住宅区北、塔子桥北、南航、上海路住宅区南、沿河、南昌阀门厂28个居委会,丁公路街道的新魏路、半边街、师大南路、顺化门、岔道口东路、师大、广电厅、手表厂、鸿顺9个居委会,南站街道的工人新村北、工人新村南、商苑、洪都中大道、铁路第三、铁路第四、铁路第六7个居委会划归青山湖区管辖。 +西湖区有多大? 调整后,西湖区辖绳金塔、桃源、朝阳洲、广润门、南浦、西湖、系马桩、十字街、丁公路、南站10个街道和桃花镇,区人民政府驻孺子路。 +西湖区有多大? 调整前,西湖区面积31平方千米,人口52万。 +西湖区有多大? (图)西湖区[南昌市] +西湖区有多大? 西湖区位于江西省省会南昌市的中心地带,具有广阔的发展空间和庞大的消费群体,商贸旅游、娱乐服务业等到各个行业都蕴藏着无限商机,投资前景十分广阔。 +西湖区有多大? 不仅水、电价格低廉,劳动力资源丰富,人均工资和房产价格都比沿海城市低,城区拥有良好的人居环境、低廉的投资成本,巨大的发展潜力。 +西湖区有多大? 105、316、320国道和京九铁路贯穿全境,把南北东西交通连成一线;民航可与上海、北京、广州、深圳、厦门、温州等到地通航,并开通了南昌-新加坡第一条国际航线;水运依托赣江可直达长江各港口;邮电通讯便捷,程控电话、数字微波、图文传真进入国际通讯网络;商检、海关、口岸等涉外机构齐全;水、电、气供应充足。 +西湖区有多大? (图)西湖区[南昌市] +西湖区有多大? 西湖区,是江西省省会南昌市的中心城区,面积34.8平方公里,常住人口51.9万人,辖桃花镇、朝农管理处及10个街道,设13个行政村,116个社区居委会,20个家委会。[2] +西湖区有多大? 2005年11月16日,南昌市《关于同意西湖区桃花镇、桃源、十字街街道办事处行政区划进行调整的批复》 +西湖区有多大? 1、同意将桃花镇的三道闸居委会划归桃源街道办事处管辖。 +青藏虎耳草花期什么时候? 青藏虎耳草多年生草本,高4-11.5厘米,丛生。 +青藏虎耳草花期什么时候? 花期7-8月。 +青藏虎耳草花期什么时候? 分布于甘肃(祁连山地)、青海(黄南、海南、海北)和西藏(加查)。 +青藏虎耳草花期什么时候? 生于海拔3 700-4 250米的林下、高山草甸和高山碎石隙。[1] +青藏虎耳草花期什么时候? 多年生草本,高4-11.5厘米,丛生。 +青藏虎耳草花期什么时候? 茎不分枝,具褐色卷曲柔毛。 +青藏虎耳草花期什么时候? 基生叶具柄,叶片卵形、椭圆形至长圆形,长15-25毫米,宽4-8毫米,腹面无毛,背面和边缘具褐色卷曲柔毛,叶柄长1-3厘米,基部扩大,边缘具褐色卷曲柔毛;茎生叶卵形至椭圆形,长1.5-2厘米,向上渐变小。 +青藏虎耳草花期什么时候? 聚伞花序伞房状,具2-6花;花梗长5-19毫米,密被褐色卷曲柔毛;萼片在花期反曲,卵形至狭卵形,长2.5-4.2毫米,宽1.5-2毫米,先端钝,两面无毛,边缘具褐色卷曲柔毛,3-5脉于先端不汇合;花瓣腹面淡黄色且其中下部具红色斑点,背面紫红色,卵形、狭卵形至近长圆形,长2.5-5.2毫米,宽1.5-2.1毫米,先端钝,基部具长0.5-1毫米之爪,3-5(-7)脉,具2痂体;雄蕊长2-3.6毫米,花丝钻形;子房半下位,周围具环状花盘,花柱长1-1.5毫米。 +青藏虎耳草花期什么时候? 生于高山草甸、碎石间。 +青藏虎耳草花期什么时候? 分布青海、西藏、甘肃、四川等地。 +青藏虎耳草花期什么时候? [1] +青藏虎耳草花期什么时候? 顶峰虎耳草Saxifraga cacuminum Harry Sm. +青藏虎耳草花期什么时候? 对叶虎耳Saxifraga contraria Harry Sm. +青藏虎耳草花期什么时候? 狭瓣虎耳草Saxifraga pseudohirculus Engl. +青藏虎耳草花期什么时候? 唐古特虎耳草Saxifraga tangutica Engl. +青藏虎耳草花期什么时候? 宽叶虎耳草(变种)Saxifraga tangutica Engl. var. platyphylla (Harry Sm.) J. T. Pan +青藏虎耳草花期什么时候? 唐古特虎耳草(原变种)Saxifraga tangutica Engl. var. tangutica +青藏虎耳草花期什么时候? 西藏虎耳草Saxifraga tibetica Losinsk.[1] +青藏虎耳草花期什么时候? Saxifraga przewalskii Engl. in Bull. Acad. Sci. St. -Petersb. 29:115. 1883: Engl et Irmsch. in Bot. Jahrb. 48:580. f. 5E-H. 1912 et in Engl. Pflanzenr. 67(IV. 117): 107. f. 21 E-H. 1916; J. T. Pan in Acta Phytotax. Sin. 16(2): 16. 1978;中国高等植物图鉴补编2: 30. 1983; 西藏植物志 2: 483. 1985. [1] +生产一支欧文冲锋枪需要多少钱? 欧文冲锋枪 Owen Gun 1945年,在新不列颠手持欧文冲锋枪的澳大利亚士兵 类型 冲锋枪 原产国 ?澳大利亚 服役记录 服役期间 1941年-1960年代 用户 参见使用国 参与战役 第二次世界大战 马来亚紧急状态 朝鲜战争 越南战争 1964年罗德西亚布什战争 生产历史 研发者 伊夫林·欧文(Evelyn Owen) 研发日期 1931年-1939年 生产商 约翰·莱萨特工厂 利特高轻武器工厂 单位制造费用 $ 30/枝 生产日期 1941年-1945年 制造数量 45,000-50,000 枝 衍生型 Mk 1/42 Mk 1/43 Mk 2/43 基本规格 总重 空枪: Mk 1/42:4.24 千克(9.35 磅) Mk 1/43:3.99 千克(8.8 磅) Mk 2/43:3.47 千克(7.65 磅) 全长 806 毫米(31.73 英吋) 枪管长度 247 毫米(9.72 英吋) 弹药 制式:9 × 19 毫米 原型:.38/200 原型:.45 ACP 口径 9 × 19 毫米:9 毫米(.357 英吋) .38/200:9.65 毫米(.38 英吋) .45 ACP:11.43 毫米(.45 英吋) 枪管 1 根,膛线7 条,右旋 枪机种类 直接反冲作用 开放式枪机 发射速率 理论射速: Mk 1/42:700 发/分钟 Mk 1/43:680 发/分钟 Mk 2/43:600 发/分钟 实际射速:120 发/分钟 枪口初速 380-420 米/秒(1,246.72-1,377.95 英尺/秒) 有效射程 瞄具装定射程:91.44 米(100 码) 最大有效射程:123 米(134.51 码) 最大射程 200 米(218.72 码) 供弹方式 32/33 发可拆卸式弹匣 瞄准具型式 机械瞄具:向右偏置的觇孔式照门和片状准星 欧文冲锋枪(英语:Owen Gun,正式名称:Owen Machine Carbine,以下简称为“欧文枪”)是一枝由伊夫林·(埃沃)·欧文(英语:Evelyn (Evo) Owen)于1939年研制、澳大利亚的首枝冲锋枪,制式型发射9 × 19 毫米鲁格手枪子弹。 +生产一支欧文冲锋枪需要多少钱? 欧文冲锋枪是澳大利亚唯一设计和主要服役的二战冲锋枪,并从1943年由澳大利亚陆军所使用,直到1960年代中期。 +生产一支欧文冲锋枪需要多少钱? 由新南威尔士州卧龙岗市出身的欧文枪发明者,伊夫林·欧文,在24岁时于1939年7月向悉尼维多利亚军营的澳大利亚陆军军械官员展示了他所设计的.22 LR口径“卡宾机枪”原型枪。 +生产一支欧文冲锋枪需要多少钱? 该枪却被澳大利亚陆军所拒绝,因为澳大利亚陆军在当时没有承认冲锋枪的价值。 +生产一支欧文冲锋枪需要多少钱? 随着战争的爆发,欧文加入了澳大利亚军队,并且成为一名列兵。 +生产一支欧文冲锋枪需要多少钱? 1940年9月,欧文的邻居,文森特·沃德尔(英语:Vincent Wardell),看到欧文家楼梯后面搁著一个麻布袋,里面放著一枝欧文枪的原型枪。 +生产一支欧文冲锋枪需要多少钱? 而文森特·沃德尔是坎布拉港的大型钢制品厂莱萨特公司的经理,他向欧文的父亲表明了他对其儿子的粗心大意感到痛心,但无论如何仍然解释了这款武器的历史。 +生产一支欧文冲锋枪需要多少钱? 沃德尔对欧文枪的简洁的设计留下了深刻的印象。 +生产一支欧文冲锋枪需要多少钱? 沃德尔安排欧文转调到陆军发明部(英语:Army Inventions Board),并重新开始在枪上的工作。 +生产一支欧文冲锋枪需要多少钱? 军队仍然持续地从负面角度查看该武器,但同时政府开始采取越来越有利的观点。 +生产一支欧文冲锋枪需要多少钱? 该欧文枪原型配备了装在顶部的弹鼓,后来让位给装在顶部的弹匣使用。 +生产一支欧文冲锋枪需要多少钱? 口径的选择亦花了一些时间去解决。 +生产一支欧文冲锋枪需要多少钱? 由于陆军有大批量的柯尔特.45 ACP子弹,它们决定欧文枪需要采用这种口径。 +生产一支欧文冲锋枪需要多少钱? 直到在1941年9月19日官方举办试验时,约翰·莱萨特工厂制成了9 毫米、.38/200和.45 ACP三种口径版本。 +生产一支欧文冲锋枪需要多少钱? 而从美、英进口的斯登冲锋枪和汤普森冲锋枪在试验中作为基准使用。 +生产一支欧文冲锋枪需要多少钱? 作为测试的一部分,所有的枪支都浸没在泥浆里,并以沙土覆盖,以模拟他们将会被使用时最恶劣的环境。 +生产一支欧文冲锋枪需要多少钱? 欧文枪是唯一在这测试中这样对待以后仍可正常操作的冲锋枪。 +生产一支欧文冲锋枪需要多少钱? 虽然测试表现出欧文枪具有比汤普森冲锋枪和司登冲锋枪更优秀的可靠性,陆军没有对其口径作出决定。 +生产一支欧文冲锋枪需要多少钱? 结果它在上级政府干预以后,陆军才下令9 毫米的衍生型为正式口径,并在1941年11月20日正式被澳大利亚陆军采用。 +生产一支欧文冲锋枪需要多少钱? 在欧文枪的寿命期间,其可靠性在澳大利亚部队中赢得了“军人的至爱”(英语:Digger's Darling)的绰号,亦有人传言它受到美军高度青睐。 +生产一支欧文冲锋枪需要多少钱? 欧文枪是在1942年开始正式由坎布拉港和纽卡斯尔的约翰·莱萨特工厂投入生产,在生产高峰期每个星期生产800 支。 +生产一支欧文冲锋枪需要多少钱? 1942年3月至1943年2月之间,莱萨特生产了28,000 枝欧文枪。 +生产一支欧文冲锋枪需要多少钱? 然而,最初的一批弹药类型竟然是错误的,以至10,000 枝欧文枪无法提供弹药。 +生产一支欧文冲锋枪需要多少钱? 政府再一次推翻军方的官僚主义作风??,并让弹药通过其最后的生产阶段,以及运送到当时在新几内亚与日军战斗的澳大利亚部队的手中。 +生产一支欧文冲锋枪需要多少钱? 在1941年至1945年间生产了约50,000 枝欧文枪。 +生产一支欧文冲锋枪需要多少钱? 在战争期间,欧文枪的平均生产成本为$ 30。[1] +生产一支欧文冲锋枪需要多少钱? 虽然它是有点笨重,因为其可靠性,欧文枪在士兵当中变得非常流行。 +生产一支欧文冲锋枪需要多少钱? 它是如此成功,它也被新西兰、英国和美国订购。[2] +生产一支欧文冲锋枪需要多少钱? 欧文枪后来也被澳大利亚部队在朝鲜战争和越南战争,[3]特别是步兵组的侦察兵。 +生产一支欧文冲锋枪需要多少钱? 这仍然是一枝制式的澳大利亚陆军武器,直到1960年代中期,它被F1冲锋枪所取代。 +第二届中国光伏摄影大赛因为什么政策而开始的? 光伏发电不仅是全球能源科技和产业发展的重要方向,也是我国具有国际竞争优势的战略性新兴产业,是我国保障能源安全、治理环境污染、应对气候变化的战略性选择。 +第二届中国光伏摄影大赛因为什么政策而开始的? 2013年7月以来,国家出台了《关于促进光伏产业健康发展的若干意见》等一系列政策,大力推进分布式光伏发电的应用,光伏发电有望走进千家万户,融入百姓民生。 +第二届中国光伏摄影大赛因为什么政策而开始的? 大赛主办方以此为契机,开启了“第二届中国光伏摄影大赛”的征程。 +悬赏任务有哪些类型? 悬赏任务,威客网站上一种任务模式,由雇主在威客网站发布任务,提供一定数额的赏金,以吸引威客们参与。 +悬赏任务有哪些类型? 悬赏任务数额一般在几十到几千不等,但也有几万甚至几十万的任务。 +悬赏任务有哪些类型? 主要以提交的作品的质量好坏作为中标标准,当然其中也带有雇主的主观喜好,中标人数较少,多为一个或几个,因此竞争激烈。 +悬赏任务有哪些类型? 大型悬赏任务赏金数额巨大,中标者也较多,但参与人也很多,对于身有一技之长的威客来讲,悬赏任务十分适合。 +悬赏任务有哪些类型? 悬赏任务的类型主要包括:设计类、文案类、取名类、网站类、编程类、推广类等等。 +悬赏任务有哪些类型? 每一类所适合的威客人群不同,报酬的多少也不同,比如设计类的报酬就比较高,一般都几百到几千,而推广类的计件任务报酬比较少,一般也就几块钱,但花费的时间很少,技术要求也很低。 +悬赏任务有哪些类型? 1.注册—登陆 +悬赏任务有哪些类型? 2.点击“我要发悬赏”—按照发布流程及提示提交任务要求。 +悬赏任务有哪些类型? 悬赏模式选择->网站托管赏金模式。 +悬赏任务有哪些类型? 威客网站客服稍后会跟发布者联系确认任务要求。 +悬赏任务有哪些类型? 3.没有问题之后就可以预付赏金进行任务发布。 +悬赏任务有哪些类型? 4.会员参与并提交稿件。 +悬赏任务有哪些类型? 5.发布者需要跟会员互动(每个提交稿件的会员都可以),解决问题,完善稿件,初步筛选稿件。 +悬赏任务有哪些类型? 6.任务发布期结束,进入选稿期(在筛选的稿件中选择最后满意的) +悬赏任务有哪些类型? 7.发布者不满意现有稿件可选定一个会员修改至满意为止,或者加价延期重新开放任务进行征稿。 +悬赏任务有哪些类型? (重复第六步)没有问题后进入下一步。 +悬赏任务有哪些类型? 8:中标会员交源文件给发布者—发布者确认—任务结束—网站将赏金付给中标会员。 +悬赏任务有哪些类型? 1、任务发布者自由定价,自由确定悬赏时间,自由发布任务要求,自主确定中标会员和中标方案。 +悬赏任务有哪些类型? 2、任务发布者100%预付任务赏金,让竞标者坚信您的诚意和诚信。 +悬赏任务有哪些类型? 3、任务赏金分配原则:任务一经发布,网站收取20%发布费,中标会员获得赏金的80%。 +悬赏任务有哪些类型? 4、每个任务最终都会选定至少一个作品中标,至少一个竞标者获得赏金。 +悬赏任务有哪些类型? 5、任务发布者若未征集到满意作品,可以加价延期征集,也可让会员修改,会员也可以删除任务。 +悬赏任务有哪些类型? 6、任务发布者自己所在组织的任何人均不能以任何形式参加自己所发布的任务,一经发现则视为任务发布者委托威客网按照网站规则选稿。 +悬赏任务有哪些类型? 7、任务悬赏总金额低于100元(含100元)的任务,悬赏时间最多为7天。 +悬赏任务有哪些类型? 所有任务最长时间不超过30天(特殊任务除外),任务总金额不得低于50元。 +悬赏任务有哪些类型? 8、网赚类、注册类任务总金额不能低于300元人民币,计件任务每个稿件的平均单价不能低于1元人民币。 +悬赏任务有哪些类型? 9、延期任务只有3次加价机会,第1次加价不得低于任务金额的10%,第2次加价不得低于任务总金额的20%,第3次不得低于任务总金额的50%。 +悬赏任务有哪些类型? 每次延期不能超过15天,加价金额不低于50元,特殊任务可以适当加长。 +悬赏任务有哪些类型? 如果为计件任务,且不是网赚类任务,将免费延期,直至征集完规定数量的作品为止。 +悬赏任务有哪些类型? 10、如果威客以交接源文件要挟任务发布者,威客网将扣除威客相关信用值,并取消其中标资格,同时任务将免费延长相应的时间继续征集作品 。 +江湖令由哪些平台运营? 《江湖令》是以隋唐时期为背景的RPG角色扮演类网页游戏。 +江湖令由哪些平台运营? 集角色扮演、策略、冒险等多种游戏元素为一体,画面精美犹如客户端游戏,融合历史、江湖、武功、恩仇多种特色元素,是款不可多得的精品游戏大作。 +江湖令由哪些平台运营? 由ya247平台、91wan游戏平台、2918、4399游戏平台、37wan、6711、兄弟玩网页游戏平台,49you、Y8Y9平台、8090游戏等平台运营的,由07177游戏网发布媒体资讯的网页游戏。 +江湖令由哪些平台运营? 网页游戏《江湖令》由51游戏社区运营,是以隋唐时期为背景的RPG角色扮演类网页游戏。 +江湖令由哪些平台运营? 集角色扮演、策略、冒险等多种游戏元素为一体,画面精美犹如客户端游戏,融合历史、江湖、武功、恩仇多种特色元素,是款不可多得的精品游戏大作… +江湖令由哪些平台运营? 背景故事: +江湖令由哪些平台运营? 隋朝末年,隋炀帝暴政,天下民不聊生,义军四起。 +江湖令由哪些平台运营? 在这动荡的时代中,百姓生活苦不堪言,多少人流离失所,家破人亡。 +江湖令由哪些平台运营? 天下三大势力---飞羽营、上清宫、侠隐岛,也值此机会扩张势力,派出弟子出来行走江湖。 +江湖令由哪些平台运营? 你便是这些弟子中的普通一员,在这群雄并起的年代,你将如何选择自己的未来。 +江湖令由哪些平台运营? 所有的故事,便从瓦岗寨/江都大营开始…… +江湖令由哪些平台运营? 势力: +江湖令由哪些平台运营? ①、飞羽营:【外功、根骨】 +江湖令由哪些平台运营? 南北朝时期,由北方政权创立的一个民间军事团体,经过多年的发展,逐渐成为江湖一大势力。 +江湖令由哪些平台运营? ②、上清宫:【外功、身法】 +江湖令由哪些平台运营? 道家圣地,宫中弟子讲求清静无为,以一种隐世的方式修炼,但身在此乱世,亦也不能独善其身。 +江湖令由哪些平台运营? ③、侠隐岛:【根骨、内力】 +江湖令由哪些平台运营? 位于偏远海岛上的一个世家,岛内弟子大多武功高强,但从不进入江湖行走,适逢乱世,现今岛主也决意作一翻作为。 +江湖令由哪些平台运营? 两大阵营: +江湖令由哪些平台运营? 义军:隋唐末期,百姓生活苦不堪言,有多个有志之士组成义军,对抗当朝暴君,希望建立一个适合百姓安居乐业的天地。 +江湖令由哪些平台运营? 隋军:战争一起即天下打乱,隋军首先要镇压四起的义军,同时在内部慢慢改变现有的朝廷,让天下再次恢复到昔日的安定。 +江湖令由哪些平台运营? 一、宠物品质 +江湖令由哪些平台运营? 宠物的品质分为:灵兽,妖兽,仙兽,圣兽,神兽 +江湖令由哪些平台运营? 二、宠物获取途径 +江湖令由哪些平台运营? 完成任务奖励宠物(其他途径待定)。 +江湖令由哪些平台运营? 三、宠物融合 +江湖令由哪些平台运营? 1、在主界面下方的【宠/骑】按钮进入宠物界面,再点击【融合】即可进入融合界面进行融合,在融合界面可选择要融合的宠物进行融合 +江湖令由哪些平台运营? 2、融合后主宠的形态不变; +江湖令由哪些平台运营? 3、融合后宠物的成长,品质,技能,经验,成长经验,等级都继承成长高的宠物; +江湖令由哪些平台运营? 4、融合宠物技能冲突,则保留成长值高的宠物技能,如果不冲突则叠加在空余的技能位置。 +请问土耳其足球超级联赛是什么时候成立的? 土耳其足球超级联赛(土耳其文:Türkiye 1. Süper Futbol Ligi)是土耳其足球协会管理的职业足球联赛,通常简称“土超”,也是土耳其足球联赛中最高级别。 +请问土耳其足球超级联赛是什么时候成立的? 目前,土超联赛队伍共有18支。 +请问土耳其足球超级联赛是什么时候成立的? 土耳其足球超级联赛 +请问土耳其足球超级联赛是什么时候成立的? 运动项目 足球 +请问土耳其足球超级联赛是什么时候成立的? 成立年份 1959年 +请问土耳其足球超级联赛是什么时候成立的? 参赛队数 18队 +请问土耳其足球超级联赛是什么时候成立的? 国家 土耳其 +请问土耳其足球超级联赛是什么时候成立的? 现任冠军 费内巴切足球俱乐部(2010-2011) +请问土耳其足球超级联赛是什么时候成立的? 夺冠最多队伍 费内巴切足球俱乐部(18次) +请问土耳其足球超级联赛是什么时候成立的? 土耳其足球超级联赛(Türkiye 1. Süper Futbol Ligi)是土耳其足球协会管理的职业足球联赛,通常简称「土超」,也是土耳其足球联赛中最高级别。 +请问土耳其足球超级联赛是什么时候成立的? 土超联赛队伍共有18支。 +请问土耳其足球超级联赛是什么时候成立的? 土超联赛成立于1959年,成立之前土耳其国有多个地区性联赛。 +请问土耳其足球超级联赛是什么时候成立的? 土超联赛成立后便把各地方联赛制度统一起来。 +请问土耳其足球超级联赛是什么时候成立的? 一般土超联赛由八月开始至五月结束,12月至1月会有歇冬期。 +请问土耳其足球超级联赛是什么时候成立的? 十八支球队会互相对叠,各有主场和作客两部分,采计分制。 +请问土耳其足球超级联赛是什么时候成立的? 联赛枋最底的三支球队会降到土耳其足球甲级联赛作赛。 +请问土耳其足球超级联赛是什么时候成立的? 由2005-06年球季起,土超联赛的冠、亚军会取得参加欧洲联赛冠军杯的资格。 +请问土耳其足球超级联赛是什么时候成立的? 成立至今土超联赛乃由两支著名球会所垄断──加拉塔萨雷足球俱乐部和费内巴切足球俱乐部,截至2009-2010赛季,双方各赢得冠军均为17次。 +请问土耳其足球超级联赛是什么时候成立的? 土超联赛共有18支球队,采取双循环得分制,每场比赛胜方得3分,负方0分,平局双方各得1分。 +请问土耳其足球超级联赛是什么时候成立的? 如果两支球队积分相同,对战成绩好的排名靠前,其次按照净胜球来决定;如果有三支以上的球队分数相同,则按照以下标准来确定排名:1、几支队伍间对战的得分,2、几支队伍间对战的净胜球数,3、总净胜球数。 +请问土耳其足球超级联赛是什么时候成立的? 联赛第1名直接参加下个赛季冠军杯小组赛,第2名参加下个赛季冠军杯资格赛第三轮,第3名进入下个赛季欧洲联赛资格赛第三轮,第4名进入下个赛季欧洲联赛资格赛第二轮,最后三名降入下个赛季的土甲联赛。 +请问土耳其足球超级联赛是什么时候成立的? 该赛季的土耳其杯冠军可参加下个赛季欧洲联赛资格赛第四轮,如果冠军已获得冠军杯资格,则亚军可参加下个赛季欧洲联赛资格赛第四轮,否则名额递补给联赛。 +请问土耳其足球超级联赛是什么时候成立的? 2010年/2011年 费内巴切 +请问土耳其足球超级联赛是什么时候成立的? 2009年/2010年 布尔萨体育(又译贝莎) +请问土耳其足球超级联赛是什么时候成立的? 2008年/2009年 贝西克塔斯 +请问土耳其足球超级联赛是什么时候成立的? 2007年/2008年 加拉塔萨雷 +请问土耳其足球超级联赛是什么时候成立的? 2006年/2007年 费内巴切 +请问土耳其足球超级联赛是什么时候成立的? 2005年/2006年 加拉塔沙雷 +请问土耳其足球超级联赛是什么时候成立的? 2004年/2005年 费内巴切(又译费伦巴治) +请问土耳其足球超级联赛是什么时候成立的? 2003年/2004年 费内巴切 +cid 作Customer IDentity解时是什么意思? ? CID 是 Customer IDentity 的简称,简单来说就是手机的平台版本. CID紧跟IMEI存储在手机的OTP(One Time Programmable)芯片中. CID 后面的数字代表的是索尼爱立信手机软件保护版本号,新的CID不断被使用,以用来防止手机被非索尼爱立信官方的维修程序拿来解锁/刷机/篡改 +cid 作Customer IDentity解时是什么意思? ? CID 是 Customer IDentity 的简称,简单来说就是手机的平台版本. CID紧跟IMEI存储在手机的OTP(One Time Programmable)芯片中. CID 后面的数字代表的是索尼爱立信手机软件保护版本号,新的CID不断被使用,以用来防止手机被非索尼爱立信官方的维修程序拿来解锁/刷机/篡改 +cid 作Customer IDentity解时是什么意思? ? (英)刑事调查局,香港警察的重案组 +cid 作Customer IDentity解时是什么意思? ? Criminal Investigation Department +cid 作Customer IDentity解时是什么意思? ? 佩枪: +cid 作Customer IDentity解时是什么意思? ? 香港警察的CID(刑事侦缉队),各区重案组的探员装备短管点38左轮手枪,其特点是便于收藏,而且不容易卡壳,重量轻,其缺点是装弹量少,只有6发,而且换子弹较慢,威力也一般,如果碰上54式手枪或者M9手枪明显处于下风。 +cid 作Customer IDentity解时是什么意思? ? 香港警察的“刑事侦查”(Criminal Investigation Department)部门,早于1983年起已经不叫做C.I.D.的了,1983年香港警察队的重整架构,撤销了C.I.D. ( Criminal Investigation Dept.) “刑事侦缉处”,将“刑事侦查”部门归入去“行动处”内,是“行动处”内的一个分支部门,叫“刑事部”( Crime Wing )。 +cid 作Customer IDentity解时是什么意思? ? 再于90年代的一次警队重整架构,香港警队成立了新的「刑事及保安处」,再将“刑事侦查”部门归入目前的「刑事及保安处」的“处”级单位,是归入这个“处”下的一个部门,亦叫“刑事部” ( Crime Wing ),由一个助理警务处长(刑事)领导。 +cid 作Customer IDentity解时是什么意思? ? 但是时至今天,CID虽已经是一个老旧的名称,香港市民、甚至香港警察都是习惯性的沿用这个历史上的叫法 . +cid 作Customer IDentity解时是什么意思? ? CID格式是美国Adobe公司发表的最新字库格式,它具有易扩充、速度快、兼容性好、简便、灵活等特点,已成为国内开发中文字库的热点,也为用户使用字库提供质量更好,数量更多的字体。 +cid 作Customer IDentity解时是什么意思? ? CID (Character identifier)就是字符识别码,在组成方式上分成CIDFont,CMap表两部分。 +cid 作Customer IDentity解时是什么意思? ? CIDFont文件即总字符集,包括了一种特定语言中所有常用的字符,把这些字符排序,它们在总字符集中排列的次序号就是各个字符的CID标识码(Index);CMap(Character Map)表即字符映像文件,将字符的编码(Code)映像到字符的CID标识码(Index)。 +cid 作Customer IDentity解时是什么意思? ? CID字库完全针对大字符集市场设计,其基本过程为:先根据Code,在CMap表查到Index,然后在CIDFont文件找到相应的字形数据。 +本町位于什么地方? 本条目记述台湾日治时期,各都市之本町。 +本町位于什么地方? 为台湾日治时期台北市之行政区,共分一~四丁目,在表町之西。 +本町位于什么地方? 以现在的位置来看,本町位于现台北市中正区的西北角,约位于忠孝西路一段往西至台北邮局东侧。 +本町位于什么地方? 再向南至开封街一段,沿此路线向西至开封街一段60号,顺60号到汉口街一段向东到现在华南银行总行附近画一条直线到衡阳路。 +本町位于什么地方? 再向东至重庆南路一段,由重庆南路一段回到原点这个范围内。 +本町位于什么地方? 另外,重庆南路一段在当时名为“本町通”。 +本町位于什么地方? 此地方自日治时期起,就是繁华的商业地区,当时也有三和银行、台北专卖分局、日本石油等重要商业机构。 +本町位于什么地方? 其中,专卖分局是战后二二八事件的主要起始点。 +本町位于什么地方? 台湾贮蓄银行(一丁目) +本町位于什么地方? 三和银行(二丁目) +本町位于什么地方? 专卖局台北分局(三丁目) +本町位于什么地方? 日本石油(四丁目) +本町位于什么地方? 为台湾日治时期台南市之行政区。 +本町位于什么地方? 范围包括清代旧街名枋桥头前、枋桥头后、鞋、草花、天公埕、竹仔、下大埕、帽仔、武馆、统领巷、大井头、内宫后、内南町。 +本町位于什么地方? 为清代台南城最繁华的区域。 +本町位于什么地方? 台南公会堂 +本町位于什么地方? 北极殿 +本町位于什么地方? 开基武庙 +本町位于什么地方? 町名改正 +本町位于什么地方? 这是一个与台湾相关的小作品。 +本町位于什么地方? 你可以通过编辑或修订扩充其内容。 +《行走的观点:埃及》的条形码是多少? 出版社: 上海社会科学院出版社; 第1版 (2006年5月1日) +《行走的观点:埃及》的条形码是多少? 丛书名: 时代建筑视觉旅行丛书 +《行走的观点:埃及》的条形码是多少? 条形码: 9787806818640 +《行走的观点:埃及》的条形码是多少? 尺寸: 18 x 13.1 x 0.7 cm +《行走的观点:埃及》的条形码是多少? 重量: 181 g +《行走的观点:埃及》的条形码是多少? 漂浮在沙与海市蜃楼之上的金字塔曾经是否是你的一个梦。 +《行走的观点:埃及》的条形码是多少? 埃及,这片蕴蓄了5000年文明的土地,本书为你撩开它神秘的纱。 +《行走的观点:埃及》的条形码是多少? 诸神、金字塔、神庙、狮身人面像、法老、艳后吸引着我们的注意力;缠绵悱恻的象形文字、医学、雕刻等留给我们的文明,不断引发我们对古代文明的惊喜和赞叹。 +《行走的观点:埃及》的条形码是多少? 尼罗河畔的奇异之旅,数千年的古老文明,尽收在你的眼底…… +《行走的观点:埃及》的条形码是多少? 本书集历史、文化、地理等知识于一体,并以优美、流畅文笔,简明扼要地阐述了埃及的地理环境、政治经济、历史沿革、文化艺术,以大量富有艺术感染力的彩色照片,生动形象地展示了埃及最具特色的名胜古迹、风土人情和自然风光。 +《行走的观点:埃及》的条形码是多少? 古埃及历史 +老挝人民军的工兵部队有几个营? 老挝人民军前身为老挝爱国战线领导的“寮国战斗部队”(即“巴特寮”),始建于1949年1月20日,1965年10月改名为老挝人民解放军,1982年7月改称现名。 +老挝人民军的工兵部队有几个营? 最高领导机构是中央国防和治安委员会,朱马里·赛雅颂任主席,隆再·皮吉任国防部长。 +老挝人民军的工兵部队有几个营? 实行义务兵役制,服役期最少18个月。[1] +老挝人民军的工兵部队有几个营? ?老挝军队在老挝社会中有较好的地位和保障,工资待遇比地方政府工作人员略高。 +老挝人民军的工兵部队有几个营? 武装部队总兵力约6万人,其中陆军约5万人,主力部队编为5个步兵师;空军2000多人;海军(内河巡逻部队)1000多人;部队机关院校5000人。[1] +老挝人民军的工兵部队有几个营? 老挝人民军军旗 +老挝人民军的工兵部队有几个营? 1991年8月14日通过的《老挝人民民主共和国宪法》第11条规定:国家执行保卫国防和维护社会安宁的政策。 +老挝人民军的工兵部队有几个营? 全体公民和国防力量、治安力量必须发扬忠于祖国、忠于人民的精神,履行保卫革命成果、保卫人民生命财产及和平劳动的任务,积极参加国家建设事业。 +老挝人民军的工兵部队有几个营? 最高领导机构是中央国防和治安委员会。 +老挝人民军的工兵部队有几个营? 主席由老挝人民革命党中央委员会总书记兼任。 +老挝人民军的工兵部队有几个营? 老挝陆军成立最早,兵力最多,约有5万人。 +老挝人民军的工兵部队有几个营? 其中主力部队步兵师5个、7个独立团、30多个营、65个独立连。 +老挝人民军的工兵部队有几个营? 地方部队30余个营及县属部队。 +老挝人民军的工兵部队有几个营? 地面炮兵2个团,10多个营。 +老挝人民军的工兵部队有几个营? 高射炮兵1个团9个营。 +老挝人民军的工兵部队有几个营? 导弹部队2个营。 +老挝人民军的工兵部队有几个营? 装甲兵7个营。 +老挝人民军的工兵部队有几个营? 特工部队6个营。 +老挝人民军的工兵部队有几个营? 通讯部队9个营。 +老挝人民军的工兵部队有几个营? 工兵部队6个营。 +老挝人民军的工兵部队有几个营? 基建工程兵2个团13个营。 +老挝人民军的工兵部队有几个营? 运输部队7个营。 +老挝人民军的工兵部队有几个营? 陆军的装备基本是中国和前苏联援助的装备和部分从抗美战争中缴获的美式装备。 +老挝人民军的工兵部队有几个营? 老挝内河部队总兵力约1700人,装备有内河船艇110多艘,编成4个艇队。 +老挝人民军的工兵部队有几个营? 有芒宽、巴能、纳坎、他曲、南盖、巴色等8个基地。 +老挝人民军的工兵部队有几个营? 空军于1975年8月组建,现有2个团、11个飞行大队,总兵力约2000人。 +老挝人民军的工兵部队有几个营? 装备有各种飞机140架,其中主要由前苏联提供和从万象政权的皇家空军手中接管。 +老挝人民军的工兵部队有几个营? 随着军队建设质量的提高,老挝人民军对外军事合作步伐也日益扩大,近年来先后与俄罗斯、印度、马来西亚、越南、菲律宾等国拓展了军事交流与合作的内容。 +老挝人民军的工兵部队有几个营? 2003年1月,印度决定向老挝援助一批军事装备和物资,并承诺提供技术帮助。 +老挝人民军的工兵部队有几个营? 2003年6月,老挝向俄罗斯订购了一批新式防空武器;2003年4月,老挝与越南签署了越南帮助老挝培训军事指挥干部和特种部队以及完成军队通信系统改造等多项协议。 +《焚心之城》的主角是谁? 《焚心之城》[1] 为网络作家老子扛过枪创作的一部都市类小说,目前正在创世中文网连载中。 +《焚心之城》的主角是谁? 乡下大男孩薛城,是一个不甘于生活现状的混混,他混过、爱过、也深深地被伤害过。 +《焚心之城》的主角是谁? 本料此生当浑浑噩噩,拼搏街头。 +《焚心之城》的主角是谁? 高考的成绩却给了他一点渺茫的希望,二月后,大学如期吹响了他进城的号角。 +《焚心之城》的主角是谁? 繁华的都市,热血的人生,冷眼嘲笑中,他发誓再不做一个平常人! +《焚心之城》的主角是谁? 江北小城,黑河大地,他要行走过的每一个角落都有他的传说。 +《焚心之城》的主角是谁? 扯出一面旗,拉一帮兄弟,做男人,就要多一份担当,活一口傲气。 +《焚心之城》的主角是谁? (日期截止到2014年10月23日凌晨) +请问香港利丰集团是什么时候成立的? 香港利丰集团前身是广州的华资贸易 (1906 - 1949) ,利丰是香港历史最悠久的出口贸易商号之一。 +请问香港利丰集团是什么时候成立的? 于1906年,冯柏燎先生和李道明先生在广州创立了利丰贸易公司;是当时中国第一家华资的对外贸易出口商。 +请问香港利丰集团是什么时候成立的? 利丰于1906年创立,初时只从事瓷器及丝绸生意;一年之后,增添了其它的货品,包括竹器、藤器、玉石、象牙及其它手工艺品,包括烟花爆竹类别。 +请问香港利丰集团是什么时候成立的? 在早期的对外贸易,中国南方内河港因水深不足不能行驶远洋船,反之香港港口水深岸阔,占尽地利。 +请问香港利丰集团是什么时候成立的? 因此,在香港成立分公司的责任,落在冯柏燎先生的三子冯汉柱先生身上。 +请问香港利丰集团是什么时候成立的? 1937年12月28日,利丰(1937)有限公司正式在香港创立。 +请问香港利丰集团是什么时候成立的? 第二次世界大战期间,利丰暂停贸易业务。 +请问香港利丰集团是什么时候成立的? 1943年,随着创办人冯柏燎先生去世后,业务移交给冯氏家族第二代。 +请问香港利丰集团是什么时候成立的? 之后,向来不参与业务管理的合伙人李道明先生宣布退休,将所拥有的利丰股权全部卖给冯氏家族。 +请问香港利丰集团是什么时候成立的? 目前由哈佛冯家两兄弟William Fung , Victor Fung和CEO Bruce Rockowitz 管理。 +请问香港利丰集团是什么时候成立的? 截止到2012年,集团旗下有利亚﹝零售﹞有限公司、利和集团、利邦时装有限公司、利越时装有限公司、利丰贸易有限公司。 +请问香港利丰集团是什么时候成立的? 利亚(零售)连锁,业务包括大家所熟悉的:OK便利店、玩具〝反〞斗城和圣安娜饼屋;范围包括香港、台湾、新加坡、马来西亚、至中国大陆及东南亚其它市场逾600多家店 +请问香港利丰集团是什么时候成立的? 利和集团,IDS以专业物流服务为根基,为客户提供经销,物流,制造服务领域内的一系列服务项目。 +请问香港利丰集团是什么时候成立的? 业务网络覆盖大中华区,东盟,美国及英国,经营着90多个经销中心,在中国设有18个经销公司,10,000家现代经销门店。 +请问香港利丰集团是什么时候成立的? 利邦(上海)时装贸易有限公司为大中华区其中一家大型男士服装零售集团。 +请问香港利丰集团是什么时候成立的? 现在在中国大陆、香港、台湾和澳门收购经营11个包括Cerruti 1881,Gieves & Hawkes,Kent & curwen和D’urban 等中档到高档的男士服装品牌,全国有超过350间门店设于各一线城市之高级商场及百货公司。 +请问香港利丰集团是什么时候成立的? 利越(上海)服装商贸有限公司隶属于Branded Lifestyle,负责中国大陆地区LEO里奥(意大利)、GIBO捷宝(意大利)、UFFIZI古杰师(意大利)、OVVIO奥维路(意大利)、Roots绿适(加拿大,全球服装排名第四)品牌销售业务 +请问香港利丰集团是什么时候成立的? 利丰(贸易)1995年收购了英之杰采购服务,1999年收购太古贸易有限公司(Swire & Maclain) 和金巴莉有限公司(Camberley),2000年和2002年分别收购香港采购出口集团Colby Group及Janco Oversea Limited,大大扩张了在美国及欧洲的顾客群,自2008年经济危机起一直到现在,收购多家欧、美、印、非等地区的时尚品牌,如英国品牌Visage,仅2011年上半年6个月就完成26个品牌的收购。 +请问香港利丰集团是什么时候成立的? 2004年利丰与Levi Strauss & Co.签订特许经营协议 +请问香港利丰集团是什么时候成立的? 2005年利丰伙拍Daymon Worldwide为全球供应私有品牌和特许品牌 +请问香港利丰集团是什么时候成立的? 2006年收购Rossetti手袋业务及Oxford Womenswear Group 强化美国批发业务 +请问香港利丰集团是什么时候成立的? 2007年收购Tommy Hilfiher全球采购业务,收购CGroup、Peter Black International LTD、Regetta USA LLC和American Marketing Enterprice +请问香港利丰集团是什么时候成立的? 2008年收购Kent&Curwen全球特许经营权,收购Van Zeeland,Inc和Miles Fashion Group +请问香港利丰集团是什么时候成立的? 2009年收购加拿大休闲品牌Roots ,收购Wear Me Appearl,LLC。 +请问香港利丰集团是什么时候成立的? 与Hudson's Bay、Wolverine Worldwide Inc、Talbots、Liz Claiborne达成了采购协议 +请问香港利丰集团是什么时候成立的? 2010年收购Oxford apparel Visage Group LTD +请问香港利丰集团是什么时候成立的? 2011年一月收购土耳其Modium、美国女性时尚Beyond Productions,三月收购贸易公司Celissa 、玩具公司Techno Source USA, Inc.、卡通品牌产品TVMania和法国著名时装一线品牌Cerruti 1881,五月收购Loyaltex Apparel Ltd.、女装Hampshire Designers和英国彩妆Collection 2000,六月收购家私贸易Exim Designs Co., Ltd.,七月收购家庭旅行产业Union Rich USA, LLC和设计公司Lloyd Textile Fashion Company Limited,八月收购童装Fishman & Tobin和Crimzon Rose,九月收购家私贸易True Innovations, LLC、日用品企业Midway Enterprises和Wonderful World。 +请问香港利丰集团是什么时候成立的? 十二月与USPA – U.S. Polo Association签署授权协议。 +请问香港利丰集团是什么时候成立的? 利丰的精神:积极进取,不断认识并争取有利于客户和自身进步的机会;以行动为主导,对客户、供应商及职工的需求作出快速的决定。 +请问香港利丰集团是什么时候成立的? 利丰的最终目标:在产品采购、销售、流转的各环节建立全球性队伍提供多元化服务,利丰成员有效合作,共达目标。 +如何使魔兽变种akt不被查杀? Trojan/PSW.Moshou.akt“魔兽”变种akt是“魔兽”木马家族的最新成员之一,采用Delphi 6.0-7.0编写,并经过加壳处理。 +如何使魔兽变种akt不被查杀? “魔兽”变种akt运行后,自我复制到被感染计算机的指定目录下。 +如何使魔兽变种akt不被查杀? 修改注册表,实现木马开机自动运行。 +如何使魔兽变种akt不被查杀? 自我注入到被感染计算机的“explorer.exe”、“notepad.exe”等用户级权限的进程中加载运行,隐藏自我,防止被查杀。 +如何使魔兽变种akt不被查杀? 在后台秘密监视用户打开的窗口标题,盗取网络游戏《魔兽世界》玩家的游戏帐号、游戏密码、角色等级、装备信息、金钱数量等信息,并在后台将窃取到的玩家信息发送到骇客指定的远程服务器上,致使玩家游戏帐号、装备物品、金钱等丢失,给游戏玩家造成非常大的损失。 +丙种球蛋白能预防什么病情? 丙种球蛋白预防传染性肝炎,预防麻疹等病毒性疾病感染,治疗先天性丙种球蛋白缺乏症 ,与抗生素合并使用,可提高对某些严重细菌性和病毒性疾病感染的疗效。 +丙种球蛋白能预防什么病情? 中文简称:“丙球” +丙种球蛋白能预防什么病情? 英文名称:γ-globulin、gamma globulin +丙种球蛋白能预防什么病情? 【别名】 免疫血清球蛋白,普通免疫球蛋白,人血丙种球蛋白,丙种球蛋白,静脉注射用人免疫球蛋白(pH4) +丙种球蛋白能预防什么病情? 注:由于人血中的免疫球蛋白大多数为丙种球蛋白(γ-球蛋白),有时丙种球蛋白也被混称为“免疫球蛋白”(immunoglobulin) 。 +丙种球蛋白能预防什么病情? 冻干制剂应为白色或灰白色的疏松体,液体制剂和冻干制剂溶解后,溶液应为接近无色或淡黄色的澄明液体,微带乳光。 +丙种球蛋白能预防什么病情? 但不应含有异物或摇不散的沉淀。 +丙种球蛋白能预防什么病情? 注射丙种球蛋白是一种被动免疫疗法。 +丙种球蛋白能预防什么病情? 它是把免疫球蛋白内含有的大量抗体输给受者,使之从低或无免疫状态很快达到暂时免疫保护状态。 +丙种球蛋白能预防什么病情? 由于抗体与抗原相互作用起到直接中和毒素与杀死细菌和病毒。 +丙种球蛋白能预防什么病情? 因此免疫球蛋白制品对预防细菌、病毒性感染有一定的作用[1]。 +丙种球蛋白能预防什么病情? 人免疫球蛋白的生物半衰期为16~24天。 +丙种球蛋白能预防什么病情? 1、丙种球蛋白[2]含有健康人群血清所具有的各种抗体,因而有增强机体抵抗力以预防感染的作用。 +丙种球蛋白能预防什么病情? 2、主要治疗先天性丙种球蛋白缺乏症和免疫缺陷病 +丙种球蛋白能预防什么病情? 3、预防传染性肝炎,如甲型肝炎和乙型肝炎等。 +丙种球蛋白能预防什么病情? 4、用于麻疹、水痘、腮腺炎、带状疱疹等病毒感染和细菌感染的防治 +丙种球蛋白能预防什么病情? 5、也可用于哮喘、过敏性鼻炎、湿疹等内源性过敏性疾病。 +丙种球蛋白能预防什么病情? 6、与抗生素合并使用,可提高对某些严重细菌性和病毒性疾病感染的疗效。 +丙种球蛋白能预防什么病情? 7、川崎病,又称皮肤粘膜淋巴结综合征,常见于儿童,丙种球蛋白是主要的治疗药物。 +丙种球蛋白能预防什么病情? 1、对免疫球蛋白过敏或有其他严重过敏史者。 +丙种球蛋白能预防什么病情? 2、有IgA抗体的选择性IgA缺乏者。 +丙种球蛋白能预防什么病情? 3、发烧患者禁用或慎用。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (1997年9月1日浙江省第八届人民代表大会常务委员会第三十九次会议通过 1997年9月9日浙江省第八届人民代表大会常务委员会公告第六十九号公布自公布之日起施行) +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 为了保护人的生命和健康,发扬人道主义精神,促进社会发展与和平进步事业,根据《中华人民共和国红十字会法》,结合本省实际,制定本办法。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 本省县级以上按行政区域建立的红十字会,是中国红十字会的地方组织,是从事人道主义工作的社会救助团体,依法取得社会团体法人资格,设置工作机构,配备专职工作人员,依照《中国红十字会章程》独立自主地开展工作。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 全省性行业根据需要可以建立行业红十字会,配备专职或兼职工作人员。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 街道、乡(镇)、机关、团体、学校、企业、事业单位根据需要,可以依照《中国红十字会章程》建立红十字会的基层组织。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 上级红十字会指导下级红十字会的工作。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 县级以上地方红十字会指导所在行政区域行业红十字会和基层红十字会的工作。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 人民政府对红十字会给予支持和资助,保障红十字会依法履行职责,并对其活动进行监督;红十字会协助人民政府开展与其职责有关的活动。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 全社会都应当关心和支持红十字事业。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 本省公民和单位承认《中国红十字会章程》并缴纳会费的,可以自愿参加红十字会,成为红十字会的个人会员或团体会员。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 个人会员由本人申请,基层红十字会批准,发给会员证;团体会员由单位申请,县级以上红十字会批准,发给团体会员证。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 个人会员和团体会员应当遵守《中华人民共和国红十字会法》和《中国红十字会章程》,热心红十字事业,履行会员的义务,并享有会员的权利。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 县级以上红十字会理事会由会员代表大会民主选举产生。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 理事会民主选举产生会长和副会长;根据会长提名,决定秘书长、副秘书长人选。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 县级以上红十字会可以设名誉会长、名誉副会长和名誉理事,由同级红十字会理事会聘请。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 省、市(地)红十字会根据独立、平等、互相尊重的原则,发展同境外、国外地方红十字会和红新月会的友好往来和合作关系。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 红十字会履行下列职责: +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (一)宣传、贯彻《中华人民共和国红十字会法》和本办法; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (二)开展救灾的准备工作,筹措救灾款物;在自然灾害和突发事件中,对伤病人员和其他受害者进行救助; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (三)普及卫生救护和防病知识,进行初级卫生救护培训,对交通、电力、建筑、矿山等容易发生意外伤害的单位进行现场救护培训; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (四)组织群众参加现场救护; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (五)参与输血献血工作,推动无偿献血; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (六)开展红十字青少年活动; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (七)根据中国红十字会总会部署,参加国际人道主义救援工作; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (八)依照国际红十字和红新月运动的基本原则,完成同级人民政府和上级红十字会委托的有关事宜; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (九)《中华人民共和国红十宇会法》和《中国红十字会章程》规定的其他职责。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 第八条 红十字会经费的主要来源: +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (一)红十字会会员缴纳的会费; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (二)接受国内外组织和个人捐赠的款物; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (三)红十字会的动产、不动产以及兴办社会福利事业和经济实体的收入; +宝湖庭院绿化率多少? 建发·宝湖庭院位于银川市金凤区核心地带—正源南街与长城中路交汇处向东500米。 +宝湖庭院绿化率多少? 项目已于2012年4月开工建设,总占地约4.2万平方米,总建筑面积约11.2万平方米,容积率2.14,绿化率35%,预计可入住630户。 +宝湖庭院绿化率多少? “建发·宝湖庭院”是银川建发集团股份有限公司继“建发·宝湖湾”之后,在宝湖湖区的又一力作。 +宝湖庭院绿化率多少? 项目周边发展成熟,东有唐徕渠景观水道,西临银川市交通主干道正源街;南侧与宝湖湿地公园遥相呼应。 +宝湖庭院绿化率多少? “宝湖庭院”项目公共交通资源丰富:15路、21路、35路、38路、43路公交车贯穿银川市各地,出行便利。 +宝湖庭院绿化率多少? 距离新百良田购物广场约1公里,工人疗养院600米,宝湖公园1公里,唐徕渠景观水道500米。 +宝湖庭院绿化率多少? 项目位置优越,购物、餐饮、医疗、交通、休闲等生活资源丰富。[1] +宝湖庭院绿化率多少? 建发·宝湖庭院建筑及景观设置传承建发一贯“简约、大气”的风格:搂间距宽广,确保每一座楼宇视野开阔通透。 +宝湖庭院绿化率多少? 楼宇位置错落有置,外立面设计大气沉稳别致。 +宝湖庭院绿化率多少? 项目内部休闲绿地、景观小品点缀其中,道路及停车系统设计合理,停车及通行条件便利。 +宝湖庭院绿化率多少? 社区会所、幼儿园、活动室、医疗服务中心等生活配套一应俱全。 +宝湖庭院绿化率多少? 行政区域:金凤区 +大月兔(中秋艺术作品)的作者还有哪些代表作? 大月兔是荷兰“大黄鸭”之父弗洛伦泰因·霍夫曼打造的大型装置艺术作品,该作品首次亮相于台湾桃园大园乡海军基地,为了迎接中秋节的到来;在展览期间,海军基地也首次对外开放。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 霍夫曼觉得中国神话中捣杵的玉兔很有想象力,于是特别创作了“月兔”,这也是“月兔”新作第一次展出。[1] +大月兔(中秋艺术作品)的作者还有哪些代表作? ?2014年9月15日因工人施工不慎,遭火烧毁。[2] +大月兔(中秋艺术作品)的作者还有哪些代表作? “大月兔”外表采用的杜邦防水纸、会随风飘动,内部以木材加保丽龙框架支撑做成。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 兔毛用防水纸做成,材质完全防水,不怕日晒雨淋。[3 +大月兔(中秋艺术作品)的作者还有哪些代表作? -4] +大月兔(中秋艺术作品)的作者还有哪些代表作? 25米的“月兔”倚靠在机 +大月兔(中秋艺术作品)的作者还有哪些代表作? 堡上望着天空,像在思考又像赏月。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 月兔斜躺在机堡上,意在思考生命、边做白日梦,编织自己的故事。[3] +大月兔(中秋艺术作品)的作者还有哪些代表作? 台湾桃园大园乡海军基地也首度对外开放。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 428公顷的海军基地中,地景艺术节使用约40公顷,展场包括过去军机机堡、跑道等,由于这处基地过去警备森严,不对外开放,这次结合地景艺术展出,也可一窥过去是黑猫中队基地的神秘面纱。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 2014年9月2日,桃园县政府文化局举行“踩线团”,让 +大月兔(中秋艺术作品)的作者还有哪些代表作? 大月兔 +大月兔(中秋艺术作品)的作者还有哪些代表作? 各项地景艺术作品呈现在媒体眼中,虽然“月兔”仍在进行最后的细节赶工,但横躺在机堡上的“月兔”雏形已经完工。[5] +大月兔(中秋艺术作品)的作者还有哪些代表作? “这么大”、“好可爱呦”是不少踩线团成员对“月兔”的直觉;尤其在蓝天的衬托及前方绿草的组合下,呈现犹如真实版的爱丽丝梦游仙境。[6] +大月兔(中秋艺术作品)的作者还有哪些代表作? 霍夫曼的作品大月兔,“从平凡中,创作出不平凡的视觉”,创造出观赏者打从心中油然而生的幸福感,拉近观赏者的距离。[6] +大月兔(中秋艺术作品)的作者还有哪些代表作? 2014年9月15日早 +大月兔(中秋艺术作品)的作者还有哪些代表作? 上,施工人员要将月兔拆解,搬离海军基地草皮时,疑施工拆除的卡车,在拆除过程,故障起火,起火的卡车不慎延烧到兔子,造成兔子起火燃烧,消防队员即刻抢救,白色的大月兔立即变成焦黑的火烧兔。[7] +大月兔(中秋艺术作品)的作者还有哪些代表作? 桃园县府表示相当遗憾及难过,也不排除向包商求偿,也已将此事告知霍夫曼。[2] +大月兔(中秋艺术作品)的作者还有哪些代表作? ?[8] +大月兔(中秋艺术作品)的作者还有哪些代表作? 弗洛伦泰因·霍夫曼,荷兰艺术家,以在公共空间创作巨大造型 +大月兔(中秋艺术作品)的作者还有哪些代表作? 物的艺术项目见长。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 代表作品包括“胖猴子”(2010年在巴西圣保罗展出)、“大黄兔”(2011年在瑞典厄勒布鲁展出)、粉红猫(2014年5月在上海亮相)、大黄鸭(Rubber Duck)、月兔等。 +英国耆卫保险公司有多少保险客户? 英国耆卫保险公司(Old Mutual plc)成立于1845年,一直在伦敦证券交易所(伦敦证券交易所:OML)作第一上市,也是全球排名第32位(按营业收入排名)的保险公司(人寿/健康)。 +英国耆卫保险公司有多少保险客户? 公司是全球财富500强公司之一,也是被列入英国金融时报100指数的金融服务集团之一。 +英国耆卫保险公司有多少保险客户? Old Mutual 是一家国际金融服务公司,拥有近320万个保险客户,240万个银行储户,270,000个短期保险客户以及700,000个信托客户 +英国耆卫保险公司有多少保险客户? 英国耆卫保险公司(Old Mutual)是一家国际金融服务公司,总部设在伦敦,主要为全球客户提供长期储蓄的解决方案、资产管理、短期保险和金融服务等,目前业务遍及全球34个国家。[1] +英国耆卫保险公司有多少保险客户? 主要包括人寿保险,资产管理,银行等。 +英国耆卫保险公司有多少保险客户? 1845年,Old Mutual在好望角成立。 +英国耆卫保险公司有多少保险客户? 1870年,董事长Charles Bell设计了Old Mutual公司的标记。 +英国耆卫保险公司有多少保险客户? 1910年,南非从英联邦独立出来。 +英国耆卫保险公司有多少保险客户? Old Mutual的董事长John X. Merriman被选为国家总理。 +英国耆卫保险公司有多少保险客户? 1927年,Old Mutual在Harare成立它的第一个事务所。 +英国耆卫保险公司有多少保险客户? 1960年,Old Mutual在南非成立了Mutual Unit信托公司,用来管理公司的信托业务。 +英国耆卫保险公司有多少保险客户? 1970年,Old Mutual的收入超过100百万R。 +英国耆卫保险公司有多少保险客户? 1980年,Old Mutual成为南非第一大人寿保险公司,年收入达10亿R。 +英国耆卫保险公司有多少保险客户? 1991年,Old Mutual在美国财富周刊上评选的全球保险公司中名列第38位。 +英国耆卫保险公司有多少保险客户? 1995年,Old Mutual在美国波士顿建立投资顾问公司,同年、又在香港和Guernsey建立事务所。 +英国耆卫保险公司有多少保险客户? 作为一项加强与其母公司联系的举措,OMNIA公司(百慕大)荣幸的更名为Old Mutual 公司(百慕大) 。 +英国耆卫保险公司有多少保险客户? 这一新的名称和企业识别清晰地展示出公司成为其世界金融机构合作伙伴强有力支持的决心。 +英国耆卫保险公司有多少保险客户? 2003 年4月,该公司被Old Mutual plc公司收购,更名为Sage Life(百慕大)公司并闻名于世,公司为Old Mutual公司提供了一个新的销售渠道,补充了其现有的以美元计价的产品线和分销系统。 +英国耆卫保险公司有多少保险客户? 达到了一个重要里程碑是公司成功的一个例证: 2005年6月3日公司资产超过10亿美元成为公司的一个主要里程碑,也是公司成功的一个例证。 +英国耆卫保险公司有多少保险客户? Old Mutual (百慕大)为客户提供一系列的投资产品。 +英国耆卫保险公司有多少保险客户? 在其开放的结构下,客户除了能够参与由Old Mutual会员管理的方案外,还能够参与由一些世界顶尖投资机构提供的投资选择。 +英国耆卫保险公司有多少保险客户? 首席执行官John Clifford对此发表评论说:“过去的两年对于Old Mutual家族来说是稳固发展的两年,更名是迫在眉睫的事情。 +英国耆卫保险公司有多少保险客户? 通过采用其名字和形象上的相似,Old Mutual (百慕大)进一步强化了与母公司的联系。” +英国耆卫保险公司有多少保险客户? Clifford补充道:“我相信Old Mutual全球品牌认可度和Old Mutual(百慕大)产品专业知识的结合将在未来的日子里进一步推动公司的成功。” +英国耆卫保险公司有多少保险客户? 随着公司更名而来的是公司网站的全新改版,设计投资选择信息、陈述、销售方案、营销材料和公告板块。 +英国耆卫保险公司有多少保险客户? 在美国购买不到OMNIA投资产品,该产品也不向美国公民或居民以及百慕大居民提供。 +英国耆卫保险公司有多少保险客户? 这些产品不对任何要约未得到批准的区域中的任何人,以及进行此要约或询价为非法行为的个人构成要约或询价。 +英国耆卫保险公司有多少保险客户? 关于Old Mutual(百慕大)公司 +英国耆卫保险公司有多少保险客户? Old Mutual(百慕大)公司总部位于百慕大,公司面向非美国居民及公民以及非百慕大居民,通过遍布世界的各个市场的金融机构开发和销售保险和投资方案。 +英国耆卫保险公司有多少保险客户? 这些方案由Old Mutual(百慕大)公司直接做出,向投资者提供各种投资选择和战略,同时提供死亡和其他受益保证。 +谁知道北京的淡定哥做了什么? 尼日利亚足球队守门员恩耶马被封淡定哥,原因是2010年南非世界杯上1:2落后希腊队时,对方前锋已经突破到禁区,其仍头依门柱发呆,其从容淡定令人吃惊。 +谁知道北京的淡定哥做了什么? 淡定哥 +谁知道北京的淡定哥做了什么? 在2010年6月17日的世界杯赛场上,尼日利亚1比2不敌希腊队,但尼日利亚门将恩耶马(英文名:Vincent Enyeama)在赛场上的“淡定”表现令人惊奇。 +谁知道北京的淡定哥做了什么? 随后,网友将赛场照片发布于各大论坛,恩耶马迅速窜红,并被网友称为“淡定哥”。 +谁知道北京的淡定哥做了什么? 淡定哥 +谁知道北京的淡定哥做了什么? 从网友上传得照片中可以看到,“淡定哥”在面临对方前锋突袭至小禁区之时,还靠在球门柱上发呆,其“淡定”程度的确非一般人所能及。 +谁知道北京的淡定哥做了什么? 恩耶马是尼日利亚国家队的主力守门员,目前效力于以色列的特拉维夫哈普尔队。 +谁知道北京的淡定哥做了什么? 1999年,恩耶马在尼日利亚国内的伊波姆星队开始职业生涯,后辗转恩伊姆巴、Iwuanyanwu民族等队,从07年开始,他为特拉维夫效力。 +谁知道北京的淡定哥做了什么? 恩耶马的尼日利亚国脚生涯始于2002年,截至2010年1月底,他为国家队出场已超过50次。 +谁知道北京的淡定哥做了什么? 当地时间2011年1月4日,国际足球历史与统计协会(IFFHS)公布了2010年度世界最佳门将,恩耶马(尼日利亚,特拉维夫夏普尔)10票排第十一 +谁知道北京的淡定哥做了什么? 此词经国家语言资源监测与研究中心等机构专家审定入选2010年年度新词语,并收录到《中国语言生活状况报告》中。 +谁知道北京的淡定哥做了什么? 提示性释义:对遇事从容镇定、处变不惊的男性的戏称。 +谁知道北京的淡定哥做了什么? 例句:上海现“淡定哥”:百米外爆炸他仍专注垂钓(2010年10月20日腾讯网http://news.qq.com/a/20101020/000646.htm) +谁知道北京的淡定哥做了什么? 2011年度新人物 +谁知道北京的淡定哥做了什么? 1、淡定哥(北京) +谁知道北京的淡定哥做了什么? 7月24日傍晚,北京市出现大范围降雨天气,位于通州北苑路出现积水,公交车也难逃被淹。 +谁知道北京的淡定哥做了什么? 李欣摄图片来源:新华网一辆私家车深陷积水,车主索性盘坐在自己的汽车上抽烟等待救援。 +谁知道北京的淡定哥做了什么? 私家车主索性盘坐在自己的车上抽烟等待救援,被网友称“淡定哥” +谁知道北京的淡定哥做了什么? 2、淡定哥——林峰 +谁知道北京的淡定哥做了什么? 在2011年7月23日的动车追尾事故中,绍兴人杨峰(@杨峰特快)在事故中失去了5位亲人:怀孕7个月的妻子、未出世的孩子、岳母、妻姐和外甥女,他的岳父也在事故中受伤正在治疗。 +谁知道北京的淡定哥做了什么? 他披麻戴孝出现在事故现场,要求将家人的死因弄个明白。 +谁知道北京的淡定哥做了什么? 但在第一轮谈判过后,表示:“请原谅我,如果我再坚持,我将失去我最后的第六个亲人。” +谁知道北京的淡定哥做了什么? 如果他继续“纠缠”铁道部,他治疗中的岳父将会“被死亡”。 +谁知道北京的淡定哥做了什么? 很多博友就此批评杨峰,并讽刺其为“淡定哥”。 +071型船坞登陆舰的北约代号是什么? 071型船坞登陆舰(英语:Type 071 Amphibious Transport Dock,北约代号:Yuzhao-class,中文:玉昭级,或以首舰昆仑山号称之为昆仑山级船坞登陆舰),是中国人民解放军海军隶下的大型多功能两栖船坞登陆舰,可作为登陆艇的母舰,用以运送士兵、步兵战车、主战坦克等展开登陆作战,也可搭载两栖车辆,具备大型直升机起降甲板及操作设施。 +071型船坞登陆舰的北约代号是什么? 071型两栖登陆舰是中国首次建造的万吨级作战舰艇,亦为中国大型多功能两栖舰船的开山之作,也可以说是中国万吨级以上大型作战舰艇的试验之作,该舰的建造使中国海军的两栖舰船实力有了质的提升。 +071型船坞登陆舰的北约代号是什么? 在本世纪以前中国海军原有的两栖舰队以一 +071型船坞登陆舰的北约代号是什么? 早期071模型 +071型船坞登陆舰的北约代号是什么? 千至四千吨级登陆舰为主要骨干,这些舰艇吨位小、筹载量有限,直升机操作能力非常欠缺,舰上自卫武装普遍老旧,对于现代化两栖登陆作战可说有很多不足。 +071型船坞登陆舰的北约代号是什么? 为了应对新时期的国际国内形势,中国在本世纪初期紧急强化两栖作战能力,包括短时间内密集建造072、074系列登陆舰,同时也首度设计一种新型船坞登陆舰,型号为071。[1] +071型船坞登陆舰的北约代号是什么? 在两栖作战行动中,这些舰只不得不采取最危险的 +071型船坞登陆舰的北约代号是什么? 舾装中的昆仑山号 +071型船坞登陆舰的北约代号是什么? 敌前登陆方式实施两栖作战行动,必须与敌人预定阻击力量进行面对面的战斗,在台湾地区或者亚洲其他国家的沿海,几乎没有可用而不设防的海滩登陆地带,并且各国或者地区的陆军在战时,可能会很快控制这些易于登陆的海难和港口,这样就限制住了中国海军两栖登陆部队的实际登陆作战能力。 +071型船坞登陆舰的北约代号是什么? 071型登陆舰正是为了更快和更多样化的登陆作战而开发的新型登陆舰艇。[2] +071型船坞登陆舰的北约代号是什么? 071型两栖船坞登陆舰具有十分良好的整体隐身能力, +071型船坞登陆舰的北约代号是什么? 071型概念图 +071型船坞登陆舰的北约代号是什么? 该舰外部线条简洁干练,而且舰体外形下部外倾、上部带有一定角度的内倾,从而形成雷达隐身性能良好的菱形横剖面。 +071型船坞登陆舰的北约代号是什么? 舰体为高干舷平甲板型,长宽比较小,舰身宽满,采用大飞剪型舰首及楔形舰尾,舰的上层建筑位于舰体中间部位,后部是大型直升机甲板,适航性能非常突出。 +071型船坞登陆舰的北约代号是什么? 顶甲板上各类电子设备和武器系统布局十分简洁干净,各系统的突出物很少。 +071型船坞登陆舰的北约代号是什么? 该舰的两座烟囱实行左右分布式设置在舰体两侧,既考虑了隐身特点,也十分新颖。[3] +071型船坞登陆舰的北约代号是什么? 1号甲板及上层建筑物主要设置有指挥室、控 +071型船坞登陆舰的北约代号是什么? 舰尾俯视 +071型船坞登陆舰的北约代号是什么? 制舱、医疗救护舱及一些居住舱,其中医疗救护舱设置有完备的战场救护设施,可以在舰上为伤病员提供紧急手术和野战救护能力。 +071型船坞登陆舰的北约代号是什么? 2号甲板主要是舰员和部分登陆人员的居住舱、办公室及厨房。 +071型船坞登陆舰的北约代号是什么? 主甲板以下则是登陆舱,分前后两段,前段是装甲车辆储存舱,共两层,可以储存登陆装甲车辆和一些其它物资,在进出口处还设有一小型升降机,用于两层之间的移动装卸用。 +071型船坞登陆舰的北约代号是什么? 前段车辆储存舱外壁左右各设有一折叠式装载舱门,所有装载车辆在码头可通过该门直接装载或者登陆上岸。 +071型船坞登陆舰的北约代号是什么? 后段是一个巨型船坞登陆舱,总长约70米,主要用来停泊大小型气垫登陆艇、机械登陆艇或车辆人员登陆艇。[4] +071型船坞登陆舰的北约代号是什么? 自卫武装方面,舰艏设有一门PJ-26型76mm舰炮( +071型船坞登陆舰的北约代号是什么? 井冈山号舰首主炮 +071型船坞登陆舰的北约代号是什么? 俄罗斯AK-176M的中国仿制版,亦被054A采用) , 四具与052B/C相同的726-4 18联装干扰弹发射器分置于舰首两侧以及上层结构两侧,近迫防御则依赖四座布置于上层结构的AK-630 30mm防空机炮 。 +071型船坞登陆舰的北约代号是什么? 原本071模型的舰桥前方设有一座八联装海红-7短程防空导弹发射器,不过071首舰直到出海试航与2009年4月下旬的海上阅兵式中,都未装上此一武器。 +071型船坞登陆舰的北约代号是什么? 电子装备方面, 舰桥后方主桅杆顶配置一具363S型E/F频2D对空/平面搜索雷达 、一具Racal Decca RM-1290 I频导航雷达,后桅杆顶装备一具拥有球型外罩的364型(SR-64)X频2D对空/对海搜索雷达,此外还有一具LR-66C舰炮射控雷达、一具负责导引AK-630机炮的TR-47C型火炮射控雷达等。[5] +071型船坞登陆舰的北约代号是什么? 071型自卫武装布置 +071型船坞登陆舰的北约代号是什么? 071首舰昆仑山号于2006年6月开 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 竹溪县人大常委会办公室:承担人民代表大会会议、常委会会议、主任会议和常委会党组会议(简称“四会”)的筹备和服务工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责常委会组成人员视察活动的联系服务工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 受主任会议委托,拟定有关议案草案。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担常委会人事任免的具体工作,负责机关人事管理和离退休干部的管理与服务。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担县人大机关的行政事务和后勤保障工作,负责机关的安全保卫、文电处理、档案、保密、文印工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担县人大常委会同市人大常委会及乡镇人大的工作联系。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责信息反馈工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 了解宪法、法律、法规和本级人大及其常委会的决议、决定实施情况及常委会成员提出建议办理情况,及时向常委会和主任会议报告。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担人大宣传工作,负责人大常委会会议宣传的组织和联系。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 组织协调各专门工作委员会开展工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承办上级交办的其他工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 办公室下设五个科,即秘书科、调研科、人事任免科、综合科、老干部科。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 教科文卫工作委员会:负责人大教科文卫工作的日常联系、督办、信息收集反馈和业务指导工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责教科文卫方面法律法规贯彻和人大工作情况的宣传、调研工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担人大常委会教科文卫方面会议议题调查的组织联系和调研材料的起草工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担教科文卫方面规范性备案文件的初审工作,侧重对教科文卫行政执法个案监督业务承办工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责常委会组成人员和人大代表对教科文卫工作方面检查、视察的组织联系工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承办上级交办的其他工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 代表工作委员会:负责与县人大代表和上级人大代表的联系、情况收集交流工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责《代表法》的宣传贯彻和贯彻实施情况的调查研究工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责县人大代表法律法规和人民代表大会制度知识学习的组织和指导工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责常委会主任、副主任和委员走访联系人大代表的组织、联系工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责组织人大系统的干部培训。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责乡镇人大主席团工作的联系和指导。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责人大代表建议、批评和意见办理工作的联系和督办落实。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责人大代表开展活动的组织、联系工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承办上级交办的其他工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 财政经济工作委员会:负责人大财政经济工作的日常联系、督办、信息收集反馈和业务指导工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责财政经济方面法律法规贯彻和人大工作情况的宣传、调研工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 对国民经济计划和财政预算编制情况进行初审。 +我想知道武汉常住人口有多少? 武汉,简称“汉”,湖北省省会。 +我想知道武汉常住人口有多少? 它是武昌、汉口、汉阳三镇统称。 +我想知道武汉常住人口有多少? 世界第三大河长江及其最长支流汉江横贯市区,将武汉一分为三,形成武昌、汉口、汉阳,三镇跨江鼎立的格局。 +我想知道武汉常住人口有多少? 唐朝诗人李白在此写下“黄鹤楼中吹玉笛,江城五月落梅花”,因此武汉自古又称“江城”。 +我想知道武汉常住人口有多少? 武汉是中国15个副省级城市之一,全国七大中心城市之一,全市常住人口858万人。 +我想知道武汉常住人口有多少? 华中地区最大都市,华中金融中心、交通中心、文化中心,长江中下游特大城市。 +我想知道武汉常住人口有多少? 武汉城市圈的中心城市。 +我想知道武汉常住人口有多少? [3]武昌、汉口、汉阳三地被俗称武汉三镇。 +我想知道武汉常住人口有多少? 武汉西与仙桃市、洪湖市相接,东与鄂州市、黄石市接壤,南与咸宁市相连,北与孝感市相接,形似一只自西向东的蝴蝶形状。 +我想知道武汉常住人口有多少? 在中国经济地理圈内,武汉处于优越的中心位置是中国地理上的“心脏”,故被称为“九省通衢”之地。 +我想知道武汉常住人口有多少? 武汉市历史悠久,古有夏汭、鄂渚之名。 +我想知道武汉常住人口有多少? 武汉地区考古发现的历史可以上溯距今6000年的新石器时代,其考古发现有东湖放鹰台遗址的含有稻壳的红烧土、石斧、石锛以及鱼叉。 +我想知道武汉常住人口有多少? 市郊黄陂区境内的盘龙城遗址是距今约3500年前的商朝方国宫城,是迄今中国发现及保存最完整的商代古城之一。 +我想知道武汉常住人口有多少? 现代武汉的城市起源,是东汉末年的位于今汉阳的卻月城、鲁山城,和在今武昌蛇山的夏口城。 +我想知道武汉常住人口有多少? 东汉末年,地方军阀刘表派黄祖为江夏太守,将郡治设在位于今汉阳龟山的卻月城中。 +我想知道武汉常住人口有多少? 卻月城是武汉市区内已知的最早城堡。 +我想知道武汉常住人口有多少? 223年,东吴孙权在武昌蛇山修筑夏口城,同时在城内的黄鹄矶上修筑了一座瞭望塔——黄鹤楼。 +我想知道武汉常住人口有多少? 苏轼在《前赤壁赋》中说的“西望夏口,东望武昌”中的夏口就是指武汉(而当时的武昌则是今天的鄂州)。 +我想知道武汉常住人口有多少? 南朝时,夏口扩建为郢州,成为郢州的治所。 +我想知道武汉常住人口有多少? 隋置江夏县和汉阳县,分别以武昌,汉阳为治所。 +我想知道武汉常住人口有多少? 唐时江夏和汉阳分别升为鄂州和沔州的州治,成为长江沿岸的商业重镇。 +我想知道武汉常住人口有多少? 江城之称亦始于隋唐。 +我想知道武汉常住人口有多少? 两宋时武昌属鄂州,汉阳汉口属汉阳郡。 +我想知道武汉常住人口有多少? 经过发掘,武汉出土了大量唐朝墓葬,在武昌马房山和岳家咀出土了灰陶四神砖以及灰陶十二生肖俑等。 +我想知道武汉常住人口有多少? 宋代武汉的制瓷业发达。 +我想知道武汉常住人口有多少? 在市郊江夏区梁子湖旁发现了宋代瓷窑群100多座,烧制的瓷器品种很多,釉色以青白瓷为主。 +我想知道武汉常住人口有多少? 南宋诗人陆游在经过武昌时,写下“市邑雄富,列肆繁错,城外南市亦数里,虽钱塘、建康不能过,隐然一大都会也”来描写武昌的繁华。 +我想知道武汉常住人口有多少? 南宋抗金将领岳飞驻防鄂州(今武昌)8年,在此兴师北伐。 +我想知道武汉常住人口有多少? 元世祖至元十八年(1281年),武昌成为湖广行省的省治。 +我想知道武汉常住人口有多少? 这是武汉第一次成为一级行政单位(相当于现代的省一级)的治所。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 列夫·达维多维奇,托洛茨基是联共(布)党内和第三国际时期反对派的领导人,托派"第四国际"的创始人和领导人。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 列夫·达维多维奇·托洛茨基 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 列夫·达维多维奇·托洛茨基(俄国与国际历史上最重要的无产阶级革命家之一,二十世纪国际共产主义运动中最具争议的、也是备受污蔑的左翼反对派领袖,他以对古典马克思主义“不断革命论”的独创性发展闻名于世,第三共产国际和第四国际的主要缔造者之一(第三国际前三次代表大会的宣言执笔人)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 在1905年俄国革命中被工人群众推举为彼得堡苏维埃主席(而当时布尔什维克多数干部却还在讨论是否支持苏维埃,这些干部后来被赶回俄国的列宁痛击)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1917年革命托洛茨基率领“区联派”与列宁派联合,并再次被工人推举为彼得格勒苏维埃主席。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 对于十月革命这场20世纪最重大的社会革命,托洛茨基赢得了不朽的历史地位。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 后来成了托洛茨基死敌的斯大林,当时作为革命组织领导者之一却写道:“起义的一切实际组织工作是在彼得格勒苏维埃主席托洛茨基同志直接指挥之下完成的。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 我们可以确切地说,卫戍部队之迅速站在苏维埃方面来,革命军事委员会的工作之所以搞得这样好,党认为这首先要归功于托洛茨基同志。” +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? (值得一提的是,若干年后,当反托成为政治需要时,此类评价都从斯大林文章中删掉了。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? )甚至连后来狂热的斯大林派雅克·沙杜尔,当时却也写道:“托洛茨基在十月起义中居支配地位,是起义的钢铁灵魂。” +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? (苏汉诺夫《革命札记》第6卷P76。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? )不仅在起义中,而且在无产阶级政权的捍卫、巩固方面和国际共产主义革命方面,托洛茨基也作出了极其卓越的贡献(外交官-苏联国际革命政策的负责人、苏联红军缔造者以及共产国际缔造者)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 革命后若干年里,托洛茨基与列宁的画像时常双双并列挂在一起;十月革命之后到列宁病逝之前,布尔什维克历次全国代表大会上,代表大会发言结束均高呼口号:“我们的领袖列宁和托洛茨基万岁!” +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 在欧美共运中托洛茨基的威望非常高。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 后人常常认为托洛茨基只是一个知识分子文人,实际上他文武双全,而且谙熟军事指挥艺术,并且亲临战场。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 正是他作为十月革命的最高军事领袖(在十月革命期间他与士兵一起在战壕里作战),并且在1918年缔造并指挥苏联红军,是一个杰出的军事家(列宁曾对朋友说,除了托洛茨基,谁还能给我迅速地造成一支上百万人的强大军队? +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? )。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 在内战期间,他甚至坐装甲列车冒着枪林弹雨亲临战场指挥作战,差点挨炸死;当反革命军队进攻彼得堡时,当时的彼得堡领导人季诺维也夫吓得半死,托洛茨基却从容不迫指挥作战。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 同时托洛茨基又是一个高明的外交家,他曾强硬地要求英国政府释放因反战宣传被囚禁在英国的俄国流亡革命者,否则就不许英国公民离开俄国,连英国政府方面都觉得此举无懈可击;他并且把居高临下的法国到访者当场轰出他的办公室(革命前法国一直是俄国的头号债主与政治操纵者),却彬彬有礼地欢迎前来缓和冲突的法国大使;而在十月革命前夕,他对工人代表议会质询的答复既保守了即将起义的军事秘密,又鼓舞了革命者的战斗意志,同时严格遵循现代民主与公开原则,这些政治答复被波兰人多伊彻誉为“外交辞令的杰作”(伊·多伊彻的托氏传记<先知三部曲·武装的先知>第九章P335,第十一章P390)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 托洛茨基在国民经济管理与研究工作中颇有创造:是苏俄新经济政策的首先提议者以及社会主义计划经济的首先实践者。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1928年斯大林迟迟开始的计划经济实验,是对1923年以托洛茨基为首的左翼反对派经济纲领的拙劣剽窃和粗暴翻版。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 因为统治者的政策迟到,使得新经济政策到1928年已产生了一个威胁政权生存的农村资产阶级,而苏俄工人阶级国家不得不强力解决——而且是不得不借助已蜕化为官僚集团的强力来解决冲突——结果导致了1929年到30年代初的大饥荒和对农民的大量冤枉错杀。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 另外,他还对文学理论有很高的造诣,其著作<文学与革命>甚至影响了整整一代的国际左翼知识分子(包括中国的鲁迅、王实味等人)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 他在哈佛大学图书馆留下了100多卷的<托洛茨基全集>,其生动而真诚的自传和大量私人日记、信件,给人留下了研究人类生活各个方面的宝贵财富,更是追求社会进步与解放的历史道路上的重要知识库之一。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 托洛茨基1879年10月26日生于乌克兰赫尔松县富裕农民家庭,祖籍是犹太人。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 原姓布隆施泰因。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1896年开始参加工人运动。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1897年 ,参加建立南俄工人协会 ,反对沙皇专制制度。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1898年 在尼古拉也夫组织工人团体,被流放至西伯利亚。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1902年秋以署名托洛茨基之假护照逃到伦敦,参加V.I.列宁、G.V.普列汉诺夫等人主编的<火星报>的工作。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥,位于洞庭湖与长江交汇处,东接岳阳市区洞庭大道和107国道、京珠高速公路,西连省道306线,是国内目前最长的内河公路桥。 +谁知道洞庭湖大桥有多长? 路桥全长10173.82m,其中桥长5747.82m,桥宽20m,西双向四车道,是我国第一座三塔双索面斜拉大桥,亚洲首座不等高三塔双斜索面预应力混凝土漂浮体系斜拉桥。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥是我国最长的内河公路桥,大桥横跨东洞庭湖区,全长10174.2米,主桥梁长5747.8米。 +谁知道洞庭湖大桥有多长? 大桥的通车使湘、鄂间公路干线大为畅通,并为洞庭湖区运输抗洪抢险物资提供了一条快速通道该桥设计先进,新颖,造型美观,各项技求指标先进,且为首次在国内特大型桥梁中采用主塔斜拉桥结构体系。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥是湖区人民的造福桥,装点湘北门户的形象桥,对优化交通网络绪构,发展区域经济,保障防汛救灾,缩短鄂、豫、陕等省、市西部车辆南下的运距,拓展岳阳城区的主骨架,提升岳阳城市品位,增强城市辐射力,有着十分重要的意义。 +谁知道洞庭湖大桥有多长? 自1996年12月开工以来,共有10支施工队伍和两支监理队伍参与了大桥的建设。 +谁知道洞庭湖大桥有多长? 主桥桥面高52米(黄海),设计通航等级Ⅲ级。 +谁知道洞庭湖大桥有多长? 主桥桥型为不等高三塔、双索面空间索、全飘浮体系的预应力钢筋混凝土肋板梁式结构的斜拉桥,跨径为130+310+310+130米。 +谁知道洞庭湖大桥有多长? 索塔为双室宝石型断面,中塔高为125.684米,两边塔高为99.311米。 +谁知道洞庭湖大桥有多长? 三塔基础为3米和3.2米大直径钻孔灌注桩。 +谁知道洞庭湖大桥有多长? 引桥为连续梁桥,跨径20至50米,基础直径为1.8和2.5米钻孔灌注桩。 +谁知道洞庭湖大桥有多长? 该桥设计先进、新颖、造型美观,各项技求指标先进,且为首次在国内特大型桥梁中采用主塔斜拉桥结构体系,岳阳洞庭湖大桥是我国首次采用不等高三塔斜拉桥桥型的特大桥,设计先进,施工难度大位居亚洲之首,是湖南省桥梁界的一大科研项目。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥设计为三塔斜拉桥,空间双斜面索,主梁采用前支点挂篮施工,并按各种工况模拟挂篮受力进行现场试验,获得了大量有关挂篮受力性能和实际刚度的计算参数,作为施工控制参数。 +谁知道洞庭湖大桥有多长? 利用组合式模型单元,推导了斜拉桥分离式双肋平板主梁的单元刚度矩阵,并进行了岳阳洞庭湖大桥的空间受力分析,结果表明此种单元精度满足工程要求,同时在施工工艺方面也积累了成功经验。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥的通车使湘、鄂间公路干线大为畅通,并为洞庭湖区抗洪抢险物资运输提供了一条快速通道。 +谁知道洞庭湖大桥有多长? 湖大桥设计先进,造型美丽,科技含量高。 +谁知道洞庭湖大桥有多长? 洞庭大桥还是一道美丽的风景线,大桥沿岸风景与岳阳楼,君山岛、洞庭湖等风景名胜融为一体,交相辉映,成为世人了解岳阳的又一崭新窗口,也具有特别旅游资源。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥多塔斜拉桥新技术研究荣获国家科学技术进步二等奖、湖南省科学技术进步一等奖,并获第五届詹天佑大奖。 +谁知道洞庭湖大桥有多长? 大桥在中国土木工程学会2004年第16届年会上入选首届《中国十佳桥梁》,名列斜拉桥第二位。 +谁知道洞庭湖大桥有多长? 2001年荣获湖南省建设厅优秀设计一等奖,省优秀勘察一等奖。 +谁知道洞庭湖大桥有多长? 2003年荣获国家优秀工程设计金奖, "十佳学术活动"奖。 +天气预报员的布景师是谁? 芝加哥天气预报员大卫(尼古拉斯·凯奇),被他的粉丝们热爱,也被诅咒--这些人在天气不好的时候会迁怒于他,而大部分时候,大卫都是在预报坏天气。 +天气预报员的布景师是谁? ?不过,这也没什么,当一家国家早间新闻节目叫他去面试的时候,大卫的事业似乎又将再创新高。 +天气预报员的布景师是谁? 芝加哥天气预报员大卫(尼古拉斯·凯奇),被他的粉丝们热爱,也被诅咒--这些人在天气不好的时候会迁怒于他,而大部分时候,大卫都是在预报坏天气。 +天气预报员的布景师是谁? 不过,这也没什么,当一家国家早间新闻节目叫他去面试的时候,大卫的事业似乎又将再创新高。 +天气预报员的布景师是谁? 在电视节目上,大卫永远微笑,自信而光鲜,就像每一个成功的电视人一样,说起收入,他也绝对不落人后。 +天气预报员的布景师是谁? 不过,大卫的个人生活可就不那么如意了。 +天气预报员的布景师是谁? 与妻子劳伦(霍普·戴维斯)的离婚一直让他痛苦;儿子迈克吸大麻上瘾,正在进行戒毒,可戒毒顾问却对迈克有着异样的感情;女儿雪莉则体重惊人,总是愁眉苦脸、孤独寂寞;大卫的父亲罗伯特(迈克尔·凯恩),一个世界著名的小说家,虽然罗伯特不想再让大卫觉得负担过重,可正是他的名声让大卫的一生都仿佛处在他的阴影之下,更何况,罗伯特就快重病死了。 +天气预报员的布景师是谁? 和妻子的离婚、父亲的疾病、和孩子之间完全不和谐的关系,都让大卫每天头疼,而每次当他越想控制局面,一切就越加复杂。 +天气预报员的布景师是谁? 然而就在最后人们再也不会向他扔快餐,或许是因为他总是背着弓箭在大街上走。 +天气预报员的布景师是谁? 最后,面对那份高额工作的接受意味着又一个新生活的开始。 +天气预报员的布景师是谁? 也许,生活就像天气,想怎么样就怎么样,完全不可预料。 +天气预报员的布景师是谁? 导 演:戈尔·维宾斯基 Gore Verbinski +天气预报员的布景师是谁? 编 剧:Steve Conrad .....(written by) +天气预报员的布景师是谁? 演 员:尼古拉斯·凯奇 Nicolas Cage .....David Spritz +天气预报员的布景师是谁? 尼古拉斯·霍尔特 Nicholas Hoult .....Mike +天气预报员的布景师是谁? 迈克尔·凯恩 Michael Caine .....Robert Spritzel +天气预报员的布景师是谁? 杰蒙妮·德拉佩纳 Gemmenne de la Peña .....Shelly +天气预报员的布景师是谁? 霍普·戴维斯 Hope Davis .....Noreen +天气预报员的布景师是谁? 迈克尔·瑞斯玻利 Michael Rispoli .....Russ +天气预报员的布景师是谁? 原创音乐:James S. Levine .....(co-composer) (as James Levine) +天气预报员的布景师是谁? 汉斯·兹米尔 Hans Zimmer +天气预报员的布景师是谁? 摄 影:Phedon Papamichael +天气预报员的布景师是谁? 剪 辑:Craig Wood +天气预报员的布景师是谁? 选角导演:Denise Chamian +天气预报员的布景师是谁? 艺术指导:Tom Duffield +天气预报员的布景师是谁? 美术设计:Patrick M. Sullivan Jr. .....(as Patrick Sullivan) +天气预报员的布景师是谁? 布景师 :Rosemary Brandenburg +天气预报员的布景师是谁? 服装设计:Penny Rose +天气预报员的布景师是谁? 视觉特效:Charles Gibson +天气预报员的布景师是谁? David Sosalla .....Pacific Title & Art Studio +韩国国家男子足球队教练是谁? 韩国国家足球队,全名大韩民国足球国家代表队(???? ?? ?????),为韩国足球协会所于1928年成立,并于1948年加入国际足球协会。 +韩国国家男子足球队教练是谁? 韩国队自1986年世界杯开始,从未缺席任何一届决赛周。 +韩国国家男子足球队教练是谁? 在2002年世界杯,韩国在主场之利淘汰了葡萄牙、意大利及西班牙三支欧洲强队,最后夺得了殿军,是亚洲球队有史以来最好成绩。 +韩国国家男子足球队教练是谁? 在2010年世界杯,韩国也在首圈分组赛压倒希腊及尼日利亚出线次圈,再次晋身十六强,但以1-2败给乌拉圭出局。 +韩国国家男子足球队教练是谁? 北京时间2014年6月27日3时,巴西世界杯小组赛H组最后一轮赛事韩国对阵比利时,韩国队0-1不敌比利时,3场1平2负积1分垫底出局。 +韩国国家男子足球队教练是谁? 球队教练:洪明甫 +韩国国家男子足球队教练是谁? 韩国国家足球队,全名大韩民国足球国家代表队(韩国国家男子足球队???? ?? ?????),为韩国足球协会所于1928年成立,并于1948年加入国际足联。 +韩国国家男子足球队教练是谁? 韩国队是众多亚洲球队中,在世界杯表现最好,他们自1986年世界杯开始,从未缺席任何一届决赛周。 +韩国国家男子足球队教练是谁? 在2002年世界杯,韩国在主场之利淘汰了葡萄牙、意大利及西班牙三支欧洲强队,最后夺得了殿军,是亚洲球队有史以来最好成绩。 +韩国国家男子足球队教练是谁? 在2010年世界杯,韩国也在首圈分组赛压倒希腊及尼日利亚出线次圈,再次晋身十六强,但以1-2败给乌拉圭出局。 +韩国国家男子足球队教练是谁? 2014年世界杯外围赛,韩国在首轮分组赛以首名出线次轮分组赛,与伊朗、卡塔尔、乌兹别克以及黎巴嫩争逐两个直接出线决赛周资格,最后韩国仅以较佳的得失球差压倒乌兹别克,以小组次名取得2014年世界杯决赛周参赛资格,也是韩国连续八次晋身世界杯决赛周。 +韩国国家男子足球队教练是谁? 虽然韩国队在世界杯成绩为亚洲之冠,但在亚洲杯足球赛的成绩却远不及世界杯。 +韩国国家男子足球队教练是谁? 韩国只在首两届亚洲杯(1956年及1960年)夺冠,之后五十多年未能再度称霸亚洲杯,而自1992年更从未打入过决赛,与另一支东亚强队日本近二十年来四度在亚洲杯夺冠成强烈对比。[1] +韩国国家男子足球队教练是谁? 人物简介 +韩国国家男子足球队教练是谁? 车范根(1953年5月22日-)曾是大韩民国有名的锋线选手,他被欧洲媒体喻为亚洲最佳输出球员之一,他也被认为是世界最佳足球员之一。 +韩国国家男子足球队教练是谁? 他被国际足球史料与数据协会评选为20世纪亚洲最佳球员。 +韩国国家男子足球队教练是谁? 他在85-86赛季是德甲的最有价值球员,直到1999年为止他都是德甲外国球员入球纪录保持者。 +韩国国家男子足球队教练是谁? 德国的球迷一直没办法正确说出他名字的发音,所以球车范根(左)迷都以炸弹车(Cha Boom)称呼他。 +韩国国家男子足球队教练是谁? 这也代表了他强大的禁区得分能力。 +韩国国家男子足球队教练是谁? 职业生涯 +韩国国家男子足球队教练是谁? 车范根生于大韩民国京畿道的华城市,他在1971年于韩国空军俱乐部开始了他的足球员生涯;同年他入选了韩国19岁以下国家足球队(U-19)。 +韩国国家男子足球队教练是谁? 隔年他就加入了韩国国家足球队,他是有史以来加入国家队最年轻的球员。 +韩国国家男子足球队教练是谁? 车范根在27岁时前往德国发展,当时德甲被认为是世界上最好的足球联赛。 +韩国国家男子足球队教练是谁? 他在1978年12月加入了达姆施塔特,不过他在那里只待了不到一年就转到当时的德甲巨人法兰克福。 +韩国国家男子足球队教练是谁? 车范根很快在新俱乐部立足,他帮助球队赢得79-80赛季的欧洲足协杯。 +韩国国家男子足球队教练是谁? 在那个赛季过后,他成为德甲薪水第三高的球员,不过在1981年对上勒沃库森的一场比赛上,他的膝盖严重受伤,几乎毁了他的足球生涯。 +韩国国家男子足球队教练是谁? 在1983年车范根转投勒沃库森;他在这取得很高的成就,他成为85-86赛季德甲的最有价值球员,并且在1988年帮助球队拿下欧洲足协杯,也是他个人第二个欧洲足协杯。 +韩国国家男子足球队教练是谁? 他在决赛对垒西班牙人扮演追平比分的关键角色,而球会才在点球大战上胜出。 +韩国国家男子足球队教练是谁? 车范根在1989年退休,他在308场的德甲比赛中进了98球,一度是德甲外国球员的入球纪录。 +韩国国家男子足球队教练是谁? 执教生涯 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 国立台湾科技大学,简称台湾科大、台科大或台科,是位于台湾台北市大安区的台湾第一所高等技职体系大专院校,现为台湾最知名的科技大学,校本部比邻国立台湾大学。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 该校已于2005年、2008年持续入选教育部的“发展国际一流大学及顶尖研究中心计划”。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? “国立”台湾工业技术学院成立于“民国”六十三年(1974)八月一日,为台湾地区第一所技术职业教育高等学府。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 建校之目的,在因应台湾地区经济与工业迅速发展之需求,以培养高级工程技术及管理人才为目标,同时建立完整之技术职业教育体系。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? “国立”台湾工业技术学院成立于“民国”六十三年(1974)八月一日,为台湾地区第一所技术职业教育高等学府。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 建校之目的,在因应台湾地区经济与工业迅速发展之需求,以培养高级工程技术及管理人才为目标,同时建立完整之技术职业教育体系。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 本校校地约44.5公顷,校本部位于台北市基隆路四段四十三号,。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 民国68年成立硕士班,民国71年成立博士班,现有大学部学生5,664人,研究生4,458人,专任教师451位。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 2001年在台湾地区教育部筹划之研究型大学(“国立”大学研究所基础教育重点改善计画)中,成为全台首批之9所大学之一 。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 自2005年更在“教育部”所推动“五年五百亿 顶尖大学”计划下,遴选为适合发展成“顶尖研究中心”的11所研究型大学之一。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 国立台湾科技大学部设有二年制、四年制及工程在职人员进修班等三种学制;凡二专、三专及五专等专科学校以上之毕业生,皆可以报考本校大学部二年制,而高职、高中毕业生,可以报考本校大学部四年制。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 工业管理、电子工程、机械工程、营建工程及应用外语系等,则设有在职人员进修班学制,其招生对象为在职人员,利用夜间及暑假期间上课。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 凡在本校大学部修毕应修学分且成绩及格者皆授予学士学位。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 国立台湾科技大学目前设有工程、电资、管理、设计、人文社会及精诚荣誉等六个学院,分别有机械、材料科学与工程、营建、化工、电子、电机、资工、工管、企管、资管、建筑、工商业设计、应用外语等13个系及校内招生之财务金融学士学位学程、科技管理学士学位学程;全校、工程、电资、管理、创意设计等五个不分系菁英班及光电研究所、管理研究所、财务金融研究所、科技管理研究所、管理学院MBA、数位学习教育研究所、医学工程研究所、自动化及控制研究所、工程技术研究所、专利研究所等独立研究所,此外尚有人文学科负责人文及社会类等课程之教学,通识学科负责法律、音乐、环保类等课程之教学,以及师资培育中心专以培养学生未来担任中等学校工、商、管理、设计等科之合格教师,合计23个独立系所、师资培育中心、人文学科及通识学科等教学单位。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 国立台湾科技大学至今各系所毕业校友已达约56,456位,毕业生出路包含出国继续深造、在台深造以及投身于产业界。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 由于实作经验丰富,理论基础完备,工作态度认真,毕业校友担任政府要职、大学教授、大学校长及企业主管者众多,深受各界的肯定。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 工商业设计系副教授孙春望与硕一生全明远耗时两个月自制之三分钟动画短片“立体悲剧”。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 本片入选有“动画奥斯卡”之称的“ACM SIGGRAPH”国际动画展,并获得观众票选第一名,这也是台湾首次入选及获奖的短片。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 击败了好莱坞知名导演史蒂芬·史匹柏的“世界大战”、乔治卢卡斯的“星际大战三部曲”、梦工厂出品的动画“马达加斯加”、军机缠斗片“机战未来”及美国太空总署、柏克莱加州大学等好莱坞名片及顶尖学术单位制作的短片。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 2009年荣获有工业设计界奥斯卡奖之称的“德国iF设计大奖”国立台湾科技大学设计学院获得大学排名的全球第二,仅次于韩国三星美术设计学院“SADI”。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 总体排名 依据《泰晤士高等教育》(THES-QS)在2009年的世界大学排名调查,台科大排名全世界第351名,在台湾所有大学中排名第五,仅次于台大,清大,成大及阳明,并且是台湾唯一进入世界四百大名校的科技大学。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 依据在欧洲拥有广大声誉的“Eduniversal商学院排名网”2008年的资料,台湾有七所大学的商管学院被分别列入世界1000大商学院,其中台科大位在“卓越商学院”(EXCELLENT Business Schools,国内主要)之列,“推荐程度”(Recommendation Rate)为全台第四,仅次于台大、政大、中山,与交大并列。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 目前设有工程、电资、管理、设计、人文社会及精诚荣誉学院等六个学院。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 预计于竹北新校区设立产学合作学院及应用理学院。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●台湾建筑科技中心 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●智慧型机械人研究中心科技成果展示(15张) +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●台湾彩卷与博彩研究中心 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●电力电子技术研发中心 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●NCP-Taiwan办公室 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●资通安全研究与教学中心 +在日本,神道最初属于什么信仰? 神道又称天道,语出《易经》“大观在上,顺而巽,中正以观天下。 +在日本,神道最初属于什么信仰? 观,盥而不荐,有孚顒若,下观而化也。 +在日本,神道最初属于什么信仰? 观天之神道,而四时不忒,圣人以神道设教,而天下服矣”。 +在日本,神道最初属于什么信仰? 自汉以降,神道又指“墓前开道,建石柱以为标”。 +在日本,神道最初属于什么信仰? 在中医中,神道,经穴名。 +在日本,神道最初属于什么信仰? 出《针灸甲乙经》。 +在日本,神道最初属于什么信仰? 别名冲道。 +在日本,神道最初属于什么信仰? 属督脉。 +在日本,神道最初属于什么信仰? 宗教中,神道是日本的本土传统民族宗教,最初以自然崇拜为主,属于泛灵多神信仰(精灵崇拜),视自然界各种动植物为神祇。 +在日本,神道最初属于什么信仰? 神道又称天道,语出《易经》“大观在上,顺而巽,中正以观天下。 +在日本,神道最初属于什么信仰? 观,盥而不荐,有孚顒若,下观而化也。 +在日本,神道最初属于什么信仰? 观天之神道,而四时不忒,圣人以神道设教,而天下服矣”。 +在日本,神道最初属于什么信仰? 自汉以降,神道又指“墓前开道,建石柱以为标”。 +在日本,神道最初属于什么信仰? 在中医中,神道,经穴名。 +在日本,神道最初属于什么信仰? 出《针灸甲乙经》。 +在日本,神道最初属于什么信仰? 别名冲道。 +在日本,神道最初属于什么信仰? 属督脉。 +在日本,神道最初属于什么信仰? 宗教中,神道是日本的本土传统民族宗教,最初以自然崇拜为主,属于泛灵多神信仰(精灵崇拜),视自然界各种动植物为神祇。 +在日本,神道最初属于什么信仰? 谓鬼神赐福降灾神妙莫测之道。 +在日本,神道最初属于什么信仰? 《易·观》:“观天之神道,而四时不忒,圣人以神道设教,而天下服矣。” +在日本,神道最初属于什么信仰? 孔颖达 疏:“微妙无方,理不可知,目不可见,不知所以然而然,谓之神道。” +在日本,神道最初属于什么信仰? 《文选·王延寿<鲁灵光殿赋>》:“敷皇极以创业,协神道而大宁。” +在日本,神道最初属于什么信仰? 张载 注:“协和神明之道,而天下大宁。” +在日本,神道最初属于什么信仰? 南朝 梁 刘勰 《文心雕龙·正纬》:“夫神道阐幽,天命微显。” +在日本,神道最初属于什么信仰? 鲁迅 《中国小说史略》第五篇:“﹝ 干宝 ﹞尝感於其父婢死而再生,及其兄气绝复苏,自言见天神事,乃撰《搜神记》二十卷,以‘发明神道之不诬’。” +在日本,神道最初属于什么信仰? 神道设教 观卦里面蕴含着《易经》固有的诸如神道设教、用舍行藏、以德化民等思想,是孔子把这些思想发掘出来。 +在日本,神道最初属于什么信仰? 「据此是孔子见当时之人,惑于吉凶祸福,而卜筮之史,加以穿凿傅会,故演易系辞,明义理,切人事,借卜筮以教后人,所谓以神道设教,其所发明者,实即羲文之义理,而非别有义理,亦非羲文并无义理,至孔子始言义理也,当即朱子之言而小变之曰,易为卜筮作,实为义理作,伏羲文王之易,有占而无文,与今人用火珠林起课者相似,孔子加卦爻辞如签辞,纯以理言,实即羲文本意,则其说分明无误矣。」 +在日本,神道最初属于什么信仰? 孔子所发掘的《易经》思想与孔子在《论语》书中表现出来的思想完全一致。 +在日本,神道最初属于什么信仰? 《易传》的思想反映了孔子的思想,这个思想是《周易》的,也是孔子的。 +在日本,神道最初属于什么信仰? 在《周易》和孔子看来,神不是有意识的人格化的上帝。 +奥林匹克里昂获得了几连霸? 里昂 Lyon 全名 Olympique lyonnais 绰号 Les Gones、OL 成立 1950年 城市 法国,里昂 主场 热尔兰球场(Stade Gerland) 容纳人数 41,044人 主席 奥拉斯 主教练 雷米·加尔德 联赛 法国足球甲级联赛 2013–14 法甲,第 5 位 网站 官方网站 主场球衣 客场球衣 第三球衣 日尔兰体育场 奥林匹克里昂(Olympique lyonnais,简称:OL及Lyon,中文简称里昂)是一间位于法国东南部罗纳-阿尔卑斯区的里昂市的足球会,成立于1950年8月3日,前身为里昂·奥林匹克(Lyon Olympique)体育俱乐部其中一个分支的足球队,1889年离开体育俱乐部自立门户成立新俱乐部,但官方网站表示俱乐部于1950年正式成立。 +奥林匹克里昂获得了几连霸? 现时在法国足球甲级联赛比赛,俱乐部同时设立男子及女子足球队。 +奥林匹克里昂获得了几连霸? 里昂是首届法国足球甲级联赛成员之一,可惜名列第十五位而降落乙组,1951年以乙级联赛冠军获得创会后首次锦标。 +奥林匹克里昂获得了几连霸? 球队在法国足球史上没有取得辉煌成绩,比较优异的算是六十年代曾杀入欧洲杯赛冠军杯四强,及3度晋身法国杯决赛并2次成功获冠。 +奥林匹克里昂获得了几连霸? 直至九十年代末里昂由辛天尼带领,先连续取得联赛头三名,到2002年终于首次登上法国顶级联赛冠军宝座,同年勒冈(Paul Le Guen)接替执教法国国家足球队的辛天尼,他其后继续带领里昂保持气势,加上队中球员小儒尼尼奧、迪亚拉、克里斯蒂亞諾·馬克斯·戈麥斯、迈克尔·埃辛、西德尼·戈武及门将格雷戈里·库佩表现突出,2003年至2005年横扫3届联赛冠军,创下连续四年夺得联赛锦标,平了1960年代末圣艾蒂安及1990年代初马赛的四连冠纪录。 +奥林匹克里昂获得了几连霸? 2005年前利物浦主教练热拉尔·霍利尔重返法国担任新任主教练,并加入葡萄牙中场蒂亚戈,和前巴伦西亚前锋约翰·卡鲁。 +奥林匹克里昂获得了几连霸? 他亦成功带领里昂赢得一届法甲冠军。 +奥林匹克里昂获得了几连霸? 2007年里昂成为首支上市的法国足球俱乐部,招股价21至24.4欧元,发行370万股,集资8400万欧元[1]。 +奥林匹克里昂获得了几连霸? 2007年4月21日,联赛次名图卢兹二比三不敌雷恩,令处于榜首的里昂领先次席多达17分距离,里昂因此提前六轮联赛庆祝俱乐部连续第六年夺得联赛冠军,亦是欧洲五大联赛(英格兰、德国、西班牙、意大利及法国)历史上首支联赛六连冠队伍[2]。 +奥林匹克里昂获得了几连霸? 在2007-08年赛季,里昂再一次成功卫冕联赛锦标,达成七连霸伟业。 +奥林匹克里昂获得了几连霸? 不过在2008-09赛季,里昂排名法甲第三位,联赛冠军被波尔多所获得。 +奥林匹克里昂获得了几连霸? 于2010年4月,里昂以两回合3比2的比分于欧洲冠军联赛击败波尔多跻身四强,此乃里昂首次晋级此项顶级杯赛的四强阶段。 +奥林匹克里昂获得了几连霸? 粗体字为新加盟球员 +奥林匹克里昂获得了几连霸? 以下球员名单更新于2014年8月27日,球员编号参照 官方网站,夏季转会窗为6月9日至8月31日 +火柴人刺杀行动怎么才能过关? 移动鼠标控制瞄准,点击鼠标左键进行射击。 +火柴人刺杀行动怎么才能过关? 游戏加载完成后点击STARTGAME-然后点击STARTMISSION即可开始游戏。 +火柴人刺杀行动怎么才能过关? 这里不仅仅考验的是你的枪法而且最重要的是你的智慧,喜欢火柴人类型游戏的玩家可以进来小试身手。 +火柴人刺杀行动怎么才能过关? 控制瞄准,刺杀游戏中的目标人物即可过关哦。 +你知道2月14日西方情人节是因何起源的吗? 情人节(英语:Valentine's Day),情人节的起源有多个版本,其中一个说法是在公元三世纪,古罗马暴君为了征召更多士兵,禁止婚礼,一名叫瓦伦丁Valentine的修士不理禁令,秘密替人主持婚礼,结果被收监,最后处死。 +你知道2月14日西方情人节是因何起源的吗? 而他死的那天就是2月14日,为纪念Valentine的勇敢精神,人们将每年的2月14日定为Valentine的纪念日。 +你知道2月14日西方情人节是因何起源的吗? 因此成了后来的“情人节”。 +你知道2月14日西方情人节是因何起源的吗? 另外,据记载,教宗在公元496年废除牧神节,把2月14日定为圣瓦伦丁日,即是St.Valentine's Day,后来成为是西方的节日之一。 +你知道2月14日西方情人节是因何起源的吗? 中文名称:情人节 +你知道2月14日西方情人节是因何起源的吗? 外文名称:Valentine‘s Day +你知道2月14日西方情人节是因何起源的吗? 别名:情人节圣瓦伦丁节 +你知道2月14日西方情人节是因何起源的吗? 公历日期:2月14日 +你知道2月14日西方情人节是因何起源的吗? 起源时间:公元270年2月14日 +你知道2月14日西方情人节是因何起源的吗? 起源事件:人们为了纪念为情人做主而牺牲的瓦伦丁神父,把他遇害的那一天(2月14日)称为情人节。 +你知道2月14日西方情人节是因何起源的吗? 地区:欧美地区 +你知道2月14日西方情人节是因何起源的吗? 宗教:基督教 +你知道2月14日西方情人节是因何起源的吗? 其他信息:西方的传统节日之一。 +你知道2月14日西方情人节是因何起源的吗? 男女在这一天互送礼物(如贺卡和玫瑰花等)用以表达爱意或友好。 +你知道2月14日西方情人节是因何起源的吗? 据台湾“今日台湾人讨厌情人节新闻网”报道,西洋情人节即将来到,求职网进行“办公室恋情及情人节调查”发现,在目前全台上班族的感情状态中,有情人相伴的比率约5成5,4成5的上班族单身;较出乎意料的结果是,情人节以近3成(28%)的占比,登上最讨厌的节日第一名,端午节以24.3%居第二;农历年则以18.2%居第三;第四名是圣诞节,占12.4%。 +你知道2月14日西方情人节是因何起源的吗? 调查指出,情人节对单身族来说,不仅成为压力,也显得更加孤单,在情人节当天,单身的上班族有将近4成(39.1%)的人在家看电视度过,近两成(18.7%)上网聊天,有1成4(14.8%)的人,不畏满街闪光,勇气十足出门看电影,近1成(9.7%)的上班族选择留在公司加班;另外有 5.4%的人,会在情人节当天积极参加联谊,希望能改变自己的感情状态。 +你知道2月14日西方情人节是因何起源的吗? 情侣们在情人节当天,庆祝方式以吃浪漫大餐最多(37.1%),不过有近3成(27%)的情侣,在情人节当天不会特别庆祝情人节,且这个比率远比第三名的旅游(占比11.5%)高出1倍以上。 +你知道2月14日西方情人节是因何起源的吗? 在情人节当天庆祝的开销上,可以说是小资男女当道,选择1000元(新台币,下同)以内的上班族最多占33.1%,情人节当天的花费上班族的平均花费是2473元,大手笔花费上万元以上庆祝情人节的,占比只有2.5%。 +你知道2月14日西方情人节是因何起源的吗? 情人节的起源众说纷纭,而为纪念罗马教士瓦伦丁是其中一个普遍的说法。 +你知道2月14日西方情人节是因何起源的吗? 据《世界图书百科全书》(World Book Encyclopedia)数据指出:“在公元200年时期,罗马皇帝克劳狄二世禁止年轻男子结婚。 +你知道2月14日西方情人节是因何起源的吗? 他认为未婚男子可以成为更优良的士兵。 +你知道2月14日西方情人节是因何起源的吗? 一位名叫瓦伦丁的教士违反了皇帝的命令,秘密为年轻男子主持婚礼,引起皇帝不满,结果被收监,据说瓦伦丁于公元269年2月14日被处决。 +你知道2月14日西方情人节是因何起源的吗? 另外,据《天主教百科全书》(The Catholic情人节 Encyclopedia)指出,公元496年,教宗圣基拉西乌斯一世在公元第五世纪末叶废除了牧神节,把2月14日定为圣瓦伦丁日。” +你知道2月14日西方情人节是因何起源的吗? 这个节日现今以“圣瓦伦丁节”——亦即情人节的姿态盛行起来。 +你知道2月14日西方情人节是因何起源的吗? 但是在第2次梵蒂冈大公会议后,1969年的典礼改革上,整理了一堆在史实上不确定是否真实存在的人物以后,圣瓦伦丁日就被废除了。 +你知道2月14日西方情人节是因何起源的吗? 现在天主教圣人历已经没有圣瓦伦丁日(St. Valentine's Day)。 +你知道2月14日西方情人节是因何起源的吗? 根据《布卢姆尔的警句与寓言辞典》记载:“圣瓦伦丁是个罗马教士,由于援助受逼害的基督徒而身陷险境,后来他归信基督教,最后被处死,卒于二月十四日”古代庆祝情人节的习俗与瓦伦丁拉上关系,可能是纯属巧合而已。 +你知道2月14日西方情人节是因何起源的吗? 事实上,这个节日很可能与古罗马的牧神节或雀鸟交配的季节有关。 +你知道2月14日西方情人节是因何起源的吗? 情人节的特色是情侣互相馈赠礼物。 +你知道2月14日西方情人节是因何起源的吗? 时至今日,人们则喜欢以情人卡向爱人表达情意。 +防卫大学每年招收多少学生? 防卫大学的前身是保安大学。 +防卫大学每年招收多少学生? 防卫大学是日本自卫队培养陆、海、空三军初级军官的学校,被称为日军"军官的摇篮"。 +防卫大学每年招收多少学生? 防卫大学是日军的重点院校。 +防卫大学每年招收多少学生? 日本历届内阁首相都要到防卫大学视察"训示",并亲自向学生颁发毕业证书。 +防卫大学每年招收多少学生? 日军四分之一的军官、三分之一的将官从这里走出。 +防卫大学每年招收多少学生? 防卫大学毕业生已成为日军军官的中坚力量。 +防卫大学每年招收多少学生? 防卫大学每年从地方招收18岁至21岁的应届高中毕业生和同等学历的青年。 +防卫大学每年招收多少学生? 每年招生名额为530名。 +防卫大学每年招收多少学生? 1950年 8月,日本组建警察预备队,1952年改为保安队。 +防卫大学每年招收多少学生? 为了充实保安队干部队伍,提高干部军政素质,1953年4月成立了保安大学,校址设在三浦半岛的久里滨。 +防卫大学每年招收多少学生? 1954年7月1日保安厅改为防卫厅。 +防卫大学每年招收多少学生? 在保安队基础上,日本建立了陆、海、空三军自卫队,保安大学遂改名为防卫大学,1955年迁至三浦半岛东南方的小原台。 +防卫大学每年招收多少学生? 学校直属防卫厅领导。 +防卫大学每年招收多少学生? 防卫大学的教育方针是:要求学生德智体全面发展,倡导学生崇尚知识和正义,培养学生具有指挥各种部队的能力。 +防卫大学每年招收多少学生? 防卫大学每年招生名额为530名,其中陆军300名,海军100名,空军130名。 +防卫大学每年招收多少学生? 根据自卫队向妇女敞开军官大门的决定,防卫大学1992年首次招收女学员35名。 +防卫大学每年招收多少学生? 考试分两次进行。 +防卫大学每年招收多少学生? 第一次,每年11月份进行学科考试;第二次,12月份进行口试和体检。 +防卫大学每年招收多少学生? 学校按陆、海、空三军分别设大学本科班和理工科研究生班。 +防卫大学每年招收多少学生? 本科班学制4年,又分为理工和人文社会学两大科。 +防卫大学每年招收多少学生? 学员入学后先分科,530人中有460人专攻理科,70人专攻文科。 +防卫大学每年招收多少学生? 第1学年按专科学习一般大学课程和一般军事知识。 +防卫大学每年招收多少学生? 第2学年以后在军事上开始区分军种,学员分别学习陆、海、空军的专门课程。 +防卫大学每年招收多少学生? 文化课和军事课的比例是6:l。 +防卫大学每年招收多少学生? 文化课程有人文、社会、自然、外语、电气工程、机械工程、土木建筑工程、应用化学、应用物理、航空、航海等。 +防卫大学每年招收多少学生? 军事训练课每学年6周,按一年四季有比例地安排教学内容,对学生进行军事技术和体能训练。 +防卫大学每年招收多少学生? 理工科研究生班,每年招生1期,学制2年,每期招收90人,设电子工程、航空工程、兵器制造等7个专业,课程按一般大学硕士课程标准设置。 +防卫大学每年招收多少学生? 防卫大学的课程和训练都十分紧张。 +防卫大学每年招收多少学生? 近年来,为了增强防卫大学的吸引力,克服考生逐年减少的倾向广泛征集优秀人才,学校进行了一些改革,改变入学考试办法,各高中校长以内部呈报的形式向防卫大学推荐品学兼优的学生;减少学生入学考试科目,放宽对报考防卫大学的学生的视力要求;降低学分数(大约降低30学分);改善学生宿舍条件。 +防卫大学每年招收多少学生? 防卫大学的学生生活紧张而愉快。 +《威鲁贝鲁的物语》官网是什么? 10年前大战后,威鲁贝鲁国一致辛勤的保护着得来不易的和平,但是与邻国圣卡特拉斯国的关系却不断的紧张,战争即将爆发。 +《威鲁贝鲁的物语》官网是什么? 为了避免战争,威鲁贝鲁国王海特鲁王决定将自己最大的女儿公主莉塔嫁给圣卡特拉斯国的王子格鲁尼亚。 +《威鲁贝鲁的物语》官网是什么? 但是莉塔却刺伤了政治婚姻的对象格鲁尼亚王子逃了出去,这事激怒了圣卡特拉斯国的国王兰帕诺夫王,并下令14天之内抓到王女并执行公开处刑来谢罪,不然两国就要开战。 +《威鲁贝鲁的物语》官网是什么? 《威鲁贝鲁的物语~Sisters of Wellber~》 +《威鲁贝鲁的物语》官网是什么? (Sisters of Wellber) +《威鲁贝鲁的物语》官网是什么? 日文名 ウエルベールの物语 +《威鲁贝鲁的物语》官网是什么? 官方网站 http://www.avexmovie.jp/lineup/wellber/ +《威鲁贝鲁的物语》官网是什么? 为了回避发生战争这个最坏的结果,莉塔下定决心去中立国古利达姆。 diff --git a/examples/erniesage/example_data/node_classification/graph_data.txt b/examples/erniesage/example_data/node_classification/graph_data.txt new file mode 100644 index 0000000000000000000000000000000000000000..e9aead6c89fa2fdbed64e5dada352106a8deb349 --- /dev/null +++ b/examples/erniesage/example_data/node_classification/graph_data.txt @@ -0,0 +1,1000 @@ +黑缘粗角肖叶甲触角有多大? 体长卵形,棕红色;鞘翅棕黄或淡棕色,外缘和中缝黑色或黑褐色;触角基部3、4节棕黄,余节棕色。 +黑缘粗角肖叶甲触角有多大? 头部刻点粗大,分布不均匀,头顶刻点十分稀疏;触角基部的内侧有一个三角形光瘤,唇基前缘呈半圆形凹切。 +黑缘粗角肖叶甲触角有多大? 触角近于体长之半,第1节粗大,棒状,第2节短,椭圆形,3、4两节细长,稍短于第5节,第5节基细端粗,末端6节明显粗大。 +黑缘粗角肖叶甲触角有多大? 前胸背板横宽,宽约为长的两倍,侧缘敞出较宽,圆形,敞边与盘区之间有一条细纵沟;盘区刻点相当密,前半部刻点较大于后半部。 +黑缘粗角肖叶甲触角有多大? 小盾片舌形,光亮,末端圆钝。 +黑缘粗角肖叶甲触角有多大? 鞘翅刻点粗大,不规则排列,肩部之后的刻点更为粗大,具皱褶,近中缝的刻点较小,略呈纵行排列。 +黑缘粗角肖叶甲触角有多大? 前胸前侧片前缘直;前胸后侧片具粗大刻点。 +黑缘粗角肖叶甲触角有多大? 足粗壮;胫节具纵脊,外端角向外延伸,呈弯角状;爪具附齿。 +暮光闪闪的姐姐是谁? 暮光闪闪是一匹雌性独角兽,后来在神秘魔法的影响下变成了空角兽(公主),她是《我的小马驹:友情是魔法》(英文名:My Little Pony:Friendship is Magic)中的主角之一。 +暮光闪闪的姐姐是谁? 她是银甲闪闪(Shining Armor)的妹妹,同时也是韵律公主(Princess Cadance)的小姑子。 +暮光闪闪的姐姐是谁? 在该系列中,她与最好的朋友与助手斯派克(Spike)一起生活在小马镇(Ponyville)的金橡图书馆(Golden Oak Library),研究友谊的魔法。 +暮光闪闪的姐姐是谁? 在暮光闪闪成为天角兽之前(即S3E13前),常常给塞拉丝蒂娅公主(Princess Celestia)关于友谊的报告。[1] +暮光闪闪的姐姐是谁? 《我的小马驹:友谊是魔法》(英文名称:My Little Pony:Friendship is Magic)(简称MLP) +暮光闪闪的姐姐是谁? 动画讲述了一只名叫做暮光闪闪(Twilight Sparkle)的独角兽(在SE3E13 +暮光闪闪的姐姐是谁? My Little Pony:Friendship is Magic[2] +暮光闪闪的姐姐是谁? 后成为了天角兽),执行她的导师塞拉斯蒂娅公主(PrincessCelestia)的任务,在小马镇(Ponyville)学习关于友谊的知识。 +暮光闪闪的姐姐是谁? 她与另外五只小马,苹果杰克(Applejack)、瑞瑞(Rarity)、云宝黛西(Rainbow Dash)、小蝶(Fluttershy)与萍琪派(Pinkie Pie),成为了最要好的朋友。 +暮光闪闪的姐姐是谁? 每匹小马都分别代表了协律精华的6个元素:诚实,慷慨,忠诚,善良,欢笑,魔法,各自扮演着属于自己的重要角色。 +暮光闪闪的姐姐是谁? 此后,暮光闪闪(Twilight Sparkle)便与她认识的新朋友们开始了有趣的日常生活。 +暮光闪闪的姐姐是谁? 在动画中,随时可见她们在小马镇(Ponyville)的种种冒险、奇遇、日常等等。 +暮光闪闪的姐姐是谁? 同时,也在她们之间的互动和冲突中,寻找着最适合最合理的完美解决方案。 +暮光闪闪的姐姐是谁? “尽管小马国并不太平,六位主角之间也常常有这样那样的问题,但是他们之间的真情对待,使得这个童话世界已经成为不少人心中理想的世外桃源。” +暮光闪闪的姐姐是谁? 暮光闪闪在剧情刚开始的时候生活在中心城(Canterlot),后来在夏日 +暮光闪闪的姐姐是谁? 暮光闪闪与斯派克(Spike) +暮光闪闪的姐姐是谁? 庆典的时候被塞拉丝蒂娅公主派遣到小马镇执行检查夏日庆典的准备工作的任务。 +暮光闪闪的姐姐是谁? 在小马镇交到了朋友(即其余5个主角),并和她们一起使用协律精华(Elements of harmony)击败了梦魇之月。 +暮光闪闪的姐姐是谁? 并在塞拉丝蒂亚公主的许可下,留在小马镇继续研究友谊的魔法。 +暮光闪闪的姐姐是谁? 暮光闪闪的知识基本来自于书本,并且她相当不相信书本以外的“迷信”,因为这样她在S1E15里吃足了苦头。 +暮光闪闪的姐姐是谁? 在这之后,她也开始慢慢学会相信一些书本以外的东西。 +暮光闪闪的姐姐是谁? 暮光闪闪热爱学习,并且学习成绩相当好(从她可以立刻算出 +暮光闪闪的姐姐是谁? 的结果可以看 +暮光闪闪的姐姐是谁? 暮光闪闪的原型 +暮光闪闪的姐姐是谁? 出)。 +暮光闪闪的姐姐是谁? 相当敬爱自己的老师塞拉丝蒂亚公主甚至到了精神失常的地步。 +暮光闪闪的姐姐是谁? 在第二季中,曾因为无法交出关于友谊的报告而做出了疯狂的行为,后来被塞拉丝蒂亚公主制止,在这之后,暮光闪闪得到了塞拉丝蒂亚公主“不用定期交友谊报告”的许可。 +暮光闪闪的姐姐是谁? 于是暮光闪闪在后面的剧情中的主角地位越来越得不到明显的体现。 +暮光闪闪的姐姐是谁? 在SE3E13中,因为破解了白胡子星璇留下的神秘魔法而被加冕成为了天角兽(公主),被尊称为“闪闪公主”。 +暮光闪闪的姐姐是谁? 当小星座熊在小马镇引起恐慌的时候,暮光闪闪运用了自身强大的魔法将水库举起后装满牛奶,用牛奶将小星座熊安抚后,连着巨型奶瓶和小星座熊一起送回了小星座熊居住的山洞。 +我想知道红谷十二庭有哪些金融机构? 红谷十二庭是由汪氏集团旗下子公司江西尤金房地产开发有限公司携手城发投资共同开发的精品社区,项目占地面积约380亩,总建筑面积约41万平方米。 +我想知道红谷十二庭有哪些金融机构? 项目以建设人文型、生态型居住环境为规划目标;创造一个布局合理、功能齐全、交通便捷、绿意盎然、生活方便,有文化内涵的居住区。 +我想知道红谷十二庭有哪些金融机构? 金融机构:工商银行、建设银行、农业银行、中国银行红谷滩支行、商业银行红谷滩支行等 +我想知道红谷十二庭有哪些金融机构? 周边公园:沿乌砂河50米宽绿化带、乌砂河水岸公园、秋水广场、赣江市民公园 +我想知道红谷十二庭有哪些金融机构? 周边医院:新建县人民医院、开心人药店、中寰医院 +我想知道红谷十二庭有哪些金融机构? 周边学校:育新小学红谷滩校区、南师附小红谷滩校区、实验小学红谷滩校区中学:南昌二中红谷滩校区、南昌五中、新建二中、竞秀贵族学校 +我想知道红谷十二庭有哪些金融机构? 周边公共交通:112、204、211、219、222、227、238、501等20多辆公交车在本项目社区门前停靠 +我想知道红谷十二庭有哪些金融机构? 红谷十二庭处在南昌一江两城中的西城中心,位属红谷滩CBD文化公园中心——马兰圩中心组团,红谷滩中心区、红角洲、新建县三区交汇处,南临南期友好路、东接红谷滩中心区、西靠乌砂河水岸公园(50米宽,1000米长)。 +我想知道红谷十二庭有哪些金融机构? 交通便捷,景观资源丰富,生活配套设施齐全,出则繁华,入则幽静,是现代人居的理想地段。 +我想知道红谷十二庭有哪些金融机构? 红谷十二庭户型图 +苏琳最开始进入智通实业是担任什么职位? 现任广东智通人才连锁股份有限公司总裁,清华大学高级工商管理硕士。 +苏琳最开始进入智通实业是担任什么职位? 1994年,加入智通实业,从总经理秘书做起。 +苏琳最开始进入智通实业是担任什么职位? 1995年,智通实业决定进入人才服务行业,被启用去负责新公司的筹建及运营工作,在苏琳的努力下,智通人才智力开发有限公司成立。 +苏琳最开始进入智通实业是担任什么职位? 2003年,面对同城对手的激烈竞争,苏琳冷静对待,领导智通先后接管、并购了同城的腾龙、安达盛人才市场,,“品牌运作,连锁经营,差异制胜”成为苏琳屡屡制胜的法宝。 +苏琳最开始进入智通实业是担任什么职位? 2006年,苏琳先是将智通人才升级为“东莞市智通人才连锁有限公司”,一举成为广东省人才市场目前惟一的连锁机构,随后在东莞同时开设长安、松山湖、清溪等镇区分部,至此智通在东莞共有6个分部。 +苏琳最开始进入智通实业是担任什么职位? 一番大刀阔斧完成东莞布局后,苏琳确定下一个更为高远的目标——进军珠三角,向全国发展连锁机构。 +苏琳最开始进入智通实业是担任什么职位? 到2011年末,苏琳领导的智通人才已在珠三角的东莞、佛山、江门、中山等地,长三角的南京、宁波、合肥等地,中西部的南昌、长沙、武汉、重庆、西安等地设立了20多家连锁经营网点。 +苏琳最开始进入智通实业是担任什么职位? 除了财务副总裁之外,苏琳是智通人才核心管理高层当中唯一的女性,不管是要约采访的记者还是刚刚加入智通的员工,见到苏琳的第一面,都会有一种惊艳的感觉,“一位女企业家居然非常美丽和时尚?!” +苏琳最开始进入智通实业是担任什么职位? 智通管理高层的另外6位男性成员,有一次同时接受一家知名媒体采访时,共同表达了对自己老板的“爱慕”之情,苏琳听后莞尔一笑,指着在座的这几位高层说道“其实,我更爱他们!” +苏琳最开始进入智通实业是担任什么职位? 这种具有独特领导魅力的表述让这位记者唏嘘不已,同时由这样的一个细节让他感受到了智通管理团队的协作力量。 +谁知道黄沙中心小学的邮政编码是多少? 学校于1954年始建于棕树湾村,当时借用一间民房做教室,取名为“黄沙小学”,只有教师1人,学生8人。 +谁知道黄沙中心小学的邮政编码是多少? 1958年在大跃进精神的指导下,实行大集体,全乡集中办学,发展到12个班,300多学生,20名教职工。 +谁知道黄沙中心小学的邮政编码是多少? 1959年解散。 +谁知道黄沙中心小学的邮政编码是多少? 1959年下半年,在上级的扶持下,建了6间木房,搬到1960年学校所在地,有6名教师,3个班,60名学生。 +谁知道黄沙中心小学的邮政编码是多少? 1968年,开始招收一个初中班,“黄沙小学”改名为 “附小”。 +谁知道黄沙中心小学的邮政编码是多少? 当时已发展到5个班,8名教师,110多名学生。 +谁知道黄沙中心小学的邮政编码是多少? 增建土木结构教室两间。 +谁知道黄沙中心小学的邮政编码是多少? 1986年,初中、小学分开办学。 +谁知道黄沙中心小学的邮政编码是多少? 增建部分教师宿舍和教室,办学条件稍有改善,学校初具规模。 +谁知道黄沙中心小学的邮政编码是多少? 1996年,我校在市、县领导及希望工程主管部门的关怀下,决定改为“黄沙希望小学”并拨款32万元,新建一栋4层,12间教室的教学楼,教学条件大有改善。 +谁知道黄沙中心小学的邮政编码是多少? 当时发展到10个班,学生300多人,教职工19人,小学高级教师3人,一级教师7人,二级教师9人。 +谁知道黄沙中心小学的邮政编码是多少? 2003年下半年由于农村教育体制改革,撤销教育组,更名为“黄沙中心小学”。 +谁知道黄沙中心小学的邮政编码是多少? 学校现有在校生177人(含学前42人),设有学前至六年级共7个教学班。 +谁知道黄沙中心小学的邮政编码是多少? 有教师19人,其中大专以上学历11人,中师6人;小学高级教师14人,一级教师5人。 +谁知道黄沙中心小学的邮政编码是多少? 学校校园占地面积2050平方米,生均达15.29平方米,校舍建筑面积1645平方米,生均12.27平方米;设有教师办公室、自然实验、电教室(合二为一)、微机室、图书阅览室(合二为一)、体育室、广播室、少先队活动室。 +谁知道黄沙中心小学的邮政编码是多少? 广西壮族自治区桂林市临桂县黄沙瑶族乡黄沙街 邮编:541113[1] +伊藤实华的职业是什么? 伊藤实华(1984年3月25日-)是日本的女性声优。 +伊藤实华的职业是什么? THREE TREE所属,东京都出身,身长149cm,体重39kg,血型AB型。 +伊藤实华的职业是什么? ポルノグラフィティのLION(森男) +伊藤实华的职业是什么? 2000年 +伊藤实华的职业是什么? 犬夜叉(枫(少女时代)) +伊藤实华的职业是什么? 幻影死神(西亚梨沙) +伊藤实华的职业是什么? 2001年 +伊藤实华的职业是什么? NOIR(ロザリー) +伊藤实华的职业是什么? 2002年 +伊藤实华的职业是什么? 水瓶战记(柠檬) +伊藤实华的职业是什么? 返乡战士(エイファ) +伊藤实华的职业是什么? 2003年 +伊藤实华的职业是什么? 奇诺之旅(女子A(悲しい国)) +伊藤实华的职业是什么? 2004年 +伊藤实华的职业是什么? 爱你宝贝(坂下ミキ) +伊藤实华的职业是什么? Get Ride! アムドライバー(イヴァン・ニルギース幼少期) +伊藤实华的职业是什么? スクールランブル(花井春树(幼少时代)) +伊藤实华的职业是什么? 2005年 +伊藤实华的职业是什么? 光速蒙面侠21(虎吉) +伊藤实华的职业是什么? 搞笑漫画日和(男子トイレの精、パン美先生) +伊藤实华的职业是什么? 银牙伝说WEED(テル) +伊藤实华的职业是什么? 魔女的考验(真部カレン、守山太郎) +伊藤实华的职业是什么? BUZZER BEATER(レニー) +伊藤实华的职业是什么? 虫师(“眼福眼祸”さき、“草を踏む音”沢(幼少时代)) +伊藤实华的职业是什么? 2006年 +伊藤实华的职业是什么? 魔女之刃(娜梅) +伊藤实华的职业是什么? 反斗小王子(远藤レイラ) +伊藤实华的职业是什么? 搞笑漫画日和2(パン美先生、フグ子、ダンサー、ヤマトの妹、女性) +伊藤实华的职业是什么? 人造昆虫カブトボーグ V×V(ベネチアンの弟、东ルリ、园儿A) +伊藤实华的职业是什么? 2007年 +爆胎监测与安全控制系统英文是什么? 爆胎监测与安全控制系统(Blow-out Monitoring and Brake System),是吉利全球首创,并拥有自主知识产权及专利的一项安全技术。 +爆胎监测与安全控制系统英文是什么? 这项技术主要是出于防止高速爆胎所导致的车辆失控而设计。 +爆胎监测与安全控制系统英文是什么? BMBS爆胎监测与安全控制系统技术于2004年1月28日正式获得中国发明专利授权。 +爆胎监测与安全控制系统英文是什么? 2008年第一代BMBS系统正式与世人见面,BMBS汇集国内外汽车力学、控制学、人体生理学、电子信息学等方面的专家和工程技术人员经过一百余辆试验车累计行程超过五百万公里的可靠性验证,以确保产品的可靠性。 +爆胎监测与安全控制系统英文是什么? BMBS技术方案的核心即是采用智能化自动控制系统,弥补驾驶员生理局限,在爆胎后反应时间为0.5秒,替代驾驶员实施行车制动,保障行车安全。 +爆胎监测与安全控制系统英文是什么? BMBS系统由控制系统和显示系统两大部分组成,控制系统由BMBS开关、BMBS主机、BMBS分机、BMBS真空助力器四部分组成;显示系统由GPS显示、仪表指示灯、语言提示、制动双闪灯组成。 +爆胎监测与安全控制系统英文是什么? 当轮胎气压高于或低于限值时,控制器声光提示胎压异常。 +爆胎监测与安全控制系统英文是什么? 轮胎温度过高时,控制器发出信号提示轮胎温度过高。 +爆胎监测与安全控制系统英文是什么? 发射器电量不足时,控制器显示低电压报警。 +爆胎监测与安全控制系统英文是什么? 发射器受到干扰长期不发射信号时,控制器显示无信号报警。 +爆胎监测与安全控制系统英文是什么? 当汽车电门钥匙接通时,BMBS首先进入自检程序,检测系统各部分功能是否正常,如不正常,BMBS报警灯常亮。 +走读干部现象在哪里比较多? 走读干部一般是指县乡两级干部家住县城以上的城市,本人在县城或者乡镇工作,要么晚出早归,要么周一去单位上班、周五回家过周末。 +走读干部现象在哪里比较多? 对于这种现象,社会上的议论多是批评性的,认为这些干部脱离群众、作风漂浮、官僚主义,造成行政成本增加和腐败。 +走读干部现象在哪里比较多? 截至2014年10月,共有6484名“走读干部”在专项整治中被查处。 +走读干部现象在哪里比较多? 这是中央首次大规模集中处理这一长期遭诟病的干部作风问题。 +走读干部现象在哪里比较多? 干部“走读”问题主要在乡镇地区比较突出,城市地区则较少。 +走读干部现象在哪里比较多? 从历史成因和各地反映的情况来看,产生“走读”现象的主要原因大致有四种: +走读干部现象在哪里比较多? 现今绝大多数乡村都有通往乡镇和县城的石子公路甚至柏油公路,这无疑为农村干部的出行创造了便利条件,为“干部像候鸟,频往家里跑”创造了客观条件。 +走读干部现象在哪里比较多? 选调生、公务员队伍大多是学历较高的大学毕业生,曾在高校所在地的城市生活,不少人向往城市生活,他们不安心长期扎根基层,而是将基层当作跳板,因此他们往往成为“走读”的主力军。 +走读干部现象在哪里比较多? 公仆意识、服务意识淡化,是“走读”现象滋生的主观原因。 +走读干部现象在哪里比较多? 有些党员干部感到自己长期在基层工作,该为自己和家庭想想了。 +走读干部现象在哪里比较多? 于是,不深入群众认真调查研究、认真听取群众意见、认真解决群众的实际困难,也就不难理解了。 +走读干部现象在哪里比较多? 县级党政组织对乡镇领导干部管理的弱化和为基层服务不到位,导致“走读”问题得不到应有的制度约束,是“走读”问题滋长的组织原因。[2] +走读干部现象在哪里比较多? 近些年来,我国一些地方的“干部走读”现象较为普遍,社会上对此议走读干部论颇多。 +走读干部现象在哪里比较多? 所谓“干部走读”,一般是指县乡两级干部家住县城以上的城市,本人在县城或者乡镇工作,要么早出晚归,要么周一去单位上班、周五回家过周末。 +走读干部现象在哪里比较多? 对于这种现象,社会上的议论多是批评性的,认为这些干部脱离群众、作风漂浮、官僚主义,造成行政成本增加和腐败。 +走读干部现象在哪里比较多? 干部走读之所以成为“千夫所指”,是因为这种行为增加了行政成本。 +走读干部现象在哪里比较多? 从根子上说,干部走读是城乡发展不平衡的产物,“人往高处走,水往低处流”,有了更加舒适的生活环境,不管是为了自己生活条件改善也好,还是因为子女教育也好,农村人口向城镇转移,这是必然结果。 +走读干部现象在哪里比较多? “干部走读”的另一个重要原因,是干部人事制度改革。 +走读干部现象在哪里比较多? 目前公务员队伍“凡进必考”,考上公务员的大多是学历较高的大学毕业生,这些大学毕业生来自各个全国各地,一部分在本地结婚生子,沉淀下来;一部分把公务员作为跳板,到基层后或考研,或再参加省考、国考,或想办法调回原籍。 +走读干部现象在哪里比较多? 再加上一些下派干部、异地交流任职干部,构成了看似庞大的“走读”队伍。 +走读干部现象在哪里比较多? 那么,“干部走读”有哪些弊端呢? +走读干部现象在哪里比较多? 一是这些干部人在基层,心在城市,缺乏长期作战的思想,工作不安心。 +走读干部现象在哪里比较多? 周一来上班,周五回家转,对基层工作缺乏热情和感情;二是长期在省市直机关工作,对基层工作不熟悉不了解,工作不热心;三是长期走读,基层干群有工作难汇报,有困难难解决,群众不开心;四是干部来回走读,公车私驾,私费公报,把大量的经济负担转嫁给基层;五是对这些走读干部,基层管不了,上级监督难,节假日期间到哪里去、做什么事,基本处于失控和真空状态,各级组织和基层干群不放心。 +走读干部现象在哪里比较多? 特别需要引起警觉的是,由于少数走读干部有临时思想,满足于“当维持会长”,得过且过混日子,热衷于做一些急功近利、砸锅求铁的短期行为和政绩工程,不愿做打基础、管长远的实事好事,甚至怠政、疏政和懒于理政,影响了党和政府各项方针政策措施的落实,导致基层无政府主义、自由主义抬头,削弱了党和政府的领导,等到矛盾激化甚至不可收拾的时候,处理已是来之不及。 +走读干部现象在哪里比较多? 权利要与义务相等,不能只有义务而没有权利,或是只有权利没有义务。 +走读干部现象在哪里比较多? 如何真正彻底解决乡镇干部“走读”的现象呢? +走读干部现象在哪里比较多? 那就必须让乡镇基层干部义务与权利相等。 +走读干部现象在哪里比较多? 如果不能解决基层干部待遇等问题,即使干部住村,工作上也不会有什么进展的。 +走读干部现象在哪里比较多? 所以,在政治上关心,在生活上照顾,在待遇上提高。 +走读干部现象在哪里比较多? 如,提高基层干部的工资待遇,增加通讯、交通补助;帮助解决子女入学及老人赡养问题;提拔干部优先考虑基层干部;干部退休时的待遇至少不低于机关干部等等。 +化州市良光镇东岸小学学风是什么? 学校全体教职工爱岗敬业,团结拼搏,勇于开拓,大胆创新,进行教育教学改革,努力开辟第二课堂的教学路子,并开通了网络校校通的交流合作方式。 +化州市良光镇东岸小学学风是什么? 现学校教师正在为创建安全文明校园而努力。 +化州市良光镇东岸小学学风是什么? 东岸小学位置偏僻,地处贫穷落后,是良光镇最偏远的学校,学校,下辖分教点——东心埇小学,[1]?。 +化州市良光镇东岸小学学风是什么? 学校2011年有教师22人,学生231人。 +化州市良光镇东岸小学学风是什么? 小学高级教师8人,小学一级教师10人,未定级教师4人,大专学历的教师6人,其余的都具有中师学历。 +化州市良光镇东岸小学学风是什么? 全校共设12个班,学校课程按标准开设。 +化州市良光镇东岸小学学风是什么? 东岸小学原来是一所破旧不堪,教学质量非常差的薄弱学校。 +化州市良光镇东岸小学学风是什么? 近几年来,在各级政府、教育部门及社会各界热心人士鼎力支持下,学校领导大胆改革创新,致力提高教学质量和教师水平,并加大经费投入,大大改善了办学条件,使学校由差变好,实现了大跨越。 +化州市良光镇东岸小学学风是什么? 学校建设性方面。 +化州市良光镇东岸小学学风是什么? 东岸小学属于革命老区学校,始建于1980年,从东心埇村祠堂搬到这个校址,1990年建造一幢建筑面积为800平方米的南面教学楼, 1998年老促会支持从北面建造一幢1800平方米的教学大楼。 +化州市良光镇东岸小学学风是什么? 学校在管理方面表现方面颇具特色,实现了各项制度的日常化和规范化。 +化州市良光镇东岸小学学风是什么? 学校领导有较强的事业心和责任感,讲求民主与合作,勤政廉政,依法治校,树立了服务意识。 +化州市良光镇东岸小学学风是什么? 学校一贯实施“德育为先,以人为本”的教育方针,制定了“团结,律已,拼搏,创新”的校训。 +化州市良光镇东岸小学学风是什么? 教育风为“爱岗敬业,乐于奉献”,学风为“乐学,勤学,巧学,会学”。 +化州市良光镇东岸小学学风是什么? 校内营造了尊师重教的氛围,形成了良好的校风和学风。 +化州市良光镇东岸小学学风是什么? 教师们爱岗敬业,师德高尚,治学严谨,教研教改气氛浓厚,获得喜人的教研成果。 +化州市良光镇东岸小学学风是什么? 近几年来,教师撰写的教育教学论文共10篇获得县市级以上奖励,获了镇级以上奖励的有100人次。 +化州市良光镇东岸小学学风是什么? 学校德育工作成绩显著,多年被评为“安全事故为零”的学校,良光镇先进学校。 +化州市良光镇东岸小学学风是什么? 特别是教学质量大大提高了。 +化州市良光镇东岸小学学风是什么? 这些成绩得到了上级及群众的充分肯定。 +化州市良光镇东岸小学学风是什么? 1.学校环境欠美观有序,学校大门口及校道有待改造。 +化州市良光镇东岸小学学风是什么? 2.学校管理制度有待改进,部分教师业务水平有待提高。 +化州市良光镇东岸小学学风是什么? 3.教师宿舍、教室及学生宿舍欠缺。 +化州市良光镇东岸小学学风是什么? 4.运动场不够规范,各类体育器材及设施需要增加。 +化州市良光镇东岸小学学风是什么? 5.学生活动空间少,见识面窄,视野不够开阔。 +化州市良光镇东岸小学学风是什么? 1.努力营造和谐的教育教学新气氛。 +化州市良光镇东岸小学学风是什么? 建立科学的管理制度,坚持“与时俱进,以人为本”,真正实现领导对教师,教师对学生之间进行“德治与情治”;学校的人文环境做到“文明,和谐,清新”;德育环境做到“自尊,律已,律人”;心理环境做到“安全,谦虚,奋发”;交际环境做到“团结合作,真诚助人”;景物环境做到“宜人,有序。” +化州市良光镇东岸小学学风是什么? 营造学校与育人的新特色。 +我很好奇发射管的输出功率怎么样? 产生或放大高频功率的静电控制电子管,有时也称振荡管。 +我很好奇发射管的输出功率怎么样? 用于音频或开关电路中的发射管称调制管。 +我很好奇发射管的输出功率怎么样? 发射管是无线电广播、通信、电视发射设备和工业高频设备中的主要电子器件。 +我很好奇发射管的输出功率怎么样? 输出功率和工作频率是发射管的基本技术指标。 +我很好奇发射管的输出功率怎么样? 广播、通信和工业设备的发射管,工作频率一般在30兆赫以下,输出功率在1919年为2千瓦以下,1930年达300千瓦,70年代初已超过1000千瓦,效率高达80%以上。 +我很好奇发射管的输出功率怎么样? 发射管工作频率提高时,输出功率和效率都会降低,因此1936年首次实用的脉冲雷达工作频率仅28兆赫,80年代则已达 400兆赫以上。 +我很好奇发射管的输出功率怎么样? 40年代电视发射管的工作频率为数十兆赫,而80年代初,优良的电视发射管可在1000兆赫下工作,输出功率达20千瓦,效率为40%。 +我很好奇发射管的输出功率怎么样? 平面电极结构的小功率发射三极管可在更高的频率下工作。 +我很好奇发射管的输出功率怎么样? 发射管多采用同心圆筒电极结构。 +我很好奇发射管的输出功率怎么样? 阴极在最内层,向外依次为各个栅极和阳极。 +我很好奇发射管的输出功率怎么样? 图中,自左至右为阴极、第一栅、第二栅、栅极阴极组装件和装入阳极后的整个管子。 +我很好奇发射管的输出功率怎么样? 发射管 +我很好奇发射管的输出功率怎么样? 中小功率发射管多采用间热式氧化物阴极。 +我很好奇发射管的输出功率怎么样? 大功率发射管一般采用碳化钍钨丝阴极,有螺旋、直条或网笼等结构形式。 +我很好奇发射管的输出功率怎么样? 图为网笼式阴极。 +我很好奇发射管的输出功率怎么样? 栅极多用钼丝或钨丝绕制,或用钼片经电加工等方法制造。 +我很好奇发射管的输出功率怎么样? 栅极表面经镀金(或铂)或涂敷锆粉等处理,以降低栅极电子发射,使发射管稳定工作。 +我很好奇发射管的输出功率怎么样? 用气相沉积方法制造的石墨栅极,具有良好的性能。 +我很好奇发射管的输出功率怎么样? 发射管阳极直流输入功率转化为高频输出功率的部分约为75%,其余25%成为阳极热损耗,因此对发射管的阳极必须进行冷却。 +我很好奇发射管的输出功率怎么样? 中小功率发射管的阳极采取自然冷却方式,用镍、钼或石墨等材料制造,装在管壳之内,工作温度可达 600℃。 +我很好奇发射管的输出功率怎么样? 大功率发射管的阳极都用铜制成,并作为真空密封管壳的一部分,采用各种强制冷却方式。 +我很好奇发射管的输出功率怎么样? 各种冷却方式下每平方厘米阳极内表面的散热能力为:水冷100瓦;风冷30瓦;蒸发冷却250瓦;超蒸发冷却1000瓦以上,80年代已制成阳极损耗功率为1250千瓦的超蒸发冷却发射管。 +我很好奇发射管的输出功率怎么样? 发射管也常以冷却方式命名,如风冷发射管、水冷发射管和蒸发冷却发射管。 +我很好奇发射管的输出功率怎么样? 发射管管壳用玻璃或陶瓷制造。 +我很好奇发射管的输出功率怎么样? 小功率发射管内使用含钡的吸气剂;大功率发射管则采用锆、钛、钽等吸气材料,管内压强约为10帕量级。 +我很好奇发射管的输出功率怎么样? 发射管寿命取决于阴极发射电子的能力。 +我很好奇发射管的输出功率怎么样? 大功率发射管寿命最高记录可达8万小时。 +我很好奇发射管的输出功率怎么样? 发射四极管的放大作用和输出输入电路间的隔离效果优于三极管,应用最广。 +我很好奇发射管的输出功率怎么样? 工业高频振荡器普遍采用三极管。 +我很好奇发射管的输出功率怎么样? 五极管多用在小功率范围中。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 鲁能领秀城中央公园位于鲁能领秀城景观中轴之上,总占地161.55亩,总建筑面积约40万平米,容积率为2.70,由22栋小高层、高层组成;其绿地率高达35.2%,环境优美,产品更加注重品质化、人性化和自然生态化,是鲁能领秀城的生态人居典范。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 中央公园[1] 学区准现房,坐享鲁能领秀城成熟配套,成熟生活一步到位。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 经典板式小高层,103㎡2+1房仅22席,稀市推出,错过再无;92㎡经典两房、137㎡舒适三房压轴登场! +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 物业公司: +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 济南凯瑞物业公司;深圳长城物业公司;北京盛世物业有限公司 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 绿化率: +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 42% +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 容积率: +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 2.70 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 暖气: +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 集中供暖 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 楼座展示:中央公园由22栋小高层、高层组成,3、16、17号楼分别是11层小高层,18层和28层的高层。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 4号楼是23层,2梯3户。 +鲁能领秀城中央公园有23层,2梯3户的是几号楼? 项目位置: +鬼青蛙在哪里有收录详情? 鬼青蛙这张卡可以从手卡把这张卡以外的1只水属性怪兽丢弃,从手卡特殊召唤。 +鬼青蛙在哪里有收录详情? 这张卡召唤·反转召唤·特殊召唤成功时,可以从自己的卡组·场上选1只水族·水属性·2星以下的怪兽送去墓地。 +鬼青蛙在哪里有收录详情? 此外,1回合1次,可以通过让自己场上1只怪兽回到手卡,这个回合通常召唤外加上只有1次,自己可以把「鬼青蛙」以外的1只名字带有「青蛙」的怪兽召唤。[1] +鬼青蛙在哪里有收录详情? 游戏王卡包收录详情 +鬼青蛙在哪里有收录详情? [09/09/18] +西湖区有多大? 西湖区是江西省南昌市市辖区。 +西湖区有多大? 为南昌市中心城区之一,有着2200多年历史,是一个物华天宝、人杰地灵的古老城区。 +西湖区有多大? 2004年南昌市老城区区划调整后,西湖区东起京九铁路线与青山湖区毗邻,南以洪城路东段、抚河路南段、象湖以及南隔堤为界与青云谱区、南昌县接壤,西凭赣江中心线与红谷滩新区交界,北沿中山路、北京西路与东湖区相连,所辖面积34.5平方公里,常住人口43万,管辖1个镇、10个街道办事处,设12个行政村、100个社区。 +西湖区有多大? (图)西湖区[南昌市] +西湖区有多大? 西湖原为汉代豫章群古太湖的一部分,唐贞元15年(公元799年)洪恩桥的架设将东太湖分隔成东西两部分,洪恩桥以西谓之西湖,西湖区由此而得名。 +西湖区有多大? 西湖区在1926年南昌设市后分别称第四、五部分,六、七部分。 +西湖区有多大? 1949年解放初期分别称第三、四区。 +西湖区有多大? 1955年分别称抚河区、西湖区。 +西湖区有多大? 1980年两区合并称西湖区。[1] +西湖区有多大? 辖:西湖街道、丁公路街道、广外街道、系马桩街道、绳金塔街道、朝阳洲街道、禾草街街道、十字街街道、瓦子角街道、三眼井街道、上海路街道、筷子巷街道、南站街道。[1] +西湖区有多大? 2002年9月,由原筷子巷街道和原禾草街街道合并设立南浦街道,原广外街道与瓦子角街道的一部分合并设立广润门街道。 +西湖区有多大? 2002年12月1日设立桃源街道。 +西湖区有多大? 2004年区划调整前的西湖区区域:东与青山湖区湖坊乡插花接壤;西临赣江与红谷滩新区隔江相望;南以建设路为界,和青云谱区毗邻;北连中山路,北京西路,与东湖区交界。[1] +西湖区有多大? 2002年9月,由原筷子巷街道和原禾草街街道合并设立南浦街道,原广外街道与瓦子角街道的一部分合并设立广润门街道。 +西湖区有多大? 2002年12月1日设立桃源街道。 +西湖区有多大? 2004年区划调整前的西湖区区域:东与青山湖区湖坊乡插花接壤;西临赣江与红谷滩新区隔江相望;南以建设路为界,和青云谱区毗邻;北连中山路,北京西路,与东湖区交界。 +西湖区有多大? 2004年9月7日,国务院批准(国函[2004]70号)调整南昌市市辖区部分行政区划:将西湖区朝阳洲街道的西船居委会划归东湖区管辖。 +西湖区有多大? 将青山湖区的桃花镇和湖坊镇的同盟村划归西湖区管辖。 +西湖区有多大? 将西湖区十字街街道的谷市街、洪城路、南关口、九四、新丰5个居委会,上海路街道的草珊瑚集团、南昌肠衣厂、电子计算机厂、江西涤纶厂、江地基础公司、曙光、商标彩印厂、南昌市染整厂、江南蓄电池厂、四机床厂、二进、国乐新村12个居委会,南站街道的解放西路东居委会划归青云谱区管辖。 +西湖区有多大? 将西湖区上海路街道的轻化所、洪钢、省人民检察院、电信城东分局、安康、省机械施工公司、省水利设计院、省安装公司、南方电动工具厂、江西橡胶厂、上海路北、南昌电池厂、东华计量所、南昌搪瓷厂、上海路新村、华安针织总厂、江西五金厂、三波电机厂、水文地质大队、二六○厂、省卫生学校、新世纪、上海路住宅区北、塔子桥北、南航、上海路住宅区南、沿河、南昌阀门厂28个居委会,丁公路街道的新魏路、半边街、师大南路、顺化门、岔道口东路、师大、广电厅、手表厂、鸿顺9个居委会,南站街道的工人新村北、工人新村南、商苑、洪都中大道、铁路第三、铁路第四、铁路第六7个居委会划归青山湖区管辖。 +西湖区有多大? 调整后,西湖区辖绳金塔、桃源、朝阳洲、广润门、南浦、西湖、系马桩、十字街、丁公路、南站10个街道和桃花镇,区人民政府驻孺子路。 +西湖区有多大? 调整前,西湖区面积31平方千米,人口52万。 +西湖区有多大? (图)西湖区[南昌市] +西湖区有多大? 西湖区位于江西省省会南昌市的中心地带,具有广阔的发展空间和庞大的消费群体,商贸旅游、娱乐服务业等到各个行业都蕴藏着无限商机,投资前景十分广阔。 +西湖区有多大? 不仅水、电价格低廉,劳动力资源丰富,人均工资和房产价格都比沿海城市低,城区拥有良好的人居环境、低廉的投资成本,巨大的发展潜力。 +西湖区有多大? 105、316、320国道和京九铁路贯穿全境,把南北东西交通连成一线;民航可与上海、北京、广州、深圳、厦门、温州等到地通航,并开通了南昌-新加坡第一条国际航线;水运依托赣江可直达长江各港口;邮电通讯便捷,程控电话、数字微波、图文传真进入国际通讯网络;商检、海关、口岸等涉外机构齐全;水、电、气供应充足。 +西湖区有多大? (图)西湖区[南昌市] +西湖区有多大? 西湖区,是江西省省会南昌市的中心城区,面积34.8平方公里,常住人口51.9万人,辖桃花镇、朝农管理处及10个街道,设13个行政村,116个社区居委会,20个家委会。[2] +西湖区有多大? 2005年11月16日,南昌市《关于同意西湖区桃花镇、桃源、十字街街道办事处行政区划进行调整的批复》 +西湖区有多大? 1、同意将桃花镇的三道闸居委会划归桃源街道办事处管辖。 +青藏虎耳草花期什么时候? 青藏虎耳草多年生草本,高4-11.5厘米,丛生。 +青藏虎耳草花期什么时候? 花期7-8月。 +青藏虎耳草花期什么时候? 分布于甘肃(祁连山地)、青海(黄南、海南、海北)和西藏(加查)。 +青藏虎耳草花期什么时候? 生于海拔3 700-4 250米的林下、高山草甸和高山碎石隙。[1] +青藏虎耳草花期什么时候? 多年生草本,高4-11.5厘米,丛生。 +青藏虎耳草花期什么时候? 茎不分枝,具褐色卷曲柔毛。 +青藏虎耳草花期什么时候? 基生叶具柄,叶片卵形、椭圆形至长圆形,长15-25毫米,宽4-8毫米,腹面无毛,背面和边缘具褐色卷曲柔毛,叶柄长1-3厘米,基部扩大,边缘具褐色卷曲柔毛;茎生叶卵形至椭圆形,长1.5-2厘米,向上渐变小。 +青藏虎耳草花期什么时候? 聚伞花序伞房状,具2-6花;花梗长5-19毫米,密被褐色卷曲柔毛;萼片在花期反曲,卵形至狭卵形,长2.5-4.2毫米,宽1.5-2毫米,先端钝,两面无毛,边缘具褐色卷曲柔毛,3-5脉于先端不汇合;花瓣腹面淡黄色且其中下部具红色斑点,背面紫红色,卵形、狭卵形至近长圆形,长2.5-5.2毫米,宽1.5-2.1毫米,先端钝,基部具长0.5-1毫米之爪,3-5(-7)脉,具2痂体;雄蕊长2-3.6毫米,花丝钻形;子房半下位,周围具环状花盘,花柱长1-1.5毫米。 +青藏虎耳草花期什么时候? 生于高山草甸、碎石间。 +青藏虎耳草花期什么时候? 分布青海、西藏、甘肃、四川等地。 +青藏虎耳草花期什么时候? [1] +青藏虎耳草花期什么时候? 顶峰虎耳草Saxifraga cacuminum Harry Sm. +青藏虎耳草花期什么时候? 对叶虎耳Saxifraga contraria Harry Sm. +青藏虎耳草花期什么时候? 狭瓣虎耳草Saxifraga pseudohirculus Engl. +青藏虎耳草花期什么时候? 唐古特虎耳草Saxifraga tangutica Engl. +青藏虎耳草花期什么时候? 宽叶虎耳草(变种)Saxifraga tangutica Engl. var. platyphylla (Harry Sm.) J. T. Pan +青藏虎耳草花期什么时候? 唐古特虎耳草(原变种)Saxifraga tangutica Engl. var. tangutica +青藏虎耳草花期什么时候? 西藏虎耳草Saxifraga tibetica Losinsk.[1] +青藏虎耳草花期什么时候? Saxifraga przewalskii Engl. in Bull. Acad. Sci. St. -Petersb. 29:115. 1883: Engl et Irmsch. in Bot. Jahrb. 48:580. f. 5E-H. 1912 et in Engl. Pflanzenr. 67(IV. 117): 107. f. 21 E-H. 1916; J. T. Pan in Acta Phytotax. Sin. 16(2): 16. 1978;中国高等植物图鉴补编2: 30. 1983; 西藏植物志 2: 483. 1985. [1] +生产一支欧文冲锋枪需要多少钱? 欧文冲锋枪 Owen Gun 1945年,在新不列颠手持欧文冲锋枪的澳大利亚士兵 类型 冲锋枪 原产国 ?澳大利亚 服役记录 服役期间 1941年-1960年代 用户 参见使用国 参与战役 第二次世界大战 马来亚紧急状态 朝鲜战争 越南战争 1964年罗德西亚布什战争 生产历史 研发者 伊夫林·欧文(Evelyn Owen) 研发日期 1931年-1939年 生产商 约翰·莱萨特工厂 利特高轻武器工厂 单位制造费用 $ 30/枝 生产日期 1941年-1945年 制造数量 45,000-50,000 枝 衍生型 Mk 1/42 Mk 1/43 Mk 2/43 基本规格 总重 空枪: Mk 1/42:4.24 千克(9.35 磅) Mk 1/43:3.99 千克(8.8 磅) Mk 2/43:3.47 千克(7.65 磅) 全长 806 毫米(31.73 英吋) 枪管长度 247 毫米(9.72 英吋) 弹药 制式:9 × 19 毫米 原型:.38/200 原型:.45 ACP 口径 9 × 19 毫米:9 毫米(.357 英吋) .38/200:9.65 毫米(.38 英吋) .45 ACP:11.43 毫米(.45 英吋) 枪管 1 根,膛线7 条,右旋 枪机种类 直接反冲作用 开放式枪机 发射速率 理论射速: Mk 1/42:700 发/分钟 Mk 1/43:680 发/分钟 Mk 2/43:600 发/分钟 实际射速:120 发/分钟 枪口初速 380-420 米/秒(1,246.72-1,377.95 英尺/秒) 有效射程 瞄具装定射程:91.44 米(100 码) 最大有效射程:123 米(134.51 码) 最大射程 200 米(218.72 码) 供弹方式 32/33 发可拆卸式弹匣 瞄准具型式 机械瞄具:向右偏置的觇孔式照门和片状准星 欧文冲锋枪(英语:Owen Gun,正式名称:Owen Machine Carbine,以下简称为“欧文枪”)是一枝由伊夫林·(埃沃)·欧文(英语:Evelyn (Evo) Owen)于1939年研制、澳大利亚的首枝冲锋枪,制式型发射9 × 19 毫米鲁格手枪子弹。 +生产一支欧文冲锋枪需要多少钱? 欧文冲锋枪是澳大利亚唯一设计和主要服役的二战冲锋枪,并从1943年由澳大利亚陆军所使用,直到1960年代中期。 +生产一支欧文冲锋枪需要多少钱? 由新南威尔士州卧龙岗市出身的欧文枪发明者,伊夫林·欧文,在24岁时于1939年7月向悉尼维多利亚军营的澳大利亚陆军军械官员展示了他所设计的.22 LR口径“卡宾机枪”原型枪。 +生产一支欧文冲锋枪需要多少钱? 该枪却被澳大利亚陆军所拒绝,因为澳大利亚陆军在当时没有承认冲锋枪的价值。 +生产一支欧文冲锋枪需要多少钱? 随着战争的爆发,欧文加入了澳大利亚军队,并且成为一名列兵。 +生产一支欧文冲锋枪需要多少钱? 1940年9月,欧文的邻居,文森特·沃德尔(英语:Vincent Wardell),看到欧文家楼梯后面搁著一个麻布袋,里面放著一枝欧文枪的原型枪。 +生产一支欧文冲锋枪需要多少钱? 而文森特·沃德尔是坎布拉港的大型钢制品厂莱萨特公司的经理,他向欧文的父亲表明了他对其儿子的粗心大意感到痛心,但无论如何仍然解释了这款武器的历史。 +生产一支欧文冲锋枪需要多少钱? 沃德尔对欧文枪的简洁的设计留下了深刻的印象。 +生产一支欧文冲锋枪需要多少钱? 沃德尔安排欧文转调到陆军发明部(英语:Army Inventions Board),并重新开始在枪上的工作。 +生产一支欧文冲锋枪需要多少钱? 军队仍然持续地从负面角度查看该武器,但同时政府开始采取越来越有利的观点。 +生产一支欧文冲锋枪需要多少钱? 该欧文枪原型配备了装在顶部的弹鼓,后来让位给装在顶部的弹匣使用。 +生产一支欧文冲锋枪需要多少钱? 口径的选择亦花了一些时间去解决。 +生产一支欧文冲锋枪需要多少钱? 由于陆军有大批量的柯尔特.45 ACP子弹,它们决定欧文枪需要采用这种口径。 +生产一支欧文冲锋枪需要多少钱? 直到在1941年9月19日官方举办试验时,约翰·莱萨特工厂制成了9 毫米、.38/200和.45 ACP三种口径版本。 +生产一支欧文冲锋枪需要多少钱? 而从美、英进口的斯登冲锋枪和汤普森冲锋枪在试验中作为基准使用。 +生产一支欧文冲锋枪需要多少钱? 作为测试的一部分,所有的枪支都浸没在泥浆里,并以沙土覆盖,以模拟他们将会被使用时最恶劣的环境。 +生产一支欧文冲锋枪需要多少钱? 欧文枪是唯一在这测试中这样对待以后仍可正常操作的冲锋枪。 +生产一支欧文冲锋枪需要多少钱? 虽然测试表现出欧文枪具有比汤普森冲锋枪和司登冲锋枪更优秀的可靠性,陆军没有对其口径作出决定。 +生产一支欧文冲锋枪需要多少钱? 结果它在上级政府干预以后,陆军才下令9 毫米的衍生型为正式口径,并在1941年11月20日正式被澳大利亚陆军采用。 +生产一支欧文冲锋枪需要多少钱? 在欧文枪的寿命期间,其可靠性在澳大利亚部队中赢得了“军人的至爱”(英语:Digger's Darling)的绰号,亦有人传言它受到美军高度青睐。 +生产一支欧文冲锋枪需要多少钱? 欧文枪是在1942年开始正式由坎布拉港和纽卡斯尔的约翰·莱萨特工厂投入生产,在生产高峰期每个星期生产800 支。 +生产一支欧文冲锋枪需要多少钱? 1942年3月至1943年2月之间,莱萨特生产了28,000 枝欧文枪。 +生产一支欧文冲锋枪需要多少钱? 然而,最初的一批弹药类型竟然是错误的,以至10,000 枝欧文枪无法提供弹药。 +生产一支欧文冲锋枪需要多少钱? 政府再一次推翻军方的官僚主义作风??,并让弹药通过其最后的生产阶段,以及运送到当时在新几内亚与日军战斗的澳大利亚部队的手中。 +生产一支欧文冲锋枪需要多少钱? 在1941年至1945年间生产了约50,000 枝欧文枪。 +生产一支欧文冲锋枪需要多少钱? 在战争期间,欧文枪的平均生产成本为$ 30。[1] +生产一支欧文冲锋枪需要多少钱? 虽然它是有点笨重,因为其可靠性,欧文枪在士兵当中变得非常流行。 +生产一支欧文冲锋枪需要多少钱? 它是如此成功,它也被新西兰、英国和美国订购。[2] +生产一支欧文冲锋枪需要多少钱? 欧文枪后来也被澳大利亚部队在朝鲜战争和越南战争,[3]特别是步兵组的侦察兵。 +生产一支欧文冲锋枪需要多少钱? 这仍然是一枝制式的澳大利亚陆军武器,直到1960年代中期,它被F1冲锋枪所取代。 +第二届中国光伏摄影大赛因为什么政策而开始的? 光伏发电不仅是全球能源科技和产业发展的重要方向,也是我国具有国际竞争优势的战略性新兴产业,是我国保障能源安全、治理环境污染、应对气候变化的战略性选择。 +第二届中国光伏摄影大赛因为什么政策而开始的? 2013年7月以来,国家出台了《关于促进光伏产业健康发展的若干意见》等一系列政策,大力推进分布式光伏发电的应用,光伏发电有望走进千家万户,融入百姓民生。 +第二届中国光伏摄影大赛因为什么政策而开始的? 大赛主办方以此为契机,开启了“第二届中国光伏摄影大赛”的征程。 +悬赏任务有哪些类型? 悬赏任务,威客网站上一种任务模式,由雇主在威客网站发布任务,提供一定数额的赏金,以吸引威客们参与。 +悬赏任务有哪些类型? 悬赏任务数额一般在几十到几千不等,但也有几万甚至几十万的任务。 +悬赏任务有哪些类型? 主要以提交的作品的质量好坏作为中标标准,当然其中也带有雇主的主观喜好,中标人数较少,多为一个或几个,因此竞争激烈。 +悬赏任务有哪些类型? 大型悬赏任务赏金数额巨大,中标者也较多,但参与人也很多,对于身有一技之长的威客来讲,悬赏任务十分适合。 +悬赏任务有哪些类型? 悬赏任务的类型主要包括:设计类、文案类、取名类、网站类、编程类、推广类等等。 +悬赏任务有哪些类型? 每一类所适合的威客人群不同,报酬的多少也不同,比如设计类的报酬就比较高,一般都几百到几千,而推广类的计件任务报酬比较少,一般也就几块钱,但花费的时间很少,技术要求也很低。 +悬赏任务有哪些类型? 1.注册—登陆 +悬赏任务有哪些类型? 2.点击“我要发悬赏”—按照发布流程及提示提交任务要求。 +悬赏任务有哪些类型? 悬赏模式选择->网站托管赏金模式。 +悬赏任务有哪些类型? 威客网站客服稍后会跟发布者联系确认任务要求。 +悬赏任务有哪些类型? 3.没有问题之后就可以预付赏金进行任务发布。 +悬赏任务有哪些类型? 4.会员参与并提交稿件。 +悬赏任务有哪些类型? 5.发布者需要跟会员互动(每个提交稿件的会员都可以),解决问题,完善稿件,初步筛选稿件。 +悬赏任务有哪些类型? 6.任务发布期结束,进入选稿期(在筛选的稿件中选择最后满意的) +悬赏任务有哪些类型? 7.发布者不满意现有稿件可选定一个会员修改至满意为止,或者加价延期重新开放任务进行征稿。 +悬赏任务有哪些类型? (重复第六步)没有问题后进入下一步。 +悬赏任务有哪些类型? 8:中标会员交源文件给发布者—发布者确认—任务结束—网站将赏金付给中标会员。 +悬赏任务有哪些类型? 1、任务发布者自由定价,自由确定悬赏时间,自由发布任务要求,自主确定中标会员和中标方案。 +悬赏任务有哪些类型? 2、任务发布者100%预付任务赏金,让竞标者坚信您的诚意和诚信。 +悬赏任务有哪些类型? 3、任务赏金分配原则:任务一经发布,网站收取20%发布费,中标会员获得赏金的80%。 +悬赏任务有哪些类型? 4、每个任务最终都会选定至少一个作品中标,至少一个竞标者获得赏金。 +悬赏任务有哪些类型? 5、任务发布者若未征集到满意作品,可以加价延期征集,也可让会员修改,会员也可以删除任务。 +悬赏任务有哪些类型? 6、任务发布者自己所在组织的任何人均不能以任何形式参加自己所发布的任务,一经发现则视为任务发布者委托威客网按照网站规则选稿。 +悬赏任务有哪些类型? 7、任务悬赏总金额低于100元(含100元)的任务,悬赏时间最多为7天。 +悬赏任务有哪些类型? 所有任务最长时间不超过30天(特殊任务除外),任务总金额不得低于50元。 +悬赏任务有哪些类型? 8、网赚类、注册类任务总金额不能低于300元人民币,计件任务每个稿件的平均单价不能低于1元人民币。 +悬赏任务有哪些类型? 9、延期任务只有3次加价机会,第1次加价不得低于任务金额的10%,第2次加价不得低于任务总金额的20%,第3次不得低于任务总金额的50%。 +悬赏任务有哪些类型? 每次延期不能超过15天,加价金额不低于50元,特殊任务可以适当加长。 +悬赏任务有哪些类型? 如果为计件任务,且不是网赚类任务,将免费延期,直至征集完规定数量的作品为止。 +悬赏任务有哪些类型? 10、如果威客以交接源文件要挟任务发布者,威客网将扣除威客相关信用值,并取消其中标资格,同时任务将免费延长相应的时间继续征集作品 。 +江湖令由哪些平台运营? 《江湖令》是以隋唐时期为背景的RPG角色扮演类网页游戏。 +江湖令由哪些平台运营? 集角色扮演、策略、冒险等多种游戏元素为一体,画面精美犹如客户端游戏,融合历史、江湖、武功、恩仇多种特色元素,是款不可多得的精品游戏大作。 +江湖令由哪些平台运营? 由ya247平台、91wan游戏平台、2918、4399游戏平台、37wan、6711、兄弟玩网页游戏平台,49you、Y8Y9平台、8090游戏等平台运营的,由07177游戏网发布媒体资讯的网页游戏。 +江湖令由哪些平台运营? 网页游戏《江湖令》由51游戏社区运营,是以隋唐时期为背景的RPG角色扮演类网页游戏。 +江湖令由哪些平台运营? 集角色扮演、策略、冒险等多种游戏元素为一体,画面精美犹如客户端游戏,融合历史、江湖、武功、恩仇多种特色元素,是款不可多得的精品游戏大作… +江湖令由哪些平台运营? 背景故事: +江湖令由哪些平台运营? 隋朝末年,隋炀帝暴政,天下民不聊生,义军四起。 +江湖令由哪些平台运营? 在这动荡的时代中,百姓生活苦不堪言,多少人流离失所,家破人亡。 +江湖令由哪些平台运营? 天下三大势力---飞羽营、上清宫、侠隐岛,也值此机会扩张势力,派出弟子出来行走江湖。 +江湖令由哪些平台运营? 你便是这些弟子中的普通一员,在这群雄并起的年代,你将如何选择自己的未来。 +江湖令由哪些平台运营? 所有的故事,便从瓦岗寨/江都大营开始…… +江湖令由哪些平台运营? 势力: +江湖令由哪些平台运营? ①、飞羽营:【外功、根骨】 +江湖令由哪些平台运营? 南北朝时期,由北方政权创立的一个民间军事团体,经过多年的发展,逐渐成为江湖一大势力。 +江湖令由哪些平台运营? ②、上清宫:【外功、身法】 +江湖令由哪些平台运营? 道家圣地,宫中弟子讲求清静无为,以一种隐世的方式修炼,但身在此乱世,亦也不能独善其身。 +江湖令由哪些平台运营? ③、侠隐岛:【根骨、内力】 +江湖令由哪些平台运营? 位于偏远海岛上的一个世家,岛内弟子大多武功高强,但从不进入江湖行走,适逢乱世,现今岛主也决意作一翻作为。 +江湖令由哪些平台运营? 两大阵营: +江湖令由哪些平台运营? 义军:隋唐末期,百姓生活苦不堪言,有多个有志之士组成义军,对抗当朝暴君,希望建立一个适合百姓安居乐业的天地。 +江湖令由哪些平台运营? 隋军:战争一起即天下打乱,隋军首先要镇压四起的义军,同时在内部慢慢改变现有的朝廷,让天下再次恢复到昔日的安定。 +江湖令由哪些平台运营? 一、宠物品质 +江湖令由哪些平台运营? 宠物的品质分为:灵兽,妖兽,仙兽,圣兽,神兽 +江湖令由哪些平台运营? 二、宠物获取途径 +江湖令由哪些平台运营? 完成任务奖励宠物(其他途径待定)。 +江湖令由哪些平台运营? 三、宠物融合 +江湖令由哪些平台运营? 1、在主界面下方的【宠/骑】按钮进入宠物界面,再点击【融合】即可进入融合界面进行融合,在融合界面可选择要融合的宠物进行融合 +江湖令由哪些平台运营? 2、融合后主宠的形态不变; +江湖令由哪些平台运营? 3、融合后宠物的成长,品质,技能,经验,成长经验,等级都继承成长高的宠物; +江湖令由哪些平台运营? 4、融合宠物技能冲突,则保留成长值高的宠物技能,如果不冲突则叠加在空余的技能位置。 +请问土耳其足球超级联赛是什么时候成立的? 土耳其足球超级联赛(土耳其文:Türkiye 1. Süper Futbol Ligi)是土耳其足球协会管理的职业足球联赛,通常简称“土超”,也是土耳其足球联赛中最高级别。 +请问土耳其足球超级联赛是什么时候成立的? 目前,土超联赛队伍共有18支。 +请问土耳其足球超级联赛是什么时候成立的? 土耳其足球超级联赛 +请问土耳其足球超级联赛是什么时候成立的? 运动项目 足球 +请问土耳其足球超级联赛是什么时候成立的? 成立年份 1959年 +请问土耳其足球超级联赛是什么时候成立的? 参赛队数 18队 +请问土耳其足球超级联赛是什么时候成立的? 国家 土耳其 +请问土耳其足球超级联赛是什么时候成立的? 现任冠军 费内巴切足球俱乐部(2010-2011) +请问土耳其足球超级联赛是什么时候成立的? 夺冠最多队伍 费内巴切足球俱乐部(18次) +请问土耳其足球超级联赛是什么时候成立的? 土耳其足球超级联赛(Türkiye 1. Süper Futbol Ligi)是土耳其足球协会管理的职业足球联赛,通常简称「土超」,也是土耳其足球联赛中最高级别。 +请问土耳其足球超级联赛是什么时候成立的? 土超联赛队伍共有18支。 +请问土耳其足球超级联赛是什么时候成立的? 土超联赛成立于1959年,成立之前土耳其国有多个地区性联赛。 +请问土耳其足球超级联赛是什么时候成立的? 土超联赛成立后便把各地方联赛制度统一起来。 +请问土耳其足球超级联赛是什么时候成立的? 一般土超联赛由八月开始至五月结束,12月至1月会有歇冬期。 +请问土耳其足球超级联赛是什么时候成立的? 十八支球队会互相对叠,各有主场和作客两部分,采计分制。 +请问土耳其足球超级联赛是什么时候成立的? 联赛枋最底的三支球队会降到土耳其足球甲级联赛作赛。 +请问土耳其足球超级联赛是什么时候成立的? 由2005-06年球季起,土超联赛的冠、亚军会取得参加欧洲联赛冠军杯的资格。 +请问土耳其足球超级联赛是什么时候成立的? 成立至今土超联赛乃由两支著名球会所垄断──加拉塔萨雷足球俱乐部和费内巴切足球俱乐部,截至2009-2010赛季,双方各赢得冠军均为17次。 +请问土耳其足球超级联赛是什么时候成立的? 土超联赛共有18支球队,采取双循环得分制,每场比赛胜方得3分,负方0分,平局双方各得1分。 +请问土耳其足球超级联赛是什么时候成立的? 如果两支球队积分相同,对战成绩好的排名靠前,其次按照净胜球来决定;如果有三支以上的球队分数相同,则按照以下标准来确定排名:1、几支队伍间对战的得分,2、几支队伍间对战的净胜球数,3、总净胜球数。 +请问土耳其足球超级联赛是什么时候成立的? 联赛第1名直接参加下个赛季冠军杯小组赛,第2名参加下个赛季冠军杯资格赛第三轮,第3名进入下个赛季欧洲联赛资格赛第三轮,第4名进入下个赛季欧洲联赛资格赛第二轮,最后三名降入下个赛季的土甲联赛。 +请问土耳其足球超级联赛是什么时候成立的? 该赛季的土耳其杯冠军可参加下个赛季欧洲联赛资格赛第四轮,如果冠军已获得冠军杯资格,则亚军可参加下个赛季欧洲联赛资格赛第四轮,否则名额递补给联赛。 +请问土耳其足球超级联赛是什么时候成立的? 2010年/2011年 费内巴切 +请问土耳其足球超级联赛是什么时候成立的? 2009年/2010年 布尔萨体育(又译贝莎) +请问土耳其足球超级联赛是什么时候成立的? 2008年/2009年 贝西克塔斯 +请问土耳其足球超级联赛是什么时候成立的? 2007年/2008年 加拉塔萨雷 +请问土耳其足球超级联赛是什么时候成立的? 2006年/2007年 费内巴切 +请问土耳其足球超级联赛是什么时候成立的? 2005年/2006年 加拉塔沙雷 +请问土耳其足球超级联赛是什么时候成立的? 2004年/2005年 费内巴切(又译费伦巴治) +请问土耳其足球超级联赛是什么时候成立的? 2003年/2004年 费内巴切 +cid 作Customer IDentity解时是什么意思? ? CID 是 Customer IDentity 的简称,简单来说就是手机的平台版本. CID紧跟IMEI存储在手机的OTP(One Time Programmable)芯片中. CID 后面的数字代表的是索尼爱立信手机软件保护版本号,新的CID不断被使用,以用来防止手机被非索尼爱立信官方的维修程序拿来解锁/刷机/篡改 +cid 作Customer IDentity解时是什么意思? ? CID 是 Customer IDentity 的简称,简单来说就是手机的平台版本. CID紧跟IMEI存储在手机的OTP(One Time Programmable)芯片中. CID 后面的数字代表的是索尼爱立信手机软件保护版本号,新的CID不断被使用,以用来防止手机被非索尼爱立信官方的维修程序拿来解锁/刷机/篡改 +cid 作Customer IDentity解时是什么意思? ? (英)刑事调查局,香港警察的重案组 +cid 作Customer IDentity解时是什么意思? ? Criminal Investigation Department +cid 作Customer IDentity解时是什么意思? ? 佩枪: +cid 作Customer IDentity解时是什么意思? ? 香港警察的CID(刑事侦缉队),各区重案组的探员装备短管点38左轮手枪,其特点是便于收藏,而且不容易卡壳,重量轻,其缺点是装弹量少,只有6发,而且换子弹较慢,威力也一般,如果碰上54式手枪或者M9手枪明显处于下风。 +cid 作Customer IDentity解时是什么意思? ? 香港警察的“刑事侦查”(Criminal Investigation Department)部门,早于1983年起已经不叫做C.I.D.的了,1983年香港警察队的重整架构,撤销了C.I.D. ( Criminal Investigation Dept.) “刑事侦缉处”,将“刑事侦查”部门归入去“行动处”内,是“行动处”内的一个分支部门,叫“刑事部”( Crime Wing )。 +cid 作Customer IDentity解时是什么意思? ? 再于90年代的一次警队重整架构,香港警队成立了新的「刑事及保安处」,再将“刑事侦查”部门归入目前的「刑事及保安处」的“处”级单位,是归入这个“处”下的一个部门,亦叫“刑事部” ( Crime Wing ),由一个助理警务处长(刑事)领导。 +cid 作Customer IDentity解时是什么意思? ? 但是时至今天,CID虽已经是一个老旧的名称,香港市民、甚至香港警察都是习惯性的沿用这个历史上的叫法 . +cid 作Customer IDentity解时是什么意思? ? CID格式是美国Adobe公司发表的最新字库格式,它具有易扩充、速度快、兼容性好、简便、灵活等特点,已成为国内开发中文字库的热点,也为用户使用字库提供质量更好,数量更多的字体。 +cid 作Customer IDentity解时是什么意思? ? CID (Character identifier)就是字符识别码,在组成方式上分成CIDFont,CMap表两部分。 +cid 作Customer IDentity解时是什么意思? ? CIDFont文件即总字符集,包括了一种特定语言中所有常用的字符,把这些字符排序,它们在总字符集中排列的次序号就是各个字符的CID标识码(Index);CMap(Character Map)表即字符映像文件,将字符的编码(Code)映像到字符的CID标识码(Index)。 +cid 作Customer IDentity解时是什么意思? ? CID字库完全针对大字符集市场设计,其基本过程为:先根据Code,在CMap表查到Index,然后在CIDFont文件找到相应的字形数据。 +本町位于什么地方? 本条目记述台湾日治时期,各都市之本町。 +本町位于什么地方? 为台湾日治时期台北市之行政区,共分一~四丁目,在表町之西。 +本町位于什么地方? 以现在的位置来看,本町位于现台北市中正区的西北角,约位于忠孝西路一段往西至台北邮局东侧。 +本町位于什么地方? 再向南至开封街一段,沿此路线向西至开封街一段60号,顺60号到汉口街一段向东到现在华南银行总行附近画一条直线到衡阳路。 +本町位于什么地方? 再向东至重庆南路一段,由重庆南路一段回到原点这个范围内。 +本町位于什么地方? 另外,重庆南路一段在当时名为“本町通”。 +本町位于什么地方? 此地方自日治时期起,就是繁华的商业地区,当时也有三和银行、台北专卖分局、日本石油等重要商业机构。 +本町位于什么地方? 其中,专卖分局是战后二二八事件的主要起始点。 +本町位于什么地方? 台湾贮蓄银行(一丁目) +本町位于什么地方? 三和银行(二丁目) +本町位于什么地方? 专卖局台北分局(三丁目) +本町位于什么地方? 日本石油(四丁目) +本町位于什么地方? 为台湾日治时期台南市之行政区。 +本町位于什么地方? 范围包括清代旧街名枋桥头前、枋桥头后、鞋、草花、天公埕、竹仔、下大埕、帽仔、武馆、统领巷、大井头、内宫后、内南町。 +本町位于什么地方? 为清代台南城最繁华的区域。 +本町位于什么地方? 台南公会堂 +本町位于什么地方? 北极殿 +本町位于什么地方? 开基武庙 +本町位于什么地方? 町名改正 +本町位于什么地方? 这是一个与台湾相关的小作品。 +本町位于什么地方? 你可以通过编辑或修订扩充其内容。 +《行走的观点:埃及》的条形码是多少? 出版社: 上海社会科学院出版社; 第1版 (2006年5月1日) +《行走的观点:埃及》的条形码是多少? 丛书名: 时代建筑视觉旅行丛书 +《行走的观点:埃及》的条形码是多少? 条形码: 9787806818640 +《行走的观点:埃及》的条形码是多少? 尺寸: 18 x 13.1 x 0.7 cm +《行走的观点:埃及》的条形码是多少? 重量: 181 g +《行走的观点:埃及》的条形码是多少? 漂浮在沙与海市蜃楼之上的金字塔曾经是否是你的一个梦。 +《行走的观点:埃及》的条形码是多少? 埃及,这片蕴蓄了5000年文明的土地,本书为你撩开它神秘的纱。 +《行走的观点:埃及》的条形码是多少? 诸神、金字塔、神庙、狮身人面像、法老、艳后吸引着我们的注意力;缠绵悱恻的象形文字、医学、雕刻等留给我们的文明,不断引发我们对古代文明的惊喜和赞叹。 +《行走的观点:埃及》的条形码是多少? 尼罗河畔的奇异之旅,数千年的古老文明,尽收在你的眼底…… +《行走的观点:埃及》的条形码是多少? 本书集历史、文化、地理等知识于一体,并以优美、流畅文笔,简明扼要地阐述了埃及的地理环境、政治经济、历史沿革、文化艺术,以大量富有艺术感染力的彩色照片,生动形象地展示了埃及最具特色的名胜古迹、风土人情和自然风光。 +《行走的观点:埃及》的条形码是多少? 古埃及历史 +老挝人民军的工兵部队有几个营? 老挝人民军前身为老挝爱国战线领导的“寮国战斗部队”(即“巴特寮”),始建于1949年1月20日,1965年10月改名为老挝人民解放军,1982年7月改称现名。 +老挝人民军的工兵部队有几个营? 最高领导机构是中央国防和治安委员会,朱马里·赛雅颂任主席,隆再·皮吉任国防部长。 +老挝人民军的工兵部队有几个营? 实行义务兵役制,服役期最少18个月。[1] +老挝人民军的工兵部队有几个营? ?老挝军队在老挝社会中有较好的地位和保障,工资待遇比地方政府工作人员略高。 +老挝人民军的工兵部队有几个营? 武装部队总兵力约6万人,其中陆军约5万人,主力部队编为5个步兵师;空军2000多人;海军(内河巡逻部队)1000多人;部队机关院校5000人。[1] +老挝人民军的工兵部队有几个营? 老挝人民军军旗 +老挝人民军的工兵部队有几个营? 1991年8月14日通过的《老挝人民民主共和国宪法》第11条规定:国家执行保卫国防和维护社会安宁的政策。 +老挝人民军的工兵部队有几个营? 全体公民和国防力量、治安力量必须发扬忠于祖国、忠于人民的精神,履行保卫革命成果、保卫人民生命财产及和平劳动的任务,积极参加国家建设事业。 +老挝人民军的工兵部队有几个营? 最高领导机构是中央国防和治安委员会。 +老挝人民军的工兵部队有几个营? 主席由老挝人民革命党中央委员会总书记兼任。 +老挝人民军的工兵部队有几个营? 老挝陆军成立最早,兵力最多,约有5万人。 +老挝人民军的工兵部队有几个营? 其中主力部队步兵师5个、7个独立团、30多个营、65个独立连。 +老挝人民军的工兵部队有几个营? 地方部队30余个营及县属部队。 +老挝人民军的工兵部队有几个营? 地面炮兵2个团,10多个营。 +老挝人民军的工兵部队有几个营? 高射炮兵1个团9个营。 +老挝人民军的工兵部队有几个营? 导弹部队2个营。 +老挝人民军的工兵部队有几个营? 装甲兵7个营。 +老挝人民军的工兵部队有几个营? 特工部队6个营。 +老挝人民军的工兵部队有几个营? 通讯部队9个营。 +老挝人民军的工兵部队有几个营? 工兵部队6个营。 +老挝人民军的工兵部队有几个营? 基建工程兵2个团13个营。 +老挝人民军的工兵部队有几个营? 运输部队7个营。 +老挝人民军的工兵部队有几个营? 陆军的装备基本是中国和前苏联援助的装备和部分从抗美战争中缴获的美式装备。 +老挝人民军的工兵部队有几个营? 老挝内河部队总兵力约1700人,装备有内河船艇110多艘,编成4个艇队。 +老挝人民军的工兵部队有几个营? 有芒宽、巴能、纳坎、他曲、南盖、巴色等8个基地。 +老挝人民军的工兵部队有几个营? 空军于1975年8月组建,现有2个团、11个飞行大队,总兵力约2000人。 +老挝人民军的工兵部队有几个营? 装备有各种飞机140架,其中主要由前苏联提供和从万象政权的皇家空军手中接管。 +老挝人民军的工兵部队有几个营? 随着军队建设质量的提高,老挝人民军对外军事合作步伐也日益扩大,近年来先后与俄罗斯、印度、马来西亚、越南、菲律宾等国拓展了军事交流与合作的内容。 +老挝人民军的工兵部队有几个营? 2003年1月,印度决定向老挝援助一批军事装备和物资,并承诺提供技术帮助。 +老挝人民军的工兵部队有几个营? 2003年6月,老挝向俄罗斯订购了一批新式防空武器;2003年4月,老挝与越南签署了越南帮助老挝培训军事指挥干部和特种部队以及完成军队通信系统改造等多项协议。 +《焚心之城》的主角是谁? 《焚心之城》[1] 为网络作家老子扛过枪创作的一部都市类小说,目前正在创世中文网连载中。 +《焚心之城》的主角是谁? 乡下大男孩薛城,是一个不甘于生活现状的混混,他混过、爱过、也深深地被伤害过。 +《焚心之城》的主角是谁? 本料此生当浑浑噩噩,拼搏街头。 +《焚心之城》的主角是谁? 高考的成绩却给了他一点渺茫的希望,二月后,大学如期吹响了他进城的号角。 +《焚心之城》的主角是谁? 繁华的都市,热血的人生,冷眼嘲笑中,他发誓再不做一个平常人! +《焚心之城》的主角是谁? 江北小城,黑河大地,他要行走过的每一个角落都有他的传说。 +《焚心之城》的主角是谁? 扯出一面旗,拉一帮兄弟,做男人,就要多一份担当,活一口傲气。 +《焚心之城》的主角是谁? (日期截止到2014年10月23日凌晨) +请问香港利丰集团是什么时候成立的? 香港利丰集团前身是广州的华资贸易 (1906 - 1949) ,利丰是香港历史最悠久的出口贸易商号之一。 +请问香港利丰集团是什么时候成立的? 于1906年,冯柏燎先生和李道明先生在广州创立了利丰贸易公司;是当时中国第一家华资的对外贸易出口商。 +请问香港利丰集团是什么时候成立的? 利丰于1906年创立,初时只从事瓷器及丝绸生意;一年之后,增添了其它的货品,包括竹器、藤器、玉石、象牙及其它手工艺品,包括烟花爆竹类别。 +请问香港利丰集团是什么时候成立的? 在早期的对外贸易,中国南方内河港因水深不足不能行驶远洋船,反之香港港口水深岸阔,占尽地利。 +请问香港利丰集团是什么时候成立的? 因此,在香港成立分公司的责任,落在冯柏燎先生的三子冯汉柱先生身上。 +请问香港利丰集团是什么时候成立的? 1937年12月28日,利丰(1937)有限公司正式在香港创立。 +请问香港利丰集团是什么时候成立的? 第二次世界大战期间,利丰暂停贸易业务。 +请问香港利丰集团是什么时候成立的? 1943年,随着创办人冯柏燎先生去世后,业务移交给冯氏家族第二代。 +请问香港利丰集团是什么时候成立的? 之后,向来不参与业务管理的合伙人李道明先生宣布退休,将所拥有的利丰股权全部卖给冯氏家族。 +请问香港利丰集团是什么时候成立的? 目前由哈佛冯家两兄弟William Fung , Victor Fung和CEO Bruce Rockowitz 管理。 +请问香港利丰集团是什么时候成立的? 截止到2012年,集团旗下有利亚﹝零售﹞有限公司、利和集团、利邦时装有限公司、利越时装有限公司、利丰贸易有限公司。 +请问香港利丰集团是什么时候成立的? 利亚(零售)连锁,业务包括大家所熟悉的:OK便利店、玩具〝反〞斗城和圣安娜饼屋;范围包括香港、台湾、新加坡、马来西亚、至中国大陆及东南亚其它市场逾600多家店 +请问香港利丰集团是什么时候成立的? 利和集团,IDS以专业物流服务为根基,为客户提供经销,物流,制造服务领域内的一系列服务项目。 +请问香港利丰集团是什么时候成立的? 业务网络覆盖大中华区,东盟,美国及英国,经营着90多个经销中心,在中国设有18个经销公司,10,000家现代经销门店。 +请问香港利丰集团是什么时候成立的? 利邦(上海)时装贸易有限公司为大中华区其中一家大型男士服装零售集团。 +请问香港利丰集团是什么时候成立的? 现在在中国大陆、香港、台湾和澳门收购经营11个包括Cerruti 1881,Gieves & Hawkes,Kent & curwen和D’urban 等中档到高档的男士服装品牌,全国有超过350间门店设于各一线城市之高级商场及百货公司。 +请问香港利丰集团是什么时候成立的? 利越(上海)服装商贸有限公司隶属于Branded Lifestyle,负责中国大陆地区LEO里奥(意大利)、GIBO捷宝(意大利)、UFFIZI古杰师(意大利)、OVVIO奥维路(意大利)、Roots绿适(加拿大,全球服装排名第四)品牌销售业务 +请问香港利丰集团是什么时候成立的? 利丰(贸易)1995年收购了英之杰采购服务,1999年收购太古贸易有限公司(Swire & Maclain) 和金巴莉有限公司(Camberley),2000年和2002年分别收购香港采购出口集团Colby Group及Janco Oversea Limited,大大扩张了在美国及欧洲的顾客群,自2008年经济危机起一直到现在,收购多家欧、美、印、非等地区的时尚品牌,如英国品牌Visage,仅2011年上半年6个月就完成26个品牌的收购。 +请问香港利丰集团是什么时候成立的? 2004年利丰与Levi Strauss & Co.签订特许经营协议 +请问香港利丰集团是什么时候成立的? 2005年利丰伙拍Daymon Worldwide为全球供应私有品牌和特许品牌 +请问香港利丰集团是什么时候成立的? 2006年收购Rossetti手袋业务及Oxford Womenswear Group 强化美国批发业务 +请问香港利丰集团是什么时候成立的? 2007年收购Tommy Hilfiher全球采购业务,收购CGroup、Peter Black International LTD、Regetta USA LLC和American Marketing Enterprice +请问香港利丰集团是什么时候成立的? 2008年收购Kent&Curwen全球特许经营权,收购Van Zeeland,Inc和Miles Fashion Group +请问香港利丰集团是什么时候成立的? 2009年收购加拿大休闲品牌Roots ,收购Wear Me Appearl,LLC。 +请问香港利丰集团是什么时候成立的? 与Hudson's Bay、Wolverine Worldwide Inc、Talbots、Liz Claiborne达成了采购协议 +请问香港利丰集团是什么时候成立的? 2010年收购Oxford apparel Visage Group LTD +请问香港利丰集团是什么时候成立的? 2011年一月收购土耳其Modium、美国女性时尚Beyond Productions,三月收购贸易公司Celissa 、玩具公司Techno Source USA, Inc.、卡通品牌产品TVMania和法国著名时装一线品牌Cerruti 1881,五月收购Loyaltex Apparel Ltd.、女装Hampshire Designers和英国彩妆Collection 2000,六月收购家私贸易Exim Designs Co., Ltd.,七月收购家庭旅行产业Union Rich USA, LLC和设计公司Lloyd Textile Fashion Company Limited,八月收购童装Fishman & Tobin和Crimzon Rose,九月收购家私贸易True Innovations, LLC、日用品企业Midway Enterprises和Wonderful World。 +请问香港利丰集团是什么时候成立的? 十二月与USPA – U.S. Polo Association签署授权协议。 +请问香港利丰集团是什么时候成立的? 利丰的精神:积极进取,不断认识并争取有利于客户和自身进步的机会;以行动为主导,对客户、供应商及职工的需求作出快速的决定。 +请问香港利丰集团是什么时候成立的? 利丰的最终目标:在产品采购、销售、流转的各环节建立全球性队伍提供多元化服务,利丰成员有效合作,共达目标。 +如何使魔兽变种akt不被查杀? Trojan/PSW.Moshou.akt“魔兽”变种akt是“魔兽”木马家族的最新成员之一,采用Delphi 6.0-7.0编写,并经过加壳处理。 +如何使魔兽变种akt不被查杀? “魔兽”变种akt运行后,自我复制到被感染计算机的指定目录下。 +如何使魔兽变种akt不被查杀? 修改注册表,实现木马开机自动运行。 +如何使魔兽变种akt不被查杀? 自我注入到被感染计算机的“explorer.exe”、“notepad.exe”等用户级权限的进程中加载运行,隐藏自我,防止被查杀。 +如何使魔兽变种akt不被查杀? 在后台秘密监视用户打开的窗口标题,盗取网络游戏《魔兽世界》玩家的游戏帐号、游戏密码、角色等级、装备信息、金钱数量等信息,并在后台将窃取到的玩家信息发送到骇客指定的远程服务器上,致使玩家游戏帐号、装备物品、金钱等丢失,给游戏玩家造成非常大的损失。 +丙种球蛋白能预防什么病情? 丙种球蛋白预防传染性肝炎,预防麻疹等病毒性疾病感染,治疗先天性丙种球蛋白缺乏症 ,与抗生素合并使用,可提高对某些严重细菌性和病毒性疾病感染的疗效。 +丙种球蛋白能预防什么病情? 中文简称:“丙球” +丙种球蛋白能预防什么病情? 英文名称:γ-globulin、gamma globulin +丙种球蛋白能预防什么病情? 【别名】 免疫血清球蛋白,普通免疫球蛋白,人血丙种球蛋白,丙种球蛋白,静脉注射用人免疫球蛋白(pH4) +丙种球蛋白能预防什么病情? 注:由于人血中的免疫球蛋白大多数为丙种球蛋白(γ-球蛋白),有时丙种球蛋白也被混称为“免疫球蛋白”(immunoglobulin) 。 +丙种球蛋白能预防什么病情? 冻干制剂应为白色或灰白色的疏松体,液体制剂和冻干制剂溶解后,溶液应为接近无色或淡黄色的澄明液体,微带乳光。 +丙种球蛋白能预防什么病情? 但不应含有异物或摇不散的沉淀。 +丙种球蛋白能预防什么病情? 注射丙种球蛋白是一种被动免疫疗法。 +丙种球蛋白能预防什么病情? 它是把免疫球蛋白内含有的大量抗体输给受者,使之从低或无免疫状态很快达到暂时免疫保护状态。 +丙种球蛋白能预防什么病情? 由于抗体与抗原相互作用起到直接中和毒素与杀死细菌和病毒。 +丙种球蛋白能预防什么病情? 因此免疫球蛋白制品对预防细菌、病毒性感染有一定的作用[1]。 +丙种球蛋白能预防什么病情? 人免疫球蛋白的生物半衰期为16~24天。 +丙种球蛋白能预防什么病情? 1、丙种球蛋白[2]含有健康人群血清所具有的各种抗体,因而有增强机体抵抗力以预防感染的作用。 +丙种球蛋白能预防什么病情? 2、主要治疗先天性丙种球蛋白缺乏症和免疫缺陷病 +丙种球蛋白能预防什么病情? 3、预防传染性肝炎,如甲型肝炎和乙型肝炎等。 +丙种球蛋白能预防什么病情? 4、用于麻疹、水痘、腮腺炎、带状疱疹等病毒感染和细菌感染的防治 +丙种球蛋白能预防什么病情? 5、也可用于哮喘、过敏性鼻炎、湿疹等内源性过敏性疾病。 +丙种球蛋白能预防什么病情? 6、与抗生素合并使用,可提高对某些严重细菌性和病毒性疾病感染的疗效。 +丙种球蛋白能预防什么病情? 7、川崎病,又称皮肤粘膜淋巴结综合征,常见于儿童,丙种球蛋白是主要的治疗药物。 +丙种球蛋白能预防什么病情? 1、对免疫球蛋白过敏或有其他严重过敏史者。 +丙种球蛋白能预防什么病情? 2、有IgA抗体的选择性IgA缺乏者。 +丙种球蛋白能预防什么病情? 3、发烧患者禁用或慎用。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (1997年9月1日浙江省第八届人民代表大会常务委员会第三十九次会议通过 1997年9月9日浙江省第八届人民代表大会常务委员会公告第六十九号公布自公布之日起施行) +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 为了保护人的生命和健康,发扬人道主义精神,促进社会发展与和平进步事业,根据《中华人民共和国红十字会法》,结合本省实际,制定本办法。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 本省县级以上按行政区域建立的红十字会,是中国红十字会的地方组织,是从事人道主义工作的社会救助团体,依法取得社会团体法人资格,设置工作机构,配备专职工作人员,依照《中国红十字会章程》独立自主地开展工作。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 全省性行业根据需要可以建立行业红十字会,配备专职或兼职工作人员。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 街道、乡(镇)、机关、团体、学校、企业、事业单位根据需要,可以依照《中国红十字会章程》建立红十字会的基层组织。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 上级红十字会指导下级红十字会的工作。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 县级以上地方红十字会指导所在行政区域行业红十字会和基层红十字会的工作。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 人民政府对红十字会给予支持和资助,保障红十字会依法履行职责,并对其活动进行监督;红十字会协助人民政府开展与其职责有关的活动。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 全社会都应当关心和支持红十字事业。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 本省公民和单位承认《中国红十字会章程》并缴纳会费的,可以自愿参加红十字会,成为红十字会的个人会员或团体会员。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 个人会员由本人申请,基层红十字会批准,发给会员证;团体会员由单位申请,县级以上红十字会批准,发给团体会员证。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 个人会员和团体会员应当遵守《中华人民共和国红十字会法》和《中国红十字会章程》,热心红十字事业,履行会员的义务,并享有会员的权利。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 县级以上红十字会理事会由会员代表大会民主选举产生。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 理事会民主选举产生会长和副会长;根据会长提名,决定秘书长、副秘书长人选。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 县级以上红十字会可以设名誉会长、名誉副会长和名誉理事,由同级红十字会理事会聘请。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 省、市(地)红十字会根据独立、平等、互相尊重的原则,发展同境外、国外地方红十字会和红新月会的友好往来和合作关系。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 红十字会履行下列职责: +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (一)宣传、贯彻《中华人民共和国红十字会法》和本办法; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (二)开展救灾的准备工作,筹措救灾款物;在自然灾害和突发事件中,对伤病人员和其他受害者进行救助; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (三)普及卫生救护和防病知识,进行初级卫生救护培训,对交通、电力、建筑、矿山等容易发生意外伤害的单位进行现场救护培训; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (四)组织群众参加现场救护; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (五)参与输血献血工作,推动无偿献血; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (六)开展红十字青少年活动; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (七)根据中国红十字会总会部署,参加国际人道主义救援工作; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (八)依照国际红十字和红新月运动的基本原则,完成同级人民政府和上级红十字会委托的有关事宜; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (九)《中华人民共和国红十宇会法》和《中国红十字会章程》规定的其他职责。 +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? 第八条 红十字会经费的主要来源: +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (一)红十字会会员缴纳的会费; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (二)接受国内外组织和个人捐赠的款物; +浙江省实施《中华人民共和国红十字会法》办法在浙江省第八届人民代表大会常务委员会第几次会议通过的? (三)红十字会的动产、不动产以及兴办社会福利事业和经济实体的收入; +宝湖庭院绿化率多少? 建发·宝湖庭院位于银川市金凤区核心地带—正源南街与长城中路交汇处向东500米。 +宝湖庭院绿化率多少? 项目已于2012年4月开工建设,总占地约4.2万平方米,总建筑面积约11.2万平方米,容积率2.14,绿化率35%,预计可入住630户。 +宝湖庭院绿化率多少? “建发·宝湖庭院”是银川建发集团股份有限公司继“建发·宝湖湾”之后,在宝湖湖区的又一力作。 +宝湖庭院绿化率多少? 项目周边发展成熟,东有唐徕渠景观水道,西临银川市交通主干道正源街;南侧与宝湖湿地公园遥相呼应。 +宝湖庭院绿化率多少? “宝湖庭院”项目公共交通资源丰富:15路、21路、35路、38路、43路公交车贯穿银川市各地,出行便利。 +宝湖庭院绿化率多少? 距离新百良田购物广场约1公里,工人疗养院600米,宝湖公园1公里,唐徕渠景观水道500米。 +宝湖庭院绿化率多少? 项目位置优越,购物、餐饮、医疗、交通、休闲等生活资源丰富。[1] +宝湖庭院绿化率多少? 建发·宝湖庭院建筑及景观设置传承建发一贯“简约、大气”的风格:搂间距宽广,确保每一座楼宇视野开阔通透。 +宝湖庭院绿化率多少? 楼宇位置错落有置,外立面设计大气沉稳别致。 +宝湖庭院绿化率多少? 项目内部休闲绿地、景观小品点缀其中,道路及停车系统设计合理,停车及通行条件便利。 +宝湖庭院绿化率多少? 社区会所、幼儿园、活动室、医疗服务中心等生活配套一应俱全。 +宝湖庭院绿化率多少? 行政区域:金凤区 +大月兔(中秋艺术作品)的作者还有哪些代表作? 大月兔是荷兰“大黄鸭”之父弗洛伦泰因·霍夫曼打造的大型装置艺术作品,该作品首次亮相于台湾桃园大园乡海军基地,为了迎接中秋节的到来;在展览期间,海军基地也首次对外开放。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 霍夫曼觉得中国神话中捣杵的玉兔很有想象力,于是特别创作了“月兔”,这也是“月兔”新作第一次展出。[1] +大月兔(中秋艺术作品)的作者还有哪些代表作? ?2014年9月15日因工人施工不慎,遭火烧毁。[2] +大月兔(中秋艺术作品)的作者还有哪些代表作? “大月兔”外表采用的杜邦防水纸、会随风飘动,内部以木材加保丽龙框架支撑做成。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 兔毛用防水纸做成,材质完全防水,不怕日晒雨淋。[3 +大月兔(中秋艺术作品)的作者还有哪些代表作? -4] +大月兔(中秋艺术作品)的作者还有哪些代表作? 25米的“月兔”倚靠在机 +大月兔(中秋艺术作品)的作者还有哪些代表作? 堡上望着天空,像在思考又像赏月。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 月兔斜躺在机堡上,意在思考生命、边做白日梦,编织自己的故事。[3] +大月兔(中秋艺术作品)的作者还有哪些代表作? 台湾桃园大园乡海军基地也首度对外开放。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 428公顷的海军基地中,地景艺术节使用约40公顷,展场包括过去军机机堡、跑道等,由于这处基地过去警备森严,不对外开放,这次结合地景艺术展出,也可一窥过去是黑猫中队基地的神秘面纱。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 2014年9月2日,桃园县政府文化局举行“踩线团”,让 +大月兔(中秋艺术作品)的作者还有哪些代表作? 大月兔 +大月兔(中秋艺术作品)的作者还有哪些代表作? 各项地景艺术作品呈现在媒体眼中,虽然“月兔”仍在进行最后的细节赶工,但横躺在机堡上的“月兔”雏形已经完工。[5] +大月兔(中秋艺术作品)的作者还有哪些代表作? “这么大”、“好可爱呦”是不少踩线团成员对“月兔”的直觉;尤其在蓝天的衬托及前方绿草的组合下,呈现犹如真实版的爱丽丝梦游仙境。[6] +大月兔(中秋艺术作品)的作者还有哪些代表作? 霍夫曼的作品大月兔,“从平凡中,创作出不平凡的视觉”,创造出观赏者打从心中油然而生的幸福感,拉近观赏者的距离。[6] +大月兔(中秋艺术作品)的作者还有哪些代表作? 2014年9月15日早 +大月兔(中秋艺术作品)的作者还有哪些代表作? 上,施工人员要将月兔拆解,搬离海军基地草皮时,疑施工拆除的卡车,在拆除过程,故障起火,起火的卡车不慎延烧到兔子,造成兔子起火燃烧,消防队员即刻抢救,白色的大月兔立即变成焦黑的火烧兔。[7] +大月兔(中秋艺术作品)的作者还有哪些代表作? 桃园县府表示相当遗憾及难过,也不排除向包商求偿,也已将此事告知霍夫曼。[2] +大月兔(中秋艺术作品)的作者还有哪些代表作? ?[8] +大月兔(中秋艺术作品)的作者还有哪些代表作? 弗洛伦泰因·霍夫曼,荷兰艺术家,以在公共空间创作巨大造型 +大月兔(中秋艺术作品)的作者还有哪些代表作? 物的艺术项目见长。 +大月兔(中秋艺术作品)的作者还有哪些代表作? 代表作品包括“胖猴子”(2010年在巴西圣保罗展出)、“大黄兔”(2011年在瑞典厄勒布鲁展出)、粉红猫(2014年5月在上海亮相)、大黄鸭(Rubber Duck)、月兔等。 +英国耆卫保险公司有多少保险客户? 英国耆卫保险公司(Old Mutual plc)成立于1845年,一直在伦敦证券交易所(伦敦证券交易所:OML)作第一上市,也是全球排名第32位(按营业收入排名)的保险公司(人寿/健康)。 +英国耆卫保险公司有多少保险客户? 公司是全球财富500强公司之一,也是被列入英国金融时报100指数的金融服务集团之一。 +英国耆卫保险公司有多少保险客户? Old Mutual 是一家国际金融服务公司,拥有近320万个保险客户,240万个银行储户,270,000个短期保险客户以及700,000个信托客户 +英国耆卫保险公司有多少保险客户? 英国耆卫保险公司(Old Mutual)是一家国际金融服务公司,总部设在伦敦,主要为全球客户提供长期储蓄的解决方案、资产管理、短期保险和金融服务等,目前业务遍及全球34个国家。[1] +英国耆卫保险公司有多少保险客户? 主要包括人寿保险,资产管理,银行等。 +英国耆卫保险公司有多少保险客户? 1845年,Old Mutual在好望角成立。 +英国耆卫保险公司有多少保险客户? 1870年,董事长Charles Bell设计了Old Mutual公司的标记。 +英国耆卫保险公司有多少保险客户? 1910年,南非从英联邦独立出来。 +英国耆卫保险公司有多少保险客户? Old Mutual的董事长John X. Merriman被选为国家总理。 +英国耆卫保险公司有多少保险客户? 1927年,Old Mutual在Harare成立它的第一个事务所。 +英国耆卫保险公司有多少保险客户? 1960年,Old Mutual在南非成立了Mutual Unit信托公司,用来管理公司的信托业务。 +英国耆卫保险公司有多少保险客户? 1970年,Old Mutual的收入超过100百万R。 +英国耆卫保险公司有多少保险客户? 1980年,Old Mutual成为南非第一大人寿保险公司,年收入达10亿R。 +英国耆卫保险公司有多少保险客户? 1991年,Old Mutual在美国财富周刊上评选的全球保险公司中名列第38位。 +英国耆卫保险公司有多少保险客户? 1995年,Old Mutual在美国波士顿建立投资顾问公司,同年、又在香港和Guernsey建立事务所。 +英国耆卫保险公司有多少保险客户? 作为一项加强与其母公司联系的举措,OMNIA公司(百慕大)荣幸的更名为Old Mutual 公司(百慕大) 。 +英国耆卫保险公司有多少保险客户? 这一新的名称和企业识别清晰地展示出公司成为其世界金融机构合作伙伴强有力支持的决心。 +英国耆卫保险公司有多少保险客户? 2003 年4月,该公司被Old Mutual plc公司收购,更名为Sage Life(百慕大)公司并闻名于世,公司为Old Mutual公司提供了一个新的销售渠道,补充了其现有的以美元计价的产品线和分销系统。 +英国耆卫保险公司有多少保险客户? 达到了一个重要里程碑是公司成功的一个例证: 2005年6月3日公司资产超过10亿美元成为公司的一个主要里程碑,也是公司成功的一个例证。 +英国耆卫保险公司有多少保险客户? Old Mutual (百慕大)为客户提供一系列的投资产品。 +英国耆卫保险公司有多少保险客户? 在其开放的结构下,客户除了能够参与由Old Mutual会员管理的方案外,还能够参与由一些世界顶尖投资机构提供的投资选择。 +英国耆卫保险公司有多少保险客户? 首席执行官John Clifford对此发表评论说:“过去的两年对于Old Mutual家族来说是稳固发展的两年,更名是迫在眉睫的事情。 +英国耆卫保险公司有多少保险客户? 通过采用其名字和形象上的相似,Old Mutual (百慕大)进一步强化了与母公司的联系。” +英国耆卫保险公司有多少保险客户? Clifford补充道:“我相信Old Mutual全球品牌认可度和Old Mutual(百慕大)产品专业知识的结合将在未来的日子里进一步推动公司的成功。” +英国耆卫保险公司有多少保险客户? 随着公司更名而来的是公司网站的全新改版,设计投资选择信息、陈述、销售方案、营销材料和公告板块。 +英国耆卫保险公司有多少保险客户? 在美国购买不到OMNIA投资产品,该产品也不向美国公民或居民以及百慕大居民提供。 +英国耆卫保险公司有多少保险客户? 这些产品不对任何要约未得到批准的区域中的任何人,以及进行此要约或询价为非法行为的个人构成要约或询价。 +英国耆卫保险公司有多少保险客户? 关于Old Mutual(百慕大)公司 +英国耆卫保险公司有多少保险客户? Old Mutual(百慕大)公司总部位于百慕大,公司面向非美国居民及公民以及非百慕大居民,通过遍布世界的各个市场的金融机构开发和销售保险和投资方案。 +英国耆卫保险公司有多少保险客户? 这些方案由Old Mutual(百慕大)公司直接做出,向投资者提供各种投资选择和战略,同时提供死亡和其他受益保证。 +谁知道北京的淡定哥做了什么? 尼日利亚足球队守门员恩耶马被封淡定哥,原因是2010年南非世界杯上1:2落后希腊队时,对方前锋已经突破到禁区,其仍头依门柱发呆,其从容淡定令人吃惊。 +谁知道北京的淡定哥做了什么? 淡定哥 +谁知道北京的淡定哥做了什么? 在2010年6月17日的世界杯赛场上,尼日利亚1比2不敌希腊队,但尼日利亚门将恩耶马(英文名:Vincent Enyeama)在赛场上的“淡定”表现令人惊奇。 +谁知道北京的淡定哥做了什么? 随后,网友将赛场照片发布于各大论坛,恩耶马迅速窜红,并被网友称为“淡定哥”。 +谁知道北京的淡定哥做了什么? 淡定哥 +谁知道北京的淡定哥做了什么? 从网友上传得照片中可以看到,“淡定哥”在面临对方前锋突袭至小禁区之时,还靠在球门柱上发呆,其“淡定”程度的确非一般人所能及。 +谁知道北京的淡定哥做了什么? 恩耶马是尼日利亚国家队的主力守门员,目前效力于以色列的特拉维夫哈普尔队。 +谁知道北京的淡定哥做了什么? 1999年,恩耶马在尼日利亚国内的伊波姆星队开始职业生涯,后辗转恩伊姆巴、Iwuanyanwu民族等队,从07年开始,他为特拉维夫效力。 +谁知道北京的淡定哥做了什么? 恩耶马的尼日利亚国脚生涯始于2002年,截至2010年1月底,他为国家队出场已超过50次。 +谁知道北京的淡定哥做了什么? 当地时间2011年1月4日,国际足球历史与统计协会(IFFHS)公布了2010年度世界最佳门将,恩耶马(尼日利亚,特拉维夫夏普尔)10票排第十一 +谁知道北京的淡定哥做了什么? 此词经国家语言资源监测与研究中心等机构专家审定入选2010年年度新词语,并收录到《中国语言生活状况报告》中。 +谁知道北京的淡定哥做了什么? 提示性释义:对遇事从容镇定、处变不惊的男性的戏称。 +谁知道北京的淡定哥做了什么? 例句:上海现“淡定哥”:百米外爆炸他仍专注垂钓(2010年10月20日腾讯网http://news.qq.com/a/20101020/000646.htm) +谁知道北京的淡定哥做了什么? 2011年度新人物 +谁知道北京的淡定哥做了什么? 1、淡定哥(北京) +谁知道北京的淡定哥做了什么? 7月24日傍晚,北京市出现大范围降雨天气,位于通州北苑路出现积水,公交车也难逃被淹。 +谁知道北京的淡定哥做了什么? 李欣摄图片来源:新华网一辆私家车深陷积水,车主索性盘坐在自己的汽车上抽烟等待救援。 +谁知道北京的淡定哥做了什么? 私家车主索性盘坐在自己的车上抽烟等待救援,被网友称“淡定哥” +谁知道北京的淡定哥做了什么? 2、淡定哥——林峰 +谁知道北京的淡定哥做了什么? 在2011年7月23日的动车追尾事故中,绍兴人杨峰(@杨峰特快)在事故中失去了5位亲人:怀孕7个月的妻子、未出世的孩子、岳母、妻姐和外甥女,他的岳父也在事故中受伤正在治疗。 +谁知道北京的淡定哥做了什么? 他披麻戴孝出现在事故现场,要求将家人的死因弄个明白。 +谁知道北京的淡定哥做了什么? 但在第一轮谈判过后,表示:“请原谅我,如果我再坚持,我将失去我最后的第六个亲人。” +谁知道北京的淡定哥做了什么? 如果他继续“纠缠”铁道部,他治疗中的岳父将会“被死亡”。 +谁知道北京的淡定哥做了什么? 很多博友就此批评杨峰,并讽刺其为“淡定哥”。 +071型船坞登陆舰的北约代号是什么? 071型船坞登陆舰(英语:Type 071 Amphibious Transport Dock,北约代号:Yuzhao-class,中文:玉昭级,或以首舰昆仑山号称之为昆仑山级船坞登陆舰),是中国人民解放军海军隶下的大型多功能两栖船坞登陆舰,可作为登陆艇的母舰,用以运送士兵、步兵战车、主战坦克等展开登陆作战,也可搭载两栖车辆,具备大型直升机起降甲板及操作设施。 +071型船坞登陆舰的北约代号是什么? 071型两栖登陆舰是中国首次建造的万吨级作战舰艇,亦为中国大型多功能两栖舰船的开山之作,也可以说是中国万吨级以上大型作战舰艇的试验之作,该舰的建造使中国海军的两栖舰船实力有了质的提升。 +071型船坞登陆舰的北约代号是什么? 在本世纪以前中国海军原有的两栖舰队以一 +071型船坞登陆舰的北约代号是什么? 早期071模型 +071型船坞登陆舰的北约代号是什么? 千至四千吨级登陆舰为主要骨干,这些舰艇吨位小、筹载量有限,直升机操作能力非常欠缺,舰上自卫武装普遍老旧,对于现代化两栖登陆作战可说有很多不足。 +071型船坞登陆舰的北约代号是什么? 为了应对新时期的国际国内形势,中国在本世纪初期紧急强化两栖作战能力,包括短时间内密集建造072、074系列登陆舰,同时也首度设计一种新型船坞登陆舰,型号为071。[1] +071型船坞登陆舰的北约代号是什么? 在两栖作战行动中,这些舰只不得不采取最危险的 +071型船坞登陆舰的北约代号是什么? 舾装中的昆仑山号 +071型船坞登陆舰的北约代号是什么? 敌前登陆方式实施两栖作战行动,必须与敌人预定阻击力量进行面对面的战斗,在台湾地区或者亚洲其他国家的沿海,几乎没有可用而不设防的海滩登陆地带,并且各国或者地区的陆军在战时,可能会很快控制这些易于登陆的海难和港口,这样就限制住了中国海军两栖登陆部队的实际登陆作战能力。 +071型船坞登陆舰的北约代号是什么? 071型登陆舰正是为了更快和更多样化的登陆作战而开发的新型登陆舰艇。[2] +071型船坞登陆舰的北约代号是什么? 071型两栖船坞登陆舰具有十分良好的整体隐身能力, +071型船坞登陆舰的北约代号是什么? 071型概念图 +071型船坞登陆舰的北约代号是什么? 该舰外部线条简洁干练,而且舰体外形下部外倾、上部带有一定角度的内倾,从而形成雷达隐身性能良好的菱形横剖面。 +071型船坞登陆舰的北约代号是什么? 舰体为高干舷平甲板型,长宽比较小,舰身宽满,采用大飞剪型舰首及楔形舰尾,舰的上层建筑位于舰体中间部位,后部是大型直升机甲板,适航性能非常突出。 +071型船坞登陆舰的北约代号是什么? 顶甲板上各类电子设备和武器系统布局十分简洁干净,各系统的突出物很少。 +071型船坞登陆舰的北约代号是什么? 该舰的两座烟囱实行左右分布式设置在舰体两侧,既考虑了隐身特点,也十分新颖。[3] +071型船坞登陆舰的北约代号是什么? 1号甲板及上层建筑物主要设置有指挥室、控 +071型船坞登陆舰的北约代号是什么? 舰尾俯视 +071型船坞登陆舰的北约代号是什么? 制舱、医疗救护舱及一些居住舱,其中医疗救护舱设置有完备的战场救护设施,可以在舰上为伤病员提供紧急手术和野战救护能力。 +071型船坞登陆舰的北约代号是什么? 2号甲板主要是舰员和部分登陆人员的居住舱、办公室及厨房。 +071型船坞登陆舰的北约代号是什么? 主甲板以下则是登陆舱,分前后两段,前段是装甲车辆储存舱,共两层,可以储存登陆装甲车辆和一些其它物资,在进出口处还设有一小型升降机,用于两层之间的移动装卸用。 +071型船坞登陆舰的北约代号是什么? 前段车辆储存舱外壁左右各设有一折叠式装载舱门,所有装载车辆在码头可通过该门直接装载或者登陆上岸。 +071型船坞登陆舰的北约代号是什么? 后段是一个巨型船坞登陆舱,总长约70米,主要用来停泊大小型气垫登陆艇、机械登陆艇或车辆人员登陆艇。[4] +071型船坞登陆舰的北约代号是什么? 自卫武装方面,舰艏设有一门PJ-26型76mm舰炮( +071型船坞登陆舰的北约代号是什么? 井冈山号舰首主炮 +071型船坞登陆舰的北约代号是什么? 俄罗斯AK-176M的中国仿制版,亦被054A采用) , 四具与052B/C相同的726-4 18联装干扰弹发射器分置于舰首两侧以及上层结构两侧,近迫防御则依赖四座布置于上层结构的AK-630 30mm防空机炮 。 +071型船坞登陆舰的北约代号是什么? 原本071模型的舰桥前方设有一座八联装海红-7短程防空导弹发射器,不过071首舰直到出海试航与2009年4月下旬的海上阅兵式中,都未装上此一武器。 +071型船坞登陆舰的北约代号是什么? 电子装备方面, 舰桥后方主桅杆顶配置一具363S型E/F频2D对空/平面搜索雷达 、一具Racal Decca RM-1290 I频导航雷达,后桅杆顶装备一具拥有球型外罩的364型(SR-64)X频2D对空/对海搜索雷达,此外还有一具LR-66C舰炮射控雷达、一具负责导引AK-630机炮的TR-47C型火炮射控雷达等。[5] +071型船坞登陆舰的北约代号是什么? 071型自卫武装布置 +071型船坞登陆舰的北约代号是什么? 071首舰昆仑山号于2006年6月开 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 竹溪县人大常委会办公室:承担人民代表大会会议、常委会会议、主任会议和常委会党组会议(简称“四会”)的筹备和服务工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责常委会组成人员视察活动的联系服务工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 受主任会议委托,拟定有关议案草案。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担常委会人事任免的具体工作,负责机关人事管理和离退休干部的管理与服务。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担县人大机关的行政事务和后勤保障工作,负责机关的安全保卫、文电处理、档案、保密、文印工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担县人大常委会同市人大常委会及乡镇人大的工作联系。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责信息反馈工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 了解宪法、法律、法规和本级人大及其常委会的决议、决定实施情况及常委会成员提出建议办理情况,及时向常委会和主任会议报告。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担人大宣传工作,负责人大常委会会议宣传的组织和联系。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 组织协调各专门工作委员会开展工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承办上级交办的其他工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 办公室下设五个科,即秘书科、调研科、人事任免科、综合科、老干部科。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 教科文卫工作委员会:负责人大教科文卫工作的日常联系、督办、信息收集反馈和业务指导工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责教科文卫方面法律法规贯彻和人大工作情况的宣传、调研工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担人大常委会教科文卫方面会议议题调查的组织联系和调研材料的起草工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承担教科文卫方面规范性备案文件的初审工作,侧重对教科文卫行政执法个案监督业务承办工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责常委会组成人员和人大代表对教科文卫工作方面检查、视察的组织联系工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承办上级交办的其他工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 代表工作委员会:负责与县人大代表和上级人大代表的联系、情况收集交流工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责《代表法》的宣传贯彻和贯彻实施情况的调查研究工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责县人大代表法律法规和人民代表大会制度知识学习的组织和指导工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责常委会主任、副主任和委员走访联系人大代表的组织、联系工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责组织人大系统的干部培训。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责乡镇人大主席团工作的联系和指导。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责人大代表建议、批评和意见办理工作的联系和督办落实。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责人大代表开展活动的组织、联系工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 承办上级交办的其他工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 财政经济工作委员会:负责人大财政经济工作的日常联系、督办、信息收集反馈和业务指导工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 负责财政经济方面法律法规贯彻和人大工作情况的宣传、调研工作。 +我很好奇竹溪县人大常委会财政经济工作委员会是负责做什么的? 对国民经济计划和财政预算编制情况进行初审。 +我想知道武汉常住人口有多少? 武汉,简称“汉”,湖北省省会。 +我想知道武汉常住人口有多少? 它是武昌、汉口、汉阳三镇统称。 +我想知道武汉常住人口有多少? 世界第三大河长江及其最长支流汉江横贯市区,将武汉一分为三,形成武昌、汉口、汉阳,三镇跨江鼎立的格局。 +我想知道武汉常住人口有多少? 唐朝诗人李白在此写下“黄鹤楼中吹玉笛,江城五月落梅花”,因此武汉自古又称“江城”。 +我想知道武汉常住人口有多少? 武汉是中国15个副省级城市之一,全国七大中心城市之一,全市常住人口858万人。 +我想知道武汉常住人口有多少? 华中地区最大都市,华中金融中心、交通中心、文化中心,长江中下游特大城市。 +我想知道武汉常住人口有多少? 武汉城市圈的中心城市。 +我想知道武汉常住人口有多少? [3]武昌、汉口、汉阳三地被俗称武汉三镇。 +我想知道武汉常住人口有多少? 武汉西与仙桃市、洪湖市相接,东与鄂州市、黄石市接壤,南与咸宁市相连,北与孝感市相接,形似一只自西向东的蝴蝶形状。 +我想知道武汉常住人口有多少? 在中国经济地理圈内,武汉处于优越的中心位置是中国地理上的“心脏”,故被称为“九省通衢”之地。 +我想知道武汉常住人口有多少? 武汉市历史悠久,古有夏汭、鄂渚之名。 +我想知道武汉常住人口有多少? 武汉地区考古发现的历史可以上溯距今6000年的新石器时代,其考古发现有东湖放鹰台遗址的含有稻壳的红烧土、石斧、石锛以及鱼叉。 +我想知道武汉常住人口有多少? 市郊黄陂区境内的盘龙城遗址是距今约3500年前的商朝方国宫城,是迄今中国发现及保存最完整的商代古城之一。 +我想知道武汉常住人口有多少? 现代武汉的城市起源,是东汉末年的位于今汉阳的卻月城、鲁山城,和在今武昌蛇山的夏口城。 +我想知道武汉常住人口有多少? 东汉末年,地方军阀刘表派黄祖为江夏太守,将郡治设在位于今汉阳龟山的卻月城中。 +我想知道武汉常住人口有多少? 卻月城是武汉市区内已知的最早城堡。 +我想知道武汉常住人口有多少? 223年,东吴孙权在武昌蛇山修筑夏口城,同时在城内的黄鹄矶上修筑了一座瞭望塔——黄鹤楼。 +我想知道武汉常住人口有多少? 苏轼在《前赤壁赋》中说的“西望夏口,东望武昌”中的夏口就是指武汉(而当时的武昌则是今天的鄂州)。 +我想知道武汉常住人口有多少? 南朝时,夏口扩建为郢州,成为郢州的治所。 +我想知道武汉常住人口有多少? 隋置江夏县和汉阳县,分别以武昌,汉阳为治所。 +我想知道武汉常住人口有多少? 唐时江夏和汉阳分别升为鄂州和沔州的州治,成为长江沿岸的商业重镇。 +我想知道武汉常住人口有多少? 江城之称亦始于隋唐。 +我想知道武汉常住人口有多少? 两宋时武昌属鄂州,汉阳汉口属汉阳郡。 +我想知道武汉常住人口有多少? 经过发掘,武汉出土了大量唐朝墓葬,在武昌马房山和岳家咀出土了灰陶四神砖以及灰陶十二生肖俑等。 +我想知道武汉常住人口有多少? 宋代武汉的制瓷业发达。 +我想知道武汉常住人口有多少? 在市郊江夏区梁子湖旁发现了宋代瓷窑群100多座,烧制的瓷器品种很多,釉色以青白瓷为主。 +我想知道武汉常住人口有多少? 南宋诗人陆游在经过武昌时,写下“市邑雄富,列肆繁错,城外南市亦数里,虽钱塘、建康不能过,隐然一大都会也”来描写武昌的繁华。 +我想知道武汉常住人口有多少? 南宋抗金将领岳飞驻防鄂州(今武昌)8年,在此兴师北伐。 +我想知道武汉常住人口有多少? 元世祖至元十八年(1281年),武昌成为湖广行省的省治。 +我想知道武汉常住人口有多少? 这是武汉第一次成为一级行政单位(相当于现代的省一级)的治所。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 列夫·达维多维奇,托洛茨基是联共(布)党内和第三国际时期反对派的领导人,托派"第四国际"的创始人和领导人。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 列夫·达维多维奇·托洛茨基 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 列夫·达维多维奇·托洛茨基(俄国与国际历史上最重要的无产阶级革命家之一,二十世纪国际共产主义运动中最具争议的、也是备受污蔑的左翼反对派领袖,他以对古典马克思主义“不断革命论”的独创性发展闻名于世,第三共产国际和第四国际的主要缔造者之一(第三国际前三次代表大会的宣言执笔人)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 在1905年俄国革命中被工人群众推举为彼得堡苏维埃主席(而当时布尔什维克多数干部却还在讨论是否支持苏维埃,这些干部后来被赶回俄国的列宁痛击)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1917年革命托洛茨基率领“区联派”与列宁派联合,并再次被工人推举为彼得格勒苏维埃主席。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 对于十月革命这场20世纪最重大的社会革命,托洛茨基赢得了不朽的历史地位。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 后来成了托洛茨基死敌的斯大林,当时作为革命组织领导者之一却写道:“起义的一切实际组织工作是在彼得格勒苏维埃主席托洛茨基同志直接指挥之下完成的。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 我们可以确切地说,卫戍部队之迅速站在苏维埃方面来,革命军事委员会的工作之所以搞得这样好,党认为这首先要归功于托洛茨基同志。” +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? (值得一提的是,若干年后,当反托成为政治需要时,此类评价都从斯大林文章中删掉了。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? )甚至连后来狂热的斯大林派雅克·沙杜尔,当时却也写道:“托洛茨基在十月起义中居支配地位,是起义的钢铁灵魂。” +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? (苏汉诺夫《革命札记》第6卷P76。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? )不仅在起义中,而且在无产阶级政权的捍卫、巩固方面和国际共产主义革命方面,托洛茨基也作出了极其卓越的贡献(外交官-苏联国际革命政策的负责人、苏联红军缔造者以及共产国际缔造者)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 革命后若干年里,托洛茨基与列宁的画像时常双双并列挂在一起;十月革命之后到列宁病逝之前,布尔什维克历次全国代表大会上,代表大会发言结束均高呼口号:“我们的领袖列宁和托洛茨基万岁!” +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 在欧美共运中托洛茨基的威望非常高。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 后人常常认为托洛茨基只是一个知识分子文人,实际上他文武双全,而且谙熟军事指挥艺术,并且亲临战场。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 正是他作为十月革命的最高军事领袖(在十月革命期间他与士兵一起在战壕里作战),并且在1918年缔造并指挥苏联红军,是一个杰出的军事家(列宁曾对朋友说,除了托洛茨基,谁还能给我迅速地造成一支上百万人的强大军队? +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? )。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 在内战期间,他甚至坐装甲列车冒着枪林弹雨亲临战场指挥作战,差点挨炸死;当反革命军队进攻彼得堡时,当时的彼得堡领导人季诺维也夫吓得半死,托洛茨基却从容不迫指挥作战。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 同时托洛茨基又是一个高明的外交家,他曾强硬地要求英国政府释放因反战宣传被囚禁在英国的俄国流亡革命者,否则就不许英国公民离开俄国,连英国政府方面都觉得此举无懈可击;他并且把居高临下的法国到访者当场轰出他的办公室(革命前法国一直是俄国的头号债主与政治操纵者),却彬彬有礼地欢迎前来缓和冲突的法国大使;而在十月革命前夕,他对工人代表议会质询的答复既保守了即将起义的军事秘密,又鼓舞了革命者的战斗意志,同时严格遵循现代民主与公开原则,这些政治答复被波兰人多伊彻誉为“外交辞令的杰作”(伊·多伊彻的托氏传记<先知三部曲·武装的先知>第九章P335,第十一章P390)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 托洛茨基在国民经济管理与研究工作中颇有创造:是苏俄新经济政策的首先提议者以及社会主义计划经济的首先实践者。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1928年斯大林迟迟开始的计划经济实验,是对1923年以托洛茨基为首的左翼反对派经济纲领的拙劣剽窃和粗暴翻版。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 因为统治者的政策迟到,使得新经济政策到1928年已产生了一个威胁政权生存的农村资产阶级,而苏俄工人阶级国家不得不强力解决——而且是不得不借助已蜕化为官僚集团的强力来解决冲突——结果导致了1929年到30年代初的大饥荒和对农民的大量冤枉错杀。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 另外,他还对文学理论有很高的造诣,其著作<文学与革命>甚至影响了整整一代的国际左翼知识分子(包括中国的鲁迅、王实味等人)。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 他在哈佛大学图书馆留下了100多卷的<托洛茨基全集>,其生动而真诚的自传和大量私人日记、信件,给人留下了研究人类生活各个方面的宝贵财富,更是追求社会进步与解放的历史道路上的重要知识库之一。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 托洛茨基1879年10月26日生于乌克兰赫尔松县富裕农民家庭,祖籍是犹太人。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 原姓布隆施泰因。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1896年开始参加工人运动。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1897年 ,参加建立南俄工人协会 ,反对沙皇专制制度。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1898年 在尼古拉也夫组织工人团体,被流放至西伯利亚。 +列夫·达维多维奇·托洛茨基是什么时候开始参加工人运动的? 1902年秋以署名托洛茨基之假护照逃到伦敦,参加V.I.列宁、G.V.普列汉诺夫等人主编的<火星报>的工作。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥,位于洞庭湖与长江交汇处,东接岳阳市区洞庭大道和107国道、京珠高速公路,西连省道306线,是国内目前最长的内河公路桥。 +谁知道洞庭湖大桥有多长? 路桥全长10173.82m,其中桥长5747.82m,桥宽20m,西双向四车道,是我国第一座三塔双索面斜拉大桥,亚洲首座不等高三塔双斜索面预应力混凝土漂浮体系斜拉桥。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥是我国最长的内河公路桥,大桥横跨东洞庭湖区,全长10174.2米,主桥梁长5747.8米。 +谁知道洞庭湖大桥有多长? 大桥的通车使湘、鄂间公路干线大为畅通,并为洞庭湖区运输抗洪抢险物资提供了一条快速通道该桥设计先进,新颖,造型美观,各项技求指标先进,且为首次在国内特大型桥梁中采用主塔斜拉桥结构体系。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥是湖区人民的造福桥,装点湘北门户的形象桥,对优化交通网络绪构,发展区域经济,保障防汛救灾,缩短鄂、豫、陕等省、市西部车辆南下的运距,拓展岳阳城区的主骨架,提升岳阳城市品位,增强城市辐射力,有着十分重要的意义。 +谁知道洞庭湖大桥有多长? 自1996年12月开工以来,共有10支施工队伍和两支监理队伍参与了大桥的建设。 +谁知道洞庭湖大桥有多长? 主桥桥面高52米(黄海),设计通航等级Ⅲ级。 +谁知道洞庭湖大桥有多长? 主桥桥型为不等高三塔、双索面空间索、全飘浮体系的预应力钢筋混凝土肋板梁式结构的斜拉桥,跨径为130+310+310+130米。 +谁知道洞庭湖大桥有多长? 索塔为双室宝石型断面,中塔高为125.684米,两边塔高为99.311米。 +谁知道洞庭湖大桥有多长? 三塔基础为3米和3.2米大直径钻孔灌注桩。 +谁知道洞庭湖大桥有多长? 引桥为连续梁桥,跨径20至50米,基础直径为1.8和2.5米钻孔灌注桩。 +谁知道洞庭湖大桥有多长? 该桥设计先进、新颖、造型美观,各项技求指标先进,且为首次在国内特大型桥梁中采用主塔斜拉桥结构体系,岳阳洞庭湖大桥是我国首次采用不等高三塔斜拉桥桥型的特大桥,设计先进,施工难度大位居亚洲之首,是湖南省桥梁界的一大科研项目。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥设计为三塔斜拉桥,空间双斜面索,主梁采用前支点挂篮施工,并按各种工况模拟挂篮受力进行现场试验,获得了大量有关挂篮受力性能和实际刚度的计算参数,作为施工控制参数。 +谁知道洞庭湖大桥有多长? 利用组合式模型单元,推导了斜拉桥分离式双肋平板主梁的单元刚度矩阵,并进行了岳阳洞庭湖大桥的空间受力分析,结果表明此种单元精度满足工程要求,同时在施工工艺方面也积累了成功经验。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥的通车使湘、鄂间公路干线大为畅通,并为洞庭湖区抗洪抢险物资运输提供了一条快速通道。 +谁知道洞庭湖大桥有多长? 湖大桥设计先进,造型美丽,科技含量高。 +谁知道洞庭湖大桥有多长? 洞庭大桥还是一道美丽的风景线,大桥沿岸风景与岳阳楼,君山岛、洞庭湖等风景名胜融为一体,交相辉映,成为世人了解岳阳的又一崭新窗口,也具有特别旅游资源。 +谁知道洞庭湖大桥有多长? 洞庭湖大桥多塔斜拉桥新技术研究荣获国家科学技术进步二等奖、湖南省科学技术进步一等奖,并获第五届詹天佑大奖。 +谁知道洞庭湖大桥有多长? 大桥在中国土木工程学会2004年第16届年会上入选首届《中国十佳桥梁》,名列斜拉桥第二位。 +谁知道洞庭湖大桥有多长? 2001年荣获湖南省建设厅优秀设计一等奖,省优秀勘察一等奖。 +谁知道洞庭湖大桥有多长? 2003年荣获国家优秀工程设计金奖, "十佳学术活动"奖。 +天气预报员的布景师是谁? 芝加哥天气预报员大卫(尼古拉斯·凯奇),被他的粉丝们热爱,也被诅咒--这些人在天气不好的时候会迁怒于他,而大部分时候,大卫都是在预报坏天气。 +天气预报员的布景师是谁? ?不过,这也没什么,当一家国家早间新闻节目叫他去面试的时候,大卫的事业似乎又将再创新高。 +天气预报员的布景师是谁? 芝加哥天气预报员大卫(尼古拉斯·凯奇),被他的粉丝们热爱,也被诅咒--这些人在天气不好的时候会迁怒于他,而大部分时候,大卫都是在预报坏天气。 +天气预报员的布景师是谁? 不过,这也没什么,当一家国家早间新闻节目叫他去面试的时候,大卫的事业似乎又将再创新高。 +天气预报员的布景师是谁? 在电视节目上,大卫永远微笑,自信而光鲜,就像每一个成功的电视人一样,说起收入,他也绝对不落人后。 +天气预报员的布景师是谁? 不过,大卫的个人生活可就不那么如意了。 +天气预报员的布景师是谁? 与妻子劳伦(霍普·戴维斯)的离婚一直让他痛苦;儿子迈克吸大麻上瘾,正在进行戒毒,可戒毒顾问却对迈克有着异样的感情;女儿雪莉则体重惊人,总是愁眉苦脸、孤独寂寞;大卫的父亲罗伯特(迈克尔·凯恩),一个世界著名的小说家,虽然罗伯特不想再让大卫觉得负担过重,可正是他的名声让大卫的一生都仿佛处在他的阴影之下,更何况,罗伯特就快重病死了。 +天气预报员的布景师是谁? 和妻子的离婚、父亲的疾病、和孩子之间完全不和谐的关系,都让大卫每天头疼,而每次当他越想控制局面,一切就越加复杂。 +天气预报员的布景师是谁? 然而就在最后人们再也不会向他扔快餐,或许是因为他总是背着弓箭在大街上走。 +天气预报员的布景师是谁? 最后,面对那份高额工作的接受意味着又一个新生活的开始。 +天气预报员的布景师是谁? 也许,生活就像天气,想怎么样就怎么样,完全不可预料。 +天气预报员的布景师是谁? 导 演:戈尔·维宾斯基 Gore Verbinski +天气预报员的布景师是谁? 编 剧:Steve Conrad .....(written by) +天气预报员的布景师是谁? 演 员:尼古拉斯·凯奇 Nicolas Cage .....David Spritz +天气预报员的布景师是谁? 尼古拉斯·霍尔特 Nicholas Hoult .....Mike +天气预报员的布景师是谁? 迈克尔·凯恩 Michael Caine .....Robert Spritzel +天气预报员的布景师是谁? 杰蒙妮·德拉佩纳 Gemmenne de la Peña .....Shelly +天气预报员的布景师是谁? 霍普·戴维斯 Hope Davis .....Noreen +天气预报员的布景师是谁? 迈克尔·瑞斯玻利 Michael Rispoli .....Russ +天气预报员的布景师是谁? 原创音乐:James S. Levine .....(co-composer) (as James Levine) +天气预报员的布景师是谁? 汉斯·兹米尔 Hans Zimmer +天气预报员的布景师是谁? 摄 影:Phedon Papamichael +天气预报员的布景师是谁? 剪 辑:Craig Wood +天气预报员的布景师是谁? 选角导演:Denise Chamian +天气预报员的布景师是谁? 艺术指导:Tom Duffield +天气预报员的布景师是谁? 美术设计:Patrick M. Sullivan Jr. .....(as Patrick Sullivan) +天气预报员的布景师是谁? 布景师 :Rosemary Brandenburg +天气预报员的布景师是谁? 服装设计:Penny Rose +天气预报员的布景师是谁? 视觉特效:Charles Gibson +天气预报员的布景师是谁? David Sosalla .....Pacific Title & Art Studio +韩国国家男子足球队教练是谁? 韩国国家足球队,全名大韩民国足球国家代表队(???? ?? ?????),为韩国足球协会所于1928年成立,并于1948年加入国际足球协会。 +韩国国家男子足球队教练是谁? 韩国队自1986年世界杯开始,从未缺席任何一届决赛周。 +韩国国家男子足球队教练是谁? 在2002年世界杯,韩国在主场之利淘汰了葡萄牙、意大利及西班牙三支欧洲强队,最后夺得了殿军,是亚洲球队有史以来最好成绩。 +韩国国家男子足球队教练是谁? 在2010年世界杯,韩国也在首圈分组赛压倒希腊及尼日利亚出线次圈,再次晋身十六强,但以1-2败给乌拉圭出局。 +韩国国家男子足球队教练是谁? 北京时间2014年6月27日3时,巴西世界杯小组赛H组最后一轮赛事韩国对阵比利时,韩国队0-1不敌比利时,3场1平2负积1分垫底出局。 +韩国国家男子足球队教练是谁? 球队教练:洪明甫 +韩国国家男子足球队教练是谁? 韩国国家足球队,全名大韩民国足球国家代表队(韩国国家男子足球队???? ?? ?????),为韩国足球协会所于1928年成立,并于1948年加入国际足联。 +韩国国家男子足球队教练是谁? 韩国队是众多亚洲球队中,在世界杯表现最好,他们自1986年世界杯开始,从未缺席任何一届决赛周。 +韩国国家男子足球队教练是谁? 在2002年世界杯,韩国在主场之利淘汰了葡萄牙、意大利及西班牙三支欧洲强队,最后夺得了殿军,是亚洲球队有史以来最好成绩。 +韩国国家男子足球队教练是谁? 在2010年世界杯,韩国也在首圈分组赛压倒希腊及尼日利亚出线次圈,再次晋身十六强,但以1-2败给乌拉圭出局。 +韩国国家男子足球队教练是谁? 2014年世界杯外围赛,韩国在首轮分组赛以首名出线次轮分组赛,与伊朗、卡塔尔、乌兹别克以及黎巴嫩争逐两个直接出线决赛周资格,最后韩国仅以较佳的得失球差压倒乌兹别克,以小组次名取得2014年世界杯决赛周参赛资格,也是韩国连续八次晋身世界杯决赛周。 +韩国国家男子足球队教练是谁? 虽然韩国队在世界杯成绩为亚洲之冠,但在亚洲杯足球赛的成绩却远不及世界杯。 +韩国国家男子足球队教练是谁? 韩国只在首两届亚洲杯(1956年及1960年)夺冠,之后五十多年未能再度称霸亚洲杯,而自1992年更从未打入过决赛,与另一支东亚强队日本近二十年来四度在亚洲杯夺冠成强烈对比。[1] +韩国国家男子足球队教练是谁? 人物简介 +韩国国家男子足球队教练是谁? 车范根(1953年5月22日-)曾是大韩民国有名的锋线选手,他被欧洲媒体喻为亚洲最佳输出球员之一,他也被认为是世界最佳足球员之一。 +韩国国家男子足球队教练是谁? 他被国际足球史料与数据协会评选为20世纪亚洲最佳球员。 +韩国国家男子足球队教练是谁? 他在85-86赛季是德甲的最有价值球员,直到1999年为止他都是德甲外国球员入球纪录保持者。 +韩国国家男子足球队教练是谁? 德国的球迷一直没办法正确说出他名字的发音,所以球车范根(左)迷都以炸弹车(Cha Boom)称呼他。 +韩国国家男子足球队教练是谁? 这也代表了他强大的禁区得分能力。 +韩国国家男子足球队教练是谁? 职业生涯 +韩国国家男子足球队教练是谁? 车范根生于大韩民国京畿道的华城市,他在1971年于韩国空军俱乐部开始了他的足球员生涯;同年他入选了韩国19岁以下国家足球队(U-19)。 +韩国国家男子足球队教练是谁? 隔年他就加入了韩国国家足球队,他是有史以来加入国家队最年轻的球员。 +韩国国家男子足球队教练是谁? 车范根在27岁时前往德国发展,当时德甲被认为是世界上最好的足球联赛。 +韩国国家男子足球队教练是谁? 他在1978年12月加入了达姆施塔特,不过他在那里只待了不到一年就转到当时的德甲巨人法兰克福。 +韩国国家男子足球队教练是谁? 车范根很快在新俱乐部立足,他帮助球队赢得79-80赛季的欧洲足协杯。 +韩国国家男子足球队教练是谁? 在那个赛季过后,他成为德甲薪水第三高的球员,不过在1981年对上勒沃库森的一场比赛上,他的膝盖严重受伤,几乎毁了他的足球生涯。 +韩国国家男子足球队教练是谁? 在1983年车范根转投勒沃库森;他在这取得很高的成就,他成为85-86赛季德甲的最有价值球员,并且在1988年帮助球队拿下欧洲足协杯,也是他个人第二个欧洲足协杯。 +韩国国家男子足球队教练是谁? 他在决赛对垒西班牙人扮演追平比分的关键角色,而球会才在点球大战上胜出。 +韩国国家男子足球队教练是谁? 车范根在1989年退休,他在308场的德甲比赛中进了98球,一度是德甲外国球员的入球纪录。 +韩国国家男子足球队教练是谁? 执教生涯 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 国立台湾科技大学,简称台湾科大、台科大或台科,是位于台湾台北市大安区的台湾第一所高等技职体系大专院校,现为台湾最知名的科技大学,校本部比邻国立台湾大学。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 该校已于2005年、2008年持续入选教育部的“发展国际一流大学及顶尖研究中心计划”。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? “国立”台湾工业技术学院成立于“民国”六十三年(1974)八月一日,为台湾地区第一所技术职业教育高等学府。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 建校之目的,在因应台湾地区经济与工业迅速发展之需求,以培养高级工程技术及管理人才为目标,同时建立完整之技术职业教育体系。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? “国立”台湾工业技术学院成立于“民国”六十三年(1974)八月一日,为台湾地区第一所技术职业教育高等学府。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 建校之目的,在因应台湾地区经济与工业迅速发展之需求,以培养高级工程技术及管理人才为目标,同时建立完整之技术职业教育体系。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 本校校地约44.5公顷,校本部位于台北市基隆路四段四十三号,。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 民国68年成立硕士班,民国71年成立博士班,现有大学部学生5,664人,研究生4,458人,专任教师451位。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 2001年在台湾地区教育部筹划之研究型大学(“国立”大学研究所基础教育重点改善计画)中,成为全台首批之9所大学之一 。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 自2005年更在“教育部”所推动“五年五百亿 顶尖大学”计划下,遴选为适合发展成“顶尖研究中心”的11所研究型大学之一。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 国立台湾科技大学部设有二年制、四年制及工程在职人员进修班等三种学制;凡二专、三专及五专等专科学校以上之毕业生,皆可以报考本校大学部二年制,而高职、高中毕业生,可以报考本校大学部四年制。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 工业管理、电子工程、机械工程、营建工程及应用外语系等,则设有在职人员进修班学制,其招生对象为在职人员,利用夜间及暑假期间上课。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 凡在本校大学部修毕应修学分且成绩及格者皆授予学士学位。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 国立台湾科技大学目前设有工程、电资、管理、设计、人文社会及精诚荣誉等六个学院,分别有机械、材料科学与工程、营建、化工、电子、电机、资工、工管、企管、资管、建筑、工商业设计、应用外语等13个系及校内招生之财务金融学士学位学程、科技管理学士学位学程;全校、工程、电资、管理、创意设计等五个不分系菁英班及光电研究所、管理研究所、财务金融研究所、科技管理研究所、管理学院MBA、数位学习教育研究所、医学工程研究所、自动化及控制研究所、工程技术研究所、专利研究所等独立研究所,此外尚有人文学科负责人文及社会类等课程之教学,通识学科负责法律、音乐、环保类等课程之教学,以及师资培育中心专以培养学生未来担任中等学校工、商、管理、设计等科之合格教师,合计23个独立系所、师资培育中心、人文学科及通识学科等教学单位。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 国立台湾科技大学至今各系所毕业校友已达约56,456位,毕业生出路包含出国继续深造、在台深造以及投身于产业界。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 由于实作经验丰富,理论基础完备,工作态度认真,毕业校友担任政府要职、大学教授、大学校长及企业主管者众多,深受各界的肯定。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 工商业设计系副教授孙春望与硕一生全明远耗时两个月自制之三分钟动画短片“立体悲剧”。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 本片入选有“动画奥斯卡”之称的“ACM SIGGRAPH”国际动画展,并获得观众票选第一名,这也是台湾首次入选及获奖的短片。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 击败了好莱坞知名导演史蒂芬·史匹柏的“世界大战”、乔治卢卡斯的“星际大战三部曲”、梦工厂出品的动画“马达加斯加”、军机缠斗片“机战未来”及美国太空总署、柏克莱加州大学等好莱坞名片及顶尖学术单位制作的短片。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 2009年荣获有工业设计界奥斯卡奖之称的“德国iF设计大奖”国立台湾科技大学设计学院获得大学排名的全球第二,仅次于韩国三星美术设计学院“SADI”。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 总体排名 依据《泰晤士高等教育》(THES-QS)在2009年的世界大学排名调查,台科大排名全世界第351名,在台湾所有大学中排名第五,仅次于台大,清大,成大及阳明,并且是台湾唯一进入世界四百大名校的科技大学。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 依据在欧洲拥有广大声誉的“Eduniversal商学院排名网”2008年的资料,台湾有七所大学的商管学院被分别列入世界1000大商学院,其中台科大位在“卓越商学院”(EXCELLENT Business Schools,国内主要)之列,“推荐程度”(Recommendation Rate)为全台第四,仅次于台大、政大、中山,与交大并列。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 目前设有工程、电资、管理、设计、人文社会及精诚荣誉学院等六个学院。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? 预计于竹北新校区设立产学合作学院及应用理学院。 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●台湾建筑科技中心 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●智慧型机械人研究中心科技成果展示(15张) +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●台湾彩卷与博彩研究中心 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●电力电子技术研发中心 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●NCP-Taiwan办公室 +国立台湾科技大学副教授自制的动画“立体悲剧”入选的“ACM SIGGRAPH”国际动画展还有什么别称? ●资通安全研究与教学中心 +在日本,神道最初属于什么信仰? 神道又称天道,语出《易经》“大观在上,顺而巽,中正以观天下。 +在日本,神道最初属于什么信仰? 观,盥而不荐,有孚顒若,下观而化也。 +在日本,神道最初属于什么信仰? 观天之神道,而四时不忒,圣人以神道设教,而天下服矣”。 +在日本,神道最初属于什么信仰? 自汉以降,神道又指“墓前开道,建石柱以为标”。 +在日本,神道最初属于什么信仰? 在中医中,神道,经穴名。 +在日本,神道最初属于什么信仰? 出《针灸甲乙经》。 +在日本,神道最初属于什么信仰? 别名冲道。 +在日本,神道最初属于什么信仰? 属督脉。 +在日本,神道最初属于什么信仰? 宗教中,神道是日本的本土传统民族宗教,最初以自然崇拜为主,属于泛灵多神信仰(精灵崇拜),视自然界各种动植物为神祇。 +在日本,神道最初属于什么信仰? 神道又称天道,语出《易经》“大观在上,顺而巽,中正以观天下。 +在日本,神道最初属于什么信仰? 观,盥而不荐,有孚顒若,下观而化也。 +在日本,神道最初属于什么信仰? 观天之神道,而四时不忒,圣人以神道设教,而天下服矣”。 +在日本,神道最初属于什么信仰? 自汉以降,神道又指“墓前开道,建石柱以为标”。 +在日本,神道最初属于什么信仰? 在中医中,神道,经穴名。 +在日本,神道最初属于什么信仰? 出《针灸甲乙经》。 +在日本,神道最初属于什么信仰? 别名冲道。 +在日本,神道最初属于什么信仰? 属督脉。 +在日本,神道最初属于什么信仰? 宗教中,神道是日本的本土传统民族宗教,最初以自然崇拜为主,属于泛灵多神信仰(精灵崇拜),视自然界各种动植物为神祇。 +在日本,神道最初属于什么信仰? 谓鬼神赐福降灾神妙莫测之道。 +在日本,神道最初属于什么信仰? 《易·观》:“观天之神道,而四时不忒,圣人以神道设教,而天下服矣。” +在日本,神道最初属于什么信仰? 孔颖达 疏:“微妙无方,理不可知,目不可见,不知所以然而然,谓之神道。” +在日本,神道最初属于什么信仰? 《文选·王延寿<鲁灵光殿赋>》:“敷皇极以创业,协神道而大宁。” +在日本,神道最初属于什么信仰? 张载 注:“协和神明之道,而天下大宁。” +在日本,神道最初属于什么信仰? 南朝 梁 刘勰 《文心雕龙·正纬》:“夫神道阐幽,天命微显。” +在日本,神道最初属于什么信仰? 鲁迅 《中国小说史略》第五篇:“﹝ 干宝 ﹞尝感於其父婢死而再生,及其兄气绝复苏,自言见天神事,乃撰《搜神记》二十卷,以‘发明神道之不诬’。” +在日本,神道最初属于什么信仰? 神道设教 观卦里面蕴含着《易经》固有的诸如神道设教、用舍行藏、以德化民等思想,是孔子把这些思想发掘出来。 +在日本,神道最初属于什么信仰? 「据此是孔子见当时之人,惑于吉凶祸福,而卜筮之史,加以穿凿傅会,故演易系辞,明义理,切人事,借卜筮以教后人,所谓以神道设教,其所发明者,实即羲文之义理,而非别有义理,亦非羲文并无义理,至孔子始言义理也,当即朱子之言而小变之曰,易为卜筮作,实为义理作,伏羲文王之易,有占而无文,与今人用火珠林起课者相似,孔子加卦爻辞如签辞,纯以理言,实即羲文本意,则其说分明无误矣。」 +在日本,神道最初属于什么信仰? 孔子所发掘的《易经》思想与孔子在《论语》书中表现出来的思想完全一致。 +在日本,神道最初属于什么信仰? 《易传》的思想反映了孔子的思想,这个思想是《周易》的,也是孔子的。 +在日本,神道最初属于什么信仰? 在《周易》和孔子看来,神不是有意识的人格化的上帝。 +奥林匹克里昂获得了几连霸? 里昂 Lyon 全名 Olympique lyonnais 绰号 Les Gones、OL 成立 1950年 城市 法国,里昂 主场 热尔兰球场(Stade Gerland) 容纳人数 41,044人 主席 奥拉斯 主教练 雷米·加尔德 联赛 法国足球甲级联赛 2013–14 法甲,第 5 位 网站 官方网站 主场球衣 客场球衣 第三球衣 日尔兰体育场 奥林匹克里昂(Olympique lyonnais,简称:OL及Lyon,中文简称里昂)是一间位于法国东南部罗纳-阿尔卑斯区的里昂市的足球会,成立于1950年8月3日,前身为里昂·奥林匹克(Lyon Olympique)体育俱乐部其中一个分支的足球队,1889年离开体育俱乐部自立门户成立新俱乐部,但官方网站表示俱乐部于1950年正式成立。 +奥林匹克里昂获得了几连霸? 现时在法国足球甲级联赛比赛,俱乐部同时设立男子及女子足球队。 +奥林匹克里昂获得了几连霸? 里昂是首届法国足球甲级联赛成员之一,可惜名列第十五位而降落乙组,1951年以乙级联赛冠军获得创会后首次锦标。 +奥林匹克里昂获得了几连霸? 球队在法国足球史上没有取得辉煌成绩,比较优异的算是六十年代曾杀入欧洲杯赛冠军杯四强,及3度晋身法国杯决赛并2次成功获冠。 +奥林匹克里昂获得了几连霸? 直至九十年代末里昂由辛天尼带领,先连续取得联赛头三名,到2002年终于首次登上法国顶级联赛冠军宝座,同年勒冈(Paul Le Guen)接替执教法国国家足球队的辛天尼,他其后继续带领里昂保持气势,加上队中球员小儒尼尼奧、迪亚拉、克里斯蒂亞諾·馬克斯·戈麥斯、迈克尔·埃辛、西德尼·戈武及门将格雷戈里·库佩表现突出,2003年至2005年横扫3届联赛冠军,创下连续四年夺得联赛锦标,平了1960年代末圣艾蒂安及1990年代初马赛的四连冠纪录。 +奥林匹克里昂获得了几连霸? 2005年前利物浦主教练热拉尔·霍利尔重返法国担任新任主教练,并加入葡萄牙中场蒂亚戈,和前巴伦西亚前锋约翰·卡鲁。 +奥林匹克里昂获得了几连霸? 他亦成功带领里昂赢得一届法甲冠军。 +奥林匹克里昂获得了几连霸? 2007年里昂成为首支上市的法国足球俱乐部,招股价21至24.4欧元,发行370万股,集资8400万欧元[1]。 +奥林匹克里昂获得了几连霸? 2007年4月21日,联赛次名图卢兹二比三不敌雷恩,令处于榜首的里昂领先次席多达17分距离,里昂因此提前六轮联赛庆祝俱乐部连续第六年夺得联赛冠军,亦是欧洲五大联赛(英格兰、德国、西班牙、意大利及法国)历史上首支联赛六连冠队伍[2]。 +奥林匹克里昂获得了几连霸? 在2007-08年赛季,里昂再一次成功卫冕联赛锦标,达成七连霸伟业。 +奥林匹克里昂获得了几连霸? 不过在2008-09赛季,里昂排名法甲第三位,联赛冠军被波尔多所获得。 +奥林匹克里昂获得了几连霸? 于2010年4月,里昂以两回合3比2的比分于欧洲冠军联赛击败波尔多跻身四强,此乃里昂首次晋级此项顶级杯赛的四强阶段。 +奥林匹克里昂获得了几连霸? 粗体字为新加盟球员 +奥林匹克里昂获得了几连霸? 以下球员名单更新于2014年8月27日,球员编号参照 官方网站,夏季转会窗为6月9日至8月31日 +火柴人刺杀行动怎么才能过关? 移动鼠标控制瞄准,点击鼠标左键进行射击。 +火柴人刺杀行动怎么才能过关? 游戏加载完成后点击STARTGAME-然后点击STARTMISSION即可开始游戏。 +火柴人刺杀行动怎么才能过关? 这里不仅仅考验的是你的枪法而且最重要的是你的智慧,喜欢火柴人类型游戏的玩家可以进来小试身手。 +火柴人刺杀行动怎么才能过关? 控制瞄准,刺杀游戏中的目标人物即可过关哦。 +你知道2月14日西方情人节是因何起源的吗? 情人节(英语:Valentine's Day),情人节的起源有多个版本,其中一个说法是在公元三世纪,古罗马暴君为了征召更多士兵,禁止婚礼,一名叫瓦伦丁Valentine的修士不理禁令,秘密替人主持婚礼,结果被收监,最后处死。 +你知道2月14日西方情人节是因何起源的吗? 而他死的那天就是2月14日,为纪念Valentine的勇敢精神,人们将每年的2月14日定为Valentine的纪念日。 +你知道2月14日西方情人节是因何起源的吗? 因此成了后来的“情人节”。 +你知道2月14日西方情人节是因何起源的吗? 另外,据记载,教宗在公元496年废除牧神节,把2月14日定为圣瓦伦丁日,即是St.Valentine's Day,后来成为是西方的节日之一。 +你知道2月14日西方情人节是因何起源的吗? 中文名称:情人节 +你知道2月14日西方情人节是因何起源的吗? 外文名称:Valentine‘s Day +你知道2月14日西方情人节是因何起源的吗? 别名:情人节圣瓦伦丁节 +你知道2月14日西方情人节是因何起源的吗? 公历日期:2月14日 +你知道2月14日西方情人节是因何起源的吗? 起源时间:公元270年2月14日 +你知道2月14日西方情人节是因何起源的吗? 起源事件:人们为了纪念为情人做主而牺牲的瓦伦丁神父,把他遇害的那一天(2月14日)称为情人节。 +你知道2月14日西方情人节是因何起源的吗? 地区:欧美地区 +你知道2月14日西方情人节是因何起源的吗? 宗教:基督教 +你知道2月14日西方情人节是因何起源的吗? 其他信息:西方的传统节日之一。 +你知道2月14日西方情人节是因何起源的吗? 男女在这一天互送礼物(如贺卡和玫瑰花等)用以表达爱意或友好。 +你知道2月14日西方情人节是因何起源的吗? 据台湾“今日台湾人讨厌情人节新闻网”报道,西洋情人节即将来到,求职网进行“办公室恋情及情人节调查”发现,在目前全台上班族的感情状态中,有情人相伴的比率约5成5,4成5的上班族单身;较出乎意料的结果是,情人节以近3成(28%)的占比,登上最讨厌的节日第一名,端午节以24.3%居第二;农历年则以18.2%居第三;第四名是圣诞节,占12.4%。 +你知道2月14日西方情人节是因何起源的吗? 调查指出,情人节对单身族来说,不仅成为压力,也显得更加孤单,在情人节当天,单身的上班族有将近4成(39.1%)的人在家看电视度过,近两成(18.7%)上网聊天,有1成4(14.8%)的人,不畏满街闪光,勇气十足出门看电影,近1成(9.7%)的上班族选择留在公司加班;另外有 5.4%的人,会在情人节当天积极参加联谊,希望能改变自己的感情状态。 +你知道2月14日西方情人节是因何起源的吗? 情侣们在情人节当天,庆祝方式以吃浪漫大餐最多(37.1%),不过有近3成(27%)的情侣,在情人节当天不会特别庆祝情人节,且这个比率远比第三名的旅游(占比11.5%)高出1倍以上。 +你知道2月14日西方情人节是因何起源的吗? 在情人节当天庆祝的开销上,可以说是小资男女当道,选择1000元(新台币,下同)以内的上班族最多占33.1%,情人节当天的花费上班族的平均花费是2473元,大手笔花费上万元以上庆祝情人节的,占比只有2.5%。 +你知道2月14日西方情人节是因何起源的吗? 情人节的起源众说纷纭,而为纪念罗马教士瓦伦丁是其中一个普遍的说法。 +你知道2月14日西方情人节是因何起源的吗? 据《世界图书百科全书》(World Book Encyclopedia)数据指出:“在公元200年时期,罗马皇帝克劳狄二世禁止年轻男子结婚。 +你知道2月14日西方情人节是因何起源的吗? 他认为未婚男子可以成为更优良的士兵。 +你知道2月14日西方情人节是因何起源的吗? 一位名叫瓦伦丁的教士违反了皇帝的命令,秘密为年轻男子主持婚礼,引起皇帝不满,结果被收监,据说瓦伦丁于公元269年2月14日被处决。 +你知道2月14日西方情人节是因何起源的吗? 另外,据《天主教百科全书》(The Catholic情人节 Encyclopedia)指出,公元496年,教宗圣基拉西乌斯一世在公元第五世纪末叶废除了牧神节,把2月14日定为圣瓦伦丁日。” +你知道2月14日西方情人节是因何起源的吗? 这个节日现今以“圣瓦伦丁节”——亦即情人节的姿态盛行起来。 +你知道2月14日西方情人节是因何起源的吗? 但是在第2次梵蒂冈大公会议后,1969年的典礼改革上,整理了一堆在史实上不确定是否真实存在的人物以后,圣瓦伦丁日就被废除了。 +你知道2月14日西方情人节是因何起源的吗? 现在天主教圣人历已经没有圣瓦伦丁日(St. Valentine's Day)。 +你知道2月14日西方情人节是因何起源的吗? 根据《布卢姆尔的警句与寓言辞典》记载:“圣瓦伦丁是个罗马教士,由于援助受逼害的基督徒而身陷险境,后来他归信基督教,最后被处死,卒于二月十四日”古代庆祝情人节的习俗与瓦伦丁拉上关系,可能是纯属巧合而已。 +你知道2月14日西方情人节是因何起源的吗? 事实上,这个节日很可能与古罗马的牧神节或雀鸟交配的季节有关。 +你知道2月14日西方情人节是因何起源的吗? 情人节的特色是情侣互相馈赠礼物。 +你知道2月14日西方情人节是因何起源的吗? 时至今日,人们则喜欢以情人卡向爱人表达情意。 +防卫大学每年招收多少学生? 防卫大学的前身是保安大学。 +防卫大学每年招收多少学生? 防卫大学是日本自卫队培养陆、海、空三军初级军官的学校,被称为日军"军官的摇篮"。 +防卫大学每年招收多少学生? 防卫大学是日军的重点院校。 +防卫大学每年招收多少学生? 日本历届内阁首相都要到防卫大学视察"训示",并亲自向学生颁发毕业证书。 +防卫大学每年招收多少学生? 日军四分之一的军官、三分之一的将官从这里走出。 +防卫大学每年招收多少学生? 防卫大学毕业生已成为日军军官的中坚力量。 +防卫大学每年招收多少学生? 防卫大学每年从地方招收18岁至21岁的应届高中毕业生和同等学历的青年。 +防卫大学每年招收多少学生? 每年招生名额为530名。 +防卫大学每年招收多少学生? 1950年 8月,日本组建警察预备队,1952年改为保安队。 +防卫大学每年招收多少学生? 为了充实保安队干部队伍,提高干部军政素质,1953年4月成立了保安大学,校址设在三浦半岛的久里滨。 +防卫大学每年招收多少学生? 1954年7月1日保安厅改为防卫厅。 +防卫大学每年招收多少学生? 在保安队基础上,日本建立了陆、海、空三军自卫队,保安大学遂改名为防卫大学,1955年迁至三浦半岛东南方的小原台。 +防卫大学每年招收多少学生? 学校直属防卫厅领导。 +防卫大学每年招收多少学生? 防卫大学的教育方针是:要求学生德智体全面发展,倡导学生崇尚知识和正义,培养学生具有指挥各种部队的能力。 +防卫大学每年招收多少学生? 防卫大学每年招生名额为530名,其中陆军300名,海军100名,空军130名。 +防卫大学每年招收多少学生? 根据自卫队向妇女敞开军官大门的决定,防卫大学1992年首次招收女学员35名。 +防卫大学每年招收多少学生? 考试分两次进行。 +防卫大学每年招收多少学生? 第一次,每年11月份进行学科考试;第二次,12月份进行口试和体检。 +防卫大学每年招收多少学生? 学校按陆、海、空三军分别设大学本科班和理工科研究生班。 +防卫大学每年招收多少学生? 本科班学制4年,又分为理工和人文社会学两大科。 +防卫大学每年招收多少学生? 学员入学后先分科,530人中有460人专攻理科,70人专攻文科。 +防卫大学每年招收多少学生? 第1学年按专科学习一般大学课程和一般军事知识。 +防卫大学每年招收多少学生? 第2学年以后在军事上开始区分军种,学员分别学习陆、海、空军的专门课程。 +防卫大学每年招收多少学生? 文化课和军事课的比例是6:l。 +防卫大学每年招收多少学生? 文化课程有人文、社会、自然、外语、电气工程、机械工程、土木建筑工程、应用化学、应用物理、航空、航海等。 +防卫大学每年招收多少学生? 军事训练课每学年6周,按一年四季有比例地安排教学内容,对学生进行军事技术和体能训练。 +防卫大学每年招收多少学生? 理工科研究生班,每年招生1期,学制2年,每期招收90人,设电子工程、航空工程、兵器制造等7个专业,课程按一般大学硕士课程标准设置。 +防卫大学每年招收多少学生? 防卫大学的课程和训练都十分紧张。 +防卫大学每年招收多少学生? 近年来,为了增强防卫大学的吸引力,克服考生逐年减少的倾向广泛征集优秀人才,学校进行了一些改革,改变入学考试办法,各高中校长以内部呈报的形式向防卫大学推荐品学兼优的学生;减少学生入学考试科目,放宽对报考防卫大学的学生的视力要求;降低学分数(大约降低30学分);改善学生宿舍条件。 +防卫大学每年招收多少学生? 防卫大学的学生生活紧张而愉快。 +《威鲁贝鲁的物语》官网是什么? 10年前大战后,威鲁贝鲁国一致辛勤的保护着得来不易的和平,但是与邻国圣卡特拉斯国的关系却不断的紧张,战争即将爆发。 +《威鲁贝鲁的物语》官网是什么? 为了避免战争,威鲁贝鲁国王海特鲁王决定将自己最大的女儿公主莉塔嫁给圣卡特拉斯国的王子格鲁尼亚。 +《威鲁贝鲁的物语》官网是什么? 但是莉塔却刺伤了政治婚姻的对象格鲁尼亚王子逃了出去,这事激怒了圣卡特拉斯国的国王兰帕诺夫王,并下令14天之内抓到王女并执行公开处刑来谢罪,不然两国就要开战。 +《威鲁贝鲁的物语》官网是什么? 《威鲁贝鲁的物语~Sisters of Wellber~》 +《威鲁贝鲁的物语》官网是什么? (Sisters of Wellber) +《威鲁贝鲁的物语》官网是什么? 日文名 ウエルベールの物语 +《威鲁贝鲁的物语》官网是什么? 官方网站 http://www.avexmovie.jp/lineup/wellber/ +《威鲁贝鲁的物语》官网是什么? 为了回避发生战争这个最坏的结果,莉塔下定决心去中立国古利达姆。 diff --git a/examples/erniesage/example_data/node_classification/train_data.txt b/examples/erniesage/example_data/node_classification/train_data.txt new file mode 100644 index 0000000000000000000000000000000000000000..2ae1ae9d72900720bc4ce5fa29349d540573f0f2 --- /dev/null +++ b/examples/erniesage/example_data/node_classification/train_data.txt @@ -0,0 +1,1000 @@ +体长卵形,棕红色;鞘翅棕黄或淡棕色,外缘和中缝黑色或黑褐色;触角基部3、4节棕黄,余节棕色。 1 +头部刻点粗大,分布不均匀,头顶刻点十分稀疏;触角基部的内侧有一个三角形光瘤,唇基前缘呈半圆形凹切。 0 +触角近于体长之半,第1节粗大,棒状,第2节短,椭圆形,3、4两节细长,稍短于第5节,第5节基细端粗,末端6节明显粗大。 1 +前胸背板横宽,宽约为长的两倍,侧缘敞出较宽,圆形,敞边与盘区之间有一条细纵沟;盘区刻点相当密,前半部刻点较大于后半部。 0 +小盾片舌形,光亮,末端圆钝。 1 +鞘翅刻点粗大,不规则排列,肩部之后的刻点更为粗大,具皱褶,近中缝的刻点较小,略呈纵行排列。 0 +前胸前侧片前缘直;前胸后侧片具粗大刻点。 1 +足粗壮;胫节具纵脊,外端角向外延伸,呈弯角状;爪具附齿。 0 +暮光闪闪是一匹雌性独角兽,后来在神秘魔法的影响下变成了空角兽(公主),她是《我的小马驹:友情是魔法》(英文名:My Little Pony:Friendship is Magic)中的主角之一。 1 + 她是银甲闪闪(Shining Armor)的妹妹,同时也是韵律公主(Princess Cadance)的小姑子。 0 +在该系列中,她与最好的朋友与助手斯派克(Spike)一起生活在小马镇(Ponyville)的金橡图书馆(Golden Oak Library),研究友谊的魔法。 1 + 在暮光闪闪成为天角兽之前(即S3E13前),常常给塞拉丝蒂娅公主(Princess Celestia)关于友谊的报告。[1] 0 +《我的小马驹:友谊是魔法》(英文名称:My Little Pony:Friendship is Magic)(简称MLP) 1 +动画讲述了一只名叫做暮光闪闪(Twilight Sparkle)的独角兽(在SE3E13 0 +My Little Pony:Friendship is Magic[2] 1 +后成为了天角兽),执行她的导师塞拉斯蒂娅公主(PrincessCelestia)的任务,在小马镇(Ponyville)学习关于友谊的知识。 0 +她与另外五只小马,苹果杰克(Applejack)、瑞瑞(Rarity)、云宝黛西(Rainbow Dash)、小蝶(Fluttershy)与萍琪派(Pinkie Pie),成为了最要好的朋友。 1 +每匹小马都分别代表了协律精华的6个元素:诚实,慷慨,忠诚,善良,欢笑,魔法,各自扮演着属于自己的重要角色。 0 +此后,暮光闪闪(Twilight Sparkle)便与她认识的新朋友们开始了有趣的日常生活。 1 +在动画中,随时可见她们在小马镇(Ponyville)的种种冒险、奇遇、日常等等。 0 +同时,也在她们之间的互动和冲突中,寻找着最适合最合理的完美解决方案。 1 +“尽管小马国并不太平,六位主角之间也常常有这样那样的问题,但是他们之间的真情对待,使得这个童话世界已经成为不少人心中理想的世外桃源。” 0 +暮光闪闪在剧情刚开始的时候生活在中心城(Canterlot),后来在夏日 1 +暮光闪闪与斯派克(Spike) 0 +庆典的时候被塞拉丝蒂娅公主派遣到小马镇执行检查夏日庆典的准备工作的任务。 1 +在小马镇交到了朋友(即其余5个主角),并和她们一起使用协律精华(Elements of harmony)击败了梦魇之月。 0 +并在塞拉丝蒂亚公主的许可下,留在小马镇继续研究友谊的魔法。 1 +暮光闪闪的知识基本来自于书本,并且她相当不相信书本以外的“迷信”,因为这样她在S1E15里吃足了苦头。 0 +在这之后,她也开始慢慢学会相信一些书本以外的东西。 1 +暮光闪闪热爱学习,并且学习成绩相当好(从她可以立刻算出 0 +的结果可以看 1 +暮光闪闪的原型 0 +出)。 1 +相当敬爱自己的老师塞拉丝蒂亚公主甚至到了精神失常的地步。 0 +在第二季中,曾因为无法交出关于友谊的报告而做出了疯狂的行为,后来被塞拉丝蒂亚公主制止,在这之后,暮光闪闪得到了塞拉丝蒂亚公主“不用定期交友谊报告”的许可。 1 +于是暮光闪闪在后面的剧情中的主角地位越来越得不到明显的体现。 0 +在SE3E13中,因为破解了白胡子星璇留下的神秘魔法而被加冕成为了天角兽(公主),被尊称为“闪闪公主”。 1 +当小星座熊在小马镇引起恐慌的时候,暮光闪闪运用了自身强大的魔法将水库举起后装满牛奶,用牛奶将小星座熊安抚后,连着巨型奶瓶和小星座熊一起送回了小星座熊居住的山洞。 0 +红谷十二庭是由汪氏集团旗下子公司江西尤金房地产开发有限公司携手城发投资共同开发的精品社区,项目占地面积约380亩,总建筑面积约41万平方米。 1 +项目以建设人文型、生态型居住环境为规划目标;创造一个布局合理、功能齐全、交通便捷、绿意盎然、生活方便,有文化内涵的居住区。 0 +金融机构:工商银行、建设银行、农业银行、中国银行红谷滩支行、商业银行红谷滩支行等 1 +周边公园:沿乌砂河50米宽绿化带、乌砂河水岸公园、秋水广场、赣江市民公园 0 +周边医院:新建县人民医院、开心人药店、中寰医院 1 +周边学校:育新小学红谷滩校区、南师附小红谷滩校区、实验小学红谷滩校区中学:南昌二中红谷滩校区、南昌五中、新建二中、竞秀贵族学校 0 +周边公共交通:112、204、211、219、222、227、238、501等20多辆公交车在本项目社区门前停靠 1 +红谷十二庭处在南昌一江两城中的西城中心,位属红谷滩CBD文化公园中心——马兰圩中心组团,红谷滩中心区、红角洲、新建县三区交汇处,南临南期友好路、东接红谷滩中心区、西靠乌砂河水岸公园(50米宽,1000米长)。 0 +交通便捷,景观资源丰富,生活配套设施齐全,出则繁华,入则幽静,是现代人居的理想地段。 1 +红谷十二庭户型图 0 +现任广东智通人才连锁股份有限公司总裁,清华大学高级工商管理硕士。 1 +1994年,加入智通实业,从总经理秘书做起。 0 +1995年,智通实业决定进入人才服务行业,被启用去负责新公司的筹建及运营工作,在苏琳的努力下,智通人才智力开发有限公司成立。 1 +2003年,面对同城对手的激烈竞争,苏琳冷静对待,领导智通先后接管、并购了同城的腾龙、安达盛人才市场,,“品牌运作,连锁经营,差异制胜”成为苏琳屡屡制胜的法宝。 0 +2006年,苏琳先是将智通人才升级为“东莞市智通人才连锁有限公司”,一举成为广东省人才市场目前惟一的连锁机构,随后在东莞同时开设长安、松山湖、清溪等镇区分部,至此智通在东莞共有6个分部。 1 +一番大刀阔斧完成东莞布局后,苏琳确定下一个更为高远的目标——进军珠三角,向全国发展连锁机构。 0 +到2011年末,苏琳领导的智通人才已在珠三角的东莞、佛山、江门、中山等地,长三角的南京、宁波、合肥等地,中西部的南昌、长沙、武汉、重庆、西安等地设立了20多家连锁经营网点。 1 +除了财务副总裁之外,苏琳是智通人才核心管理高层当中唯一的女性,不管是要约采访的记者还是刚刚加入智通的员工,见到苏琳的第一面,都会有一种惊艳的感觉,“一位女企业家居然非常美丽和时尚?!” 0 +智通管理高层的另外6位男性成员,有一次同时接受一家知名媒体采访时,共同表达了对自己老板的“爱慕”之情,苏琳听后莞尔一笑,指着在座的这几位高层说道“其实,我更爱他们!” 1 +这种具有独特领导魅力的表述让这位记者唏嘘不已,同时由这样的一个细节让他感受到了智通管理团队的协作力量。 0 +学校于1954年始建于棕树湾村,当时借用一间民房做教室,取名为“黄沙小学”,只有教师1人,学生8人。 1 +1958年在大跃进精神的指导下,实行大集体,全乡集中办学,发展到12个班,300多学生,20名教职工。 0 +1959年解散。 1 +1959年下半年,在上级的扶持下,建了6间木房,搬到1960年学校所在地,有6名教师,3个班,60名学生。 0 +1968年,开始招收一个初中班,“黄沙小学”改名为 “附小”。 1 +当时已发展到5个班,8名教师,110多名学生。 0 +增建土木结构教室两间。 1 +1986年,初中、小学分开办学。 0 +增建部分教师宿舍和教室,办学条件稍有改善,学校初具规模。 1 +1996年,我校在市、县领导及希望工程主管部门的关怀下,决定改为“黄沙希望小学”并拨款32万元,新建一栋4层,12间教室的教学楼,教学条件大有改善。 0 +当时发展到10个班,学生300多人,教职工19人,小学高级教师3人,一级教师7人,二级教师9人。 1 +2003年下半年由于农村教育体制改革,撤销教育组,更名为“黄沙中心小学”。 0 +学校现有在校生177人(含学前42人),设有学前至六年级共7个教学班。 1 +有教师19人,其中大专以上学历11人,中师6人;小学高级教师14人,一级教师5人。 0 +学校校园占地面积2050平方米,生均达15.29平方米,校舍建筑面积1645平方米,生均12.27平方米;设有教师办公室、自然实验、电教室(合二为一)、微机室、图书阅览室(合二为一)、体育室、广播室、少先队活动室。 1 +广西壮族自治区桂林市临桂县黄沙瑶族乡黄沙街 邮编:541113[1] 0 +伊藤实华(1984年3月25日-)是日本的女性声优。 1 +THREE TREE所属,东京都出身,身长149cm,体重39kg,血型AB型。 0 +ポルノグラフィティのLION(森男) 1 +2000年 0 +犬夜叉(枫(少女时代)) 1 +幻影死神(西亚梨沙) 0 +2001年 1 +NOIR(ロザリー) 0 +2002年 1 +水瓶战记(柠檬) 0 +返乡战士(エイファ) 1 +2003年 0 +奇诺之旅(女子A(悲しい国)) 1 +2004年 0 +爱你宝贝(坂下ミキ) 1 +Get Ride! アムドライバー(イヴァン・ニルギース幼少期) 0 +スクールランブル(花井春树(幼少时代)) 1 +2005年 0 +光速蒙面侠21(虎吉) 1 +搞笑漫画日和(男子トイレの精、パン美先生) 0 +银牙伝说WEED(テル) 1 +魔女的考验(真部カレン、守山太郎) 0 +BUZZER BEATER(レニー) 1 +虫师(“眼福眼祸”さき、“草を踏む音”沢(幼少时代)) 0 +2006年 1 +魔女之刃(娜梅) 0 +反斗小王子(远藤レイラ) 1 +搞笑漫画日和2(パン美先生、フグ子、ダンサー、ヤマトの妹、女性) 0 +人造昆虫カブトボーグ V×V(ベネチアンの弟、东ルリ、园儿A) 1 +2007年 0 +爆胎监测与安全控制系统(Blow-out Monitoring and Brake System),是吉利全球首创,并拥有自主知识产权及专利的一项安全技术。 1 +这项技术主要是出于防止高速爆胎所导致的车辆失控而设计。 0 +BMBS爆胎监测与安全控制系统技术于2004年1月28日正式获得中国发明专利授权。 1 +2008年第一代BMBS系统正式与世人见面,BMBS汇集国内外汽车力学、控制学、人体生理学、电子信息学等方面的专家和工程技术人员经过一百余辆试验车累计行程超过五百万公里的可靠性验证,以确保产品的可靠性。 0 +BMBS技术方案的核心即是采用智能化自动控制系统,弥补驾驶员生理局限,在爆胎后反应时间为0.5秒,替代驾驶员实施行车制动,保障行车安全。 1 +BMBS系统由控制系统和显示系统两大部分组成,控制系统由BMBS开关、BMBS主机、BMBS分机、BMBS真空助力器四部分组成;显示系统由GPS显示、仪表指示灯、语言提示、制动双闪灯组成。 0 +当轮胎气压高于或低于限值时,控制器声光提示胎压异常。 1 +轮胎温度过高时,控制器发出信号提示轮胎温度过高。 0 +发射器电量不足时,控制器显示低电压报警。 1 +发射器受到干扰长期不发射信号时,控制器显示无信号报警。 0 +当汽车电门钥匙接通时,BMBS首先进入自检程序,检测系统各部分功能是否正常,如不正常,BMBS报警灯常亮。 1 +走读干部一般是指县乡两级干部家住县城以上的城市,本人在县城或者乡镇工作,要么晚出早归,要么周一去单位上班、周五回家过周末。 0 +对于这种现象,社会上的议论多是批评性的,认为这些干部脱离群众、作风漂浮、官僚主义,造成行政成本增加和腐败。 1 + 截至2014年10月,共有6484名“走读干部”在专项整治中被查处。 0 +这是中央首次大规模集中处理这一长期遭诟病的干部作风问题。 1 +干部“走读”问题主要在乡镇地区比较突出,城市地区则较少。 0 +从历史成因和各地反映的情况来看,产生“走读”现象的主要原因大致有四种: 1 +现今绝大多数乡村都有通往乡镇和县城的石子公路甚至柏油公路,这无疑为农村干部的出行创造了便利条件,为“干部像候鸟,频往家里跑”创造了客观条件。 0 +选调生、公务员队伍大多是学历较高的大学毕业生,曾在高校所在地的城市生活,不少人向往城市生活,他们不安心长期扎根基层,而是将基层当作跳板,因此他们往往成为“走读”的主力军。 1 +公仆意识、服务意识淡化,是“走读”现象滋生的主观原因。 0 +有些党员干部感到自己长期在基层工作,该为自己和家庭想想了。 1 +于是,不深入群众认真调查研究、认真听取群众意见、认真解决群众的实际困难,也就不难理解了。 0 +县级党政组织对乡镇领导干部管理的弱化和为基层服务不到位,导致“走读”问题得不到应有的制度约束,是“走读”问题滋长的组织原因。[2] 1 +近些年来,我国一些地方的“干部走读”现象较为普遍,社会上对此议走读干部论颇多。 0 +所谓“干部走读”,一般是指县乡两级干部家住县城以上的城市,本人在县城或者乡镇工作,要么早出晚归,要么周一去单位上班、周五回家过周末。 1 +对于这种现象,社会上的议论多是批评性的,认为这些干部脱离群众、作风漂浮、官僚主义,造成行政成本增加和腐败。 0 +干部走读之所以成为“千夫所指”,是因为这种行为增加了行政成本。 1 +从根子上说,干部走读是城乡发展不平衡的产物,“人往高处走,水往低处流”,有了更加舒适的生活环境,不管是为了自己生活条件改善也好,还是因为子女教育也好,农村人口向城镇转移,这是必然结果。 0 +“干部走读”的另一个重要原因,是干部人事制度改革。 1 +目前公务员队伍“凡进必考”,考上公务员的大多是学历较高的大学毕业生,这些大学毕业生来自各个全国各地,一部分在本地结婚生子,沉淀下来;一部分把公务员作为跳板,到基层后或考研,或再参加省考、国考,或想办法调回原籍。 0 +再加上一些下派干部、异地交流任职干部,构成了看似庞大的“走读”队伍。 1 +那么,“干部走读”有哪些弊端呢? 0 +一是这些干部人在基层,心在城市,缺乏长期作战的思想,工作不安心。 1 +周一来上班,周五回家转,对基层工作缺乏热情和感情;二是长期在省市直机关工作,对基层工作不熟悉不了解,工作不热心;三是长期走读,基层干群有工作难汇报,有困难难解决,群众不开心;四是干部来回走读,公车私驾,私费公报,把大量的经济负担转嫁给基层;五是对这些走读干部,基层管不了,上级监督难,节假日期间到哪里去、做什么事,基本处于失控和真空状态,各级组织和基层干群不放心。 0 +特别需要引起警觉的是,由于少数走读干部有临时思想,满足于“当维持会长”,得过且过混日子,热衷于做一些急功近利、砸锅求铁的短期行为和政绩工程,不愿做打基础、管长远的实事好事,甚至怠政、疏政和懒于理政,影响了党和政府各项方针政策措施的落实,导致基层无政府主义、自由主义抬头,削弱了党和政府的领导,等到矛盾激化甚至不可收拾的时候,处理已是来之不及。 1 +权利要与义务相等,不能只有义务而没有权利,或是只有权利没有义务。 0 +如何真正彻底解决乡镇干部“走读”的现象呢? 1 +那就必须让乡镇基层干部义务与权利相等。 0 +如果不能解决基层干部待遇等问题,即使干部住村,工作上也不会有什么进展的。 1 +所以,在政治上关心,在生活上照顾,在待遇上提高。 0 +如,提高基层干部的工资待遇,增加通讯、交通补助;帮助解决子女入学及老人赡养问题;提拔干部优先考虑基层干部;干部退休时的待遇至少不低于机关干部等等。 1 +学校全体教职工爱岗敬业,团结拼搏,勇于开拓,大胆创新,进行教育教学改革,努力开辟第二课堂的教学路子,并开通了网络校校通的交流合作方式。 0 +现学校教师正在为创建安全文明校园而努力。 1 +东岸小学位置偏僻,地处贫穷落后,是良光镇最偏远的学校,学校,下辖分教点——东心埇小学,[1]?。 0 +学校2011年有教师22人,学生231人。 1 +小学高级教师8人,小学一级教师10人,未定级教师4人,大专学历的教师6人,其余的都具有中师学历。 0 +全校共设12个班,学校课程按标准开设。 1 +东岸小学原来是一所破旧不堪,教学质量非常差的薄弱学校。 0 +近几年来,在各级政府、教育部门及社会各界热心人士鼎力支持下,学校领导大胆改革创新,致力提高教学质量和教师水平,并加大经费投入,大大改善了办学条件,使学校由差变好,实现了大跨越。 1 +学校建设性方面。 0 +东岸小学属于革命老区学校,始建于1980年,从东心埇村祠堂搬到这个校址,1990年建造一幢建筑面积为800平方米的南面教学楼, 1998年老促会支持从北面建造一幢1800平方米的教学大楼。 1 +学校在管理方面表现方面颇具特色,实现了各项制度的日常化和规范化。 0 +学校领导有较强的事业心和责任感,讲求民主与合作,勤政廉政,依法治校,树立了服务意识。 1 +学校一贯实施“德育为先,以人为本”的教育方针,制定了“团结,律已,拼搏,创新”的校训。 0 +教育风为“爱岗敬业,乐于奉献”,学风为“乐学,勤学,巧学,会学”。 1 +校内营造了尊师重教的氛围,形成了良好的校风和学风。 0 +教师们爱岗敬业,师德高尚,治学严谨,教研教改气氛浓厚,获得喜人的教研成果。 1 +近几年来,教师撰写的教育教学论文共10篇获得县市级以上奖励,获了镇级以上奖励的有100人次。 0 +学校德育工作成绩显著,多年被评为“安全事故为零”的学校,良光镇先进学校。 1 +特别是教学质量大大提高了。 0 +这些成绩得到了上级及群众的充分肯定。 1 +1.学校环境欠美观有序,学校大门口及校道有待改造。 0 +2.学校管理制度有待改进,部分教师业务水平有待提高。 1 +3.教师宿舍、教室及学生宿舍欠缺。 0 +4.运动场不够规范,各类体育器材及设施需要增加。 1 +5.学生活动空间少,见识面窄,视野不够开阔。 0 +1.努力营造和谐的教育教学新气氛。 1 +建立科学的管理制度,坚持“与时俱进,以人为本”,真正实现领导对教师,教师对学生之间进行“德治与情治”;学校的人文环境做到“文明,和谐,清新”;德育环境做到“自尊,律已,律人”;心理环境做到“安全,谦虚,奋发”;交际环境做到“团结合作,真诚助人”;景物环境做到“宜人,有序。” 0 +营造学校与育人的新特色。 1 +产生或放大高频功率的静电控制电子管,有时也称振荡管。 0 +用于音频或开关电路中的发射管称调制管。 1 +发射管是无线电广播、通信、电视发射设备和工业高频设备中的主要电子器件。 0 +输出功率和工作频率是发射管的基本技术指标。 1 +广播、通信和工业设备的发射管,工作频率一般在30兆赫以下,输出功率在1919年为2千瓦以下,1930年达300千瓦,70年代初已超过1000千瓦,效率高达80%以上。 0 +发射管工作频率提高时,输出功率和效率都会降低,因此1936年首次实用的脉冲雷达工作频率仅28兆赫,80年代则已达 400兆赫以上。 1 +40年代电视发射管的工作频率为数十兆赫,而80年代初,优良的电视发射管可在1000兆赫下工作,输出功率达20千瓦,效率为40%。 0 +平面电极结构的小功率发射三极管可在更高的频率下工作。 1 +发射管多采用同心圆筒电极结构。 0 +阴极在最内层,向外依次为各个栅极和阳极。 1 +图中,自左至右为阴极、第一栅、第二栅、栅极阴极组装件和装入阳极后的整个管子。 0 + 发射管 1 +中小功率发射管多采用间热式氧化物阴极。 0 +大功率发射管一般采用碳化钍钨丝阴极,有螺旋、直条或网笼等结构形式。 1 +图为网笼式阴极。 0 +栅极多用钼丝或钨丝绕制,或用钼片经电加工等方法制造。 1 +栅极表面经镀金(或铂)或涂敷锆粉等处理,以降低栅极电子发射,使发射管稳定工作。 0 +用气相沉积方法制造的石墨栅极,具有良好的性能。 1 +发射管阳极直流输入功率转化为高频输出功率的部分约为75%,其余25%成为阳极热损耗,因此对发射管的阳极必须进行冷却。 0 +中小功率发射管的阳极采取自然冷却方式,用镍、钼或石墨等材料制造,装在管壳之内,工作温度可达 600℃。 1 +大功率发射管的阳极都用铜制成,并作为真空密封管壳的一部分,采用各种强制冷却方式。 0 +各种冷却方式下每平方厘米阳极内表面的散热能力为:水冷100瓦;风冷30瓦;蒸发冷却250瓦;超蒸发冷却1000瓦以上,80年代已制成阳极损耗功率为1250千瓦的超蒸发冷却发射管。 1 +发射管也常以冷却方式命名,如风冷发射管、水冷发射管和蒸发冷却发射管。 0 +发射管管壳用玻璃或陶瓷制造。 1 +小功率发射管内使用含钡的吸气剂;大功率发射管则采用锆、钛、钽等吸气材料,管内压强约为10帕量级。 0 +发射管寿命取决于阴极发射电子的能力。 1 +大功率发射管寿命最高记录可达8万小时。 0 +发射四极管的放大作用和输出输入电路间的隔离效果优于三极管,应用最广。 1 +工业高频振荡器普遍采用三极管。 0 +五极管多用在小功率范围中。 1 +鲁能领秀城中央公园位于鲁能领秀城景观中轴之上,总占地161.55亩,总建筑面积约40万平米,容积率为2.70,由22栋小高层、高层组成;其绿地率高达35.2%,环境优美,产品更加注重品质化、人性化和自然生态化,是鲁能领秀城的生态人居典范。 0 +中央公园[1] 学区准现房,坐享鲁能领秀城成熟配套,成熟生活一步到位。 1 +经典板式小高层,103㎡2+1房仅22席,稀市推出,错过再无;92㎡经典两房、137㎡舒适三房压轴登场! 0 +物业公司: 1 +济南凯瑞物业公司;深圳长城物业公司;北京盛世物业有限公司 0 +绿化率: 1 +42% 0 +容积率: 1 +2.70 0 +暖气: 1 +集中供暖 0 +楼座展示:中央公园由22栋小高层、高层组成,3、16、17号楼分别是11层小高层,18层和28层的高层。 1 +4号楼是23层,2梯3户。 0 +项目位置: 1 +鬼青蛙这张卡可以从手卡把这张卡以外的1只水属性怪兽丢弃,从手卡特殊召唤。 0 +这张卡召唤·反转召唤·特殊召唤成功时,可以从自己的卡组·场上选1只水族·水属性·2星以下的怪兽送去墓地。 1 +此外,1回合1次,可以通过让自己场上1只怪兽回到手卡,这个回合通常召唤外加上只有1次,自己可以把「鬼青蛙」以外的1只名字带有「青蛙」的怪兽召唤。[1] 0 +游戏王卡包收录详情 1 +[09/09/18] 0 +西湖区是江西省南昌市市辖区。 1 +为南昌市中心城区之一,有着2200多年历史,是一个物华天宝、人杰地灵的古老城区。 0 +2004年南昌市老城区区划调整后,西湖区东起京九铁路线与青山湖区毗邻,南以洪城路东段、抚河路南段、象湖以及南隔堤为界与青云谱区、南昌县接壤,西凭赣江中心线与红谷滩新区交界,北沿中山路、北京西路与东湖区相连,所辖面积34.5平方公里,常住人口43万,管辖1个镇、10个街道办事处,设12个行政村、100个社区。 1 +(图)西湖区[南昌市] 0 +西湖原为汉代豫章群古太湖的一部分,唐贞元15年(公元799年)洪恩桥的架设将东太湖分隔成东西两部分,洪恩桥以西谓之西湖,西湖区由此而得名。 1 +西湖区在1926年南昌设市后分别称第四、五部分,六、七部分。 0 +1949年解放初期分别称第三、四区。 1 +1955年分别称抚河区、西湖区。 0 +1980年两区合并称西湖区。[1] 1 +辖:西湖街道、丁公路街道、广外街道、系马桩街道、绳金塔街道、朝阳洲街道、禾草街街道、十字街街道、瓦子角街道、三眼井街道、上海路街道、筷子巷街道、南站街道。[1] 0 +2002年9月,由原筷子巷街道和原禾草街街道合并设立南浦街道,原广外街道与瓦子角街道的一部分合并设立广润门街道。 1 +2002年12月1日设立桃源街道。 0 +2004年区划调整前的西湖区区域:东与青山湖区湖坊乡插花接壤;西临赣江与红谷滩新区隔江相望;南以建设路为界,和青云谱区毗邻;北连中山路,北京西路,与东湖区交界。[1] 1 +2002年9月,由原筷子巷街道和原禾草街街道合并设立南浦街道,原广外街道与瓦子角街道的一部分合并设立广润门街道。 0 +2002年12月1日设立桃源街道。 1 +2004年区划调整前的西湖区区域:东与青山湖区湖坊乡插花接壤;西临赣江与红谷滩新区隔江相望;南以建设路为界,和青云谱区毗邻;北连中山路,北京西路,与东湖区交界。 0 +2004年9月7日,国务院批准(国函[2004]70号)调整南昌市市辖区部分行政区划:将西湖区朝阳洲街道的西船居委会划归东湖区管辖。 1 +将青山湖区的桃花镇和湖坊镇的同盟村划归西湖区管辖。 0 +将西湖区十字街街道的谷市街、洪城路、南关口、九四、新丰5个居委会,上海路街道的草珊瑚集团、南昌肠衣厂、电子计算机厂、江西涤纶厂、江地基础公司、曙光、商标彩印厂、南昌市染整厂、江南蓄电池厂、四机床厂、二进、国乐新村12个居委会,南站街道的解放西路东居委会划归青云谱区管辖。 1 +将西湖区上海路街道的轻化所、洪钢、省人民检察院、电信城东分局、安康、省机械施工公司、省水利设计院、省安装公司、南方电动工具厂、江西橡胶厂、上海路北、南昌电池厂、东华计量所、南昌搪瓷厂、上海路新村、华安针织总厂、江西五金厂、三波电机厂、水文地质大队、二六○厂、省卫生学校、新世纪、上海路住宅区北、塔子桥北、南航、上海路住宅区南、沿河、南昌阀门厂28个居委会,丁公路街道的新魏路、半边街、师大南路、顺化门、岔道口东路、师大、广电厅、手表厂、鸿顺9个居委会,南站街道的工人新村北、工人新村南、商苑、洪都中大道、铁路第三、铁路第四、铁路第六7个居委会划归青山湖区管辖。 0 +调整后,西湖区辖绳金塔、桃源、朝阳洲、广润门、南浦、西湖、系马桩、十字街、丁公路、南站10个街道和桃花镇,区人民政府驻孺子路。 1 +调整前,西湖区面积31平方千米,人口52万。 0 +(图)西湖区[南昌市] 1 +西湖区位于江西省省会南昌市的中心地带,具有广阔的发展空间和庞大的消费群体,商贸旅游、娱乐服务业等到各个行业都蕴藏着无限商机,投资前景十分广阔。 0 +不仅水、电价格低廉,劳动力资源丰富,人均工资和房产价格都比沿海城市低,城区拥有良好的人居环境、低廉的投资成本,巨大的发展潜力。 1 +105、316、320国道和京九铁路贯穿全境,把南北东西交通连成一线;民航可与上海、北京、广州、深圳、厦门、温州等到地通航,并开通了南昌-新加坡第一条国际航线;水运依托赣江可直达长江各港口;邮电通讯便捷,程控电话、数字微波、图文传真进入国际通讯网络;商检、海关、口岸等涉外机构齐全;水、电、气供应充足。 0 +(图)西湖区[南昌市] 1 +西湖区,是江西省省会南昌市的中心城区,面积34.8平方公里,常住人口51.9万人,辖桃花镇、朝农管理处及10个街道,设13个行政村,116个社区居委会,20个家委会。[2] 0 +2005年11月16日,南昌市《关于同意西湖区桃花镇、桃源、十字街街道办事处行政区划进行调整的批复》 1 +1、同意将桃花镇的三道闸居委会划归桃源街道办事处管辖。 0 +青藏虎耳草多年生草本,高4-11.5厘米,丛生。 1 +花期7-8月。 0 +分布于甘肃(祁连山地)、青海(黄南、海南、海北)和西藏(加查)。 1 +生于海拔3 700-4 250米的林下、高山草甸和高山碎石隙。[1] 0 +多年生草本,高4-11.5厘米,丛生。 1 +茎不分枝,具褐色卷曲柔毛。 0 +基生叶具柄,叶片卵形、椭圆形至长圆形,长15-25毫米,宽4-8毫米,腹面无毛,背面和边缘具褐色卷曲柔毛,叶柄长1-3厘米,基部扩大,边缘具褐色卷曲柔毛;茎生叶卵形至椭圆形,长1.5-2厘米,向上渐变小。 1 +聚伞花序伞房状,具2-6花;花梗长5-19毫米,密被褐色卷曲柔毛;萼片在花期反曲,卵形至狭卵形,长2.5-4.2毫米,宽1.5-2毫米,先端钝,两面无毛,边缘具褐色卷曲柔毛,3-5脉于先端不汇合;花瓣腹面淡黄色且其中下部具红色斑点,背面紫红色,卵形、狭卵形至近长圆形,长2.5-5.2毫米,宽1.5-2.1毫米,先端钝,基部具长0.5-1毫米之爪,3-5(-7)脉,具2痂体;雄蕊长2-3.6毫米,花丝钻形;子房半下位,周围具环状花盘,花柱长1-1.5毫米。 0 +生于高山草甸、碎石间。 1 +分布青海、西藏、甘肃、四川等地。 0 + [1] 1 +顶峰虎耳草Saxifraga cacuminum Harry Sm. 0 +对叶虎耳Saxifraga contraria Harry Sm. 1 +狭瓣虎耳草Saxifraga pseudohirculus Engl. 0 +唐古特虎耳草Saxifraga tangutica Engl. 1 +宽叶虎耳草(变种)Saxifraga tangutica Engl. var. platyphylla (Harry Sm.) J. T. Pan 0 +唐古特虎耳草(原变种)Saxifraga tangutica Engl. var. tangutica 1 +西藏虎耳草Saxifraga tibetica Losinsk.[1] 0 +Saxifraga przewalskii Engl. in Bull. Acad. Sci. St. -Petersb. 29:115. 1883: Engl et Irmsch. in Bot. Jahrb. 48:580. f. 5E-H. 1912 et in Engl. Pflanzenr. 67(IV. 117): 107. f. 21 E-H. 1916; J. T. Pan in Acta Phytotax. Sin. 16(2): 16. 1978;中国高等植物图鉴补编2: 30. 1983; 西藏植物志 2: 483. 1985. [1] 1 +欧文冲锋枪 Owen Gun 1945年,在新不列颠手持欧文冲锋枪的澳大利亚士兵 类型 冲锋枪 原产国 ?澳大利亚 服役记录 服役期间 1941年-1960年代 用户 参见使用国 参与战役 第二次世界大战 马来亚紧急状态 朝鲜战争 越南战争 1964年罗德西亚布什战争 生产历史 研发者 伊夫林·欧文(Evelyn Owen) 研发日期 1931年-1939年 生产商 约翰·莱萨特工厂 利特高轻武器工厂 单位制造费用 $ 30/枝 生产日期 1941年-1945年 制造数量 45,000-50,000 枝 衍生型 Mk 1/42 Mk 1/43 Mk 2/43 基本规格 总重 空枪: Mk 1/42:4.24 千克(9.35 磅) Mk 1/43:3.99 千克(8.8 磅) Mk 2/43:3.47 千克(7.65 磅) 全长 806 毫米(31.73 英吋) 枪管长度 247 毫米(9.72 英吋) 弹药 制式:9 × 19 毫米 原型:.38/200 原型:.45 ACP 口径 9 × 19 毫米:9 毫米(.357 英吋) .38/200:9.65 毫米(.38 英吋) .45 ACP:11.43 毫米(.45 英吋) 枪管 1 根,膛线7 条,右旋 枪机种类 直接反冲作用 开放式枪机 发射速率 理论射速: Mk 1/42:700 发/分钟 Mk 1/43:680 发/分钟 Mk 2/43:600 发/分钟 实际射速:120 发/分钟 枪口初速 380-420 米/秒(1,246.72-1,377.95 英尺/秒) 有效射程 瞄具装定射程:91.44 米(100 码) 最大有效射程:123 米(134.51 码) 最大射程 200 米(218.72 码) 供弹方式 32/33 发可拆卸式弹匣 瞄准具型式 机械瞄具:向右偏置的觇孔式照门和片状准星 欧文冲锋枪(英语:Owen Gun,正式名称:Owen Machine Carbine,以下简称为“欧文枪”)是一枝由伊夫林·(埃沃)·欧文(英语:Evelyn (Evo) Owen)于1939年研制、澳大利亚的首枝冲锋枪,制式型发射9 × 19 毫米鲁格手枪子弹。 0 +欧文冲锋枪是澳大利亚唯一设计和主要服役的二战冲锋枪,并从1943年由澳大利亚陆军所使用,直到1960年代中期。 1 +由新南威尔士州卧龙岗市出身的欧文枪发明者,伊夫林·欧文,在24岁时于1939年7月向悉尼维多利亚军营的澳大利亚陆军军械官员展示了他所设计的.22 LR口径“卡宾机枪”原型枪。 0 +该枪却被澳大利亚陆军所拒绝,因为澳大利亚陆军在当时没有承认冲锋枪的价值。 1 +随着战争的爆发,欧文加入了澳大利亚军队,并且成为一名列兵。 0 +1940年9月,欧文的邻居,文森特·沃德尔(英语:Vincent Wardell),看到欧文家楼梯后面搁著一个麻布袋,里面放著一枝欧文枪的原型枪。 1 +而文森特·沃德尔是坎布拉港的大型钢制品厂莱萨特公司的经理,他向欧文的父亲表明了他对其儿子的粗心大意感到痛心,但无论如何仍然解释了这款武器的历史。 0 +沃德尔对欧文枪的简洁的设计留下了深刻的印象。 1 +沃德尔安排欧文转调到陆军发明部(英语:Army Inventions Board),并重新开始在枪上的工作。 0 +军队仍然持续地从负面角度查看该武器,但同时政府开始采取越来越有利的观点。 1 +该欧文枪原型配备了装在顶部的弹鼓,后来让位给装在顶部的弹匣使用。 0 +口径的选择亦花了一些时间去解决。 1 +由于陆军有大批量的柯尔特.45 ACP子弹,它们决定欧文枪需要采用这种口径。 0 +直到在1941年9月19日官方举办试验时,约翰·莱萨特工厂制成了9 毫米、.38/200和.45 ACP三种口径版本。 1 +而从美、英进口的斯登冲锋枪和汤普森冲锋枪在试验中作为基准使用。 0 +作为测试的一部分,所有的枪支都浸没在泥浆里,并以沙土覆盖,以模拟他们将会被使用时最恶劣的环境。 1 +欧文枪是唯一在这测试中这样对待以后仍可正常操作的冲锋枪。 0 +虽然测试表现出欧文枪具有比汤普森冲锋枪和司登冲锋枪更优秀的可靠性,陆军没有对其口径作出决定。 1 +结果它在上级政府干预以后,陆军才下令9 毫米的衍生型为正式口径,并在1941年11月20日正式被澳大利亚陆军采用。 0 +在欧文枪的寿命期间,其可靠性在澳大利亚部队中赢得了“军人的至爱”(英语:Digger's Darling)的绰号,亦有人传言它受到美军高度青睐。 1 +欧文枪是在1942年开始正式由坎布拉港和纽卡斯尔的约翰·莱萨特工厂投入生产,在生产高峰期每个星期生产800 支。 0 +1942年3月至1943年2月之间,莱萨特生产了28,000 枝欧文枪。 1 +然而,最初的一批弹药类型竟然是错误的,以至10,000 枝欧文枪无法提供弹药。 0 +政府再一次推翻军方的官僚主义作风??,并让弹药通过其最后的生产阶段,以及运送到当时在新几内亚与日军战斗的澳大利亚部队的手中。 1 +在1941年至1945年间生产了约50,000 枝欧文枪。 0 +在战争期间,欧文枪的平均生产成本为$ 30。[1] 1 +虽然它是有点笨重,因为其可靠性,欧文枪在士兵当中变得非常流行。 0 +它是如此成功,它也被新西兰、英国和美国订购。[2] 1 +欧文枪后来也被澳大利亚部队在朝鲜战争和越南战争,[3]特别是步兵组的侦察兵。 0 +这仍然是一枝制式的澳大利亚陆军武器,直到1960年代中期,它被F1冲锋枪所取代。 1 +光伏发电不仅是全球能源科技和产业发展的重要方向,也是我国具有国际竞争优势的战略性新兴产业,是我国保障能源安全、治理环境污染、应对气候变化的战略性选择。 0 +2013年7月以来,国家出台了《关于促进光伏产业健康发展的若干意见》等一系列政策,大力推进分布式光伏发电的应用,光伏发电有望走进千家万户,融入百姓民生。 1 +大赛主办方以此为契机,开启了“第二届中国光伏摄影大赛”的征程。 0 +悬赏任务,威客网站上一种任务模式,由雇主在威客网站发布任务,提供一定数额的赏金,以吸引威客们参与。 1 +悬赏任务数额一般在几十到几千不等,但也有几万甚至几十万的任务。 0 +主要以提交的作品的质量好坏作为中标标准,当然其中也带有雇主的主观喜好,中标人数较少,多为一个或几个,因此竞争激烈。 1 +大型悬赏任务赏金数额巨大,中标者也较多,但参与人也很多,对于身有一技之长的威客来讲,悬赏任务十分适合。 0 +悬赏任务的类型主要包括:设计类、文案类、取名类、网站类、编程类、推广类等等。 1 +每一类所适合的威客人群不同,报酬的多少也不同,比如设计类的报酬就比较高,一般都几百到几千,而推广类的计件任务报酬比较少,一般也就几块钱,但花费的时间很少,技术要求也很低。 0 +1.注册—登陆 1 +2.点击“我要发悬赏”—按照发布流程及提示提交任务要求。 0 +悬赏模式选择->网站托管赏金模式。 1 +威客网站客服稍后会跟发布者联系确认任务要求。 0 +3.没有问题之后就可以预付赏金进行任务发布。 1 +4.会员参与并提交稿件。 0 +5.发布者需要跟会员互动(每个提交稿件的会员都可以),解决问题,完善稿件,初步筛选稿件。 1 +6.任务发布期结束,进入选稿期(在筛选的稿件中选择最后满意的) 0 +7.发布者不满意现有稿件可选定一个会员修改至满意为止,或者加价延期重新开放任务进行征稿。 1 +(重复第六步)没有问题后进入下一步。 0 +8:中标会员交源文件给发布者—发布者确认—任务结束—网站将赏金付给中标会员。 1 +1、任务发布者自由定价,自由确定悬赏时间,自由发布任务要求,自主确定中标会员和中标方案。 0 +2、任务发布者100%预付任务赏金,让竞标者坚信您的诚意和诚信。 1 +3、任务赏金分配原则:任务一经发布,网站收取20%发布费,中标会员获得赏金的80%。 0 +4、每个任务最终都会选定至少一个作品中标,至少一个竞标者获得赏金。 1 +5、任务发布者若未征集到满意作品,可以加价延期征集,也可让会员修改,会员也可以删除任务。 0 +6、任务发布者自己所在组织的任何人均不能以任何形式参加自己所发布的任务,一经发现则视为任务发布者委托威客网按照网站规则选稿。 1 +7、任务悬赏总金额低于100元(含100元)的任务,悬赏时间最多为7天。 0 +所有任务最长时间不超过30天(特殊任务除外),任务总金额不得低于50元。 1 +8、网赚类、注册类任务总金额不能低于300元人民币,计件任务每个稿件的平均单价不能低于1元人民币。 0 +9、延期任务只有3次加价机会,第1次加价不得低于任务金额的10%,第2次加价不得低于任务总金额的20%,第3次不得低于任务总金额的50%。 1 +每次延期不能超过15天,加价金额不低于50元,特殊任务可以适当加长。 0 +如果为计件任务,且不是网赚类任务,将免费延期,直至征集完规定数量的作品为止。 1 +10、如果威客以交接源文件要挟任务发布者,威客网将扣除威客相关信用值,并取消其中标资格,同时任务将免费延长相应的时间继续征集作品 。 0 +《江湖令》是以隋唐时期为背景的RPG角色扮演类网页游戏。 1 +集角色扮演、策略、冒险等多种游戏元素为一体,画面精美犹如客户端游戏,融合历史、江湖、武功、恩仇多种特色元素,是款不可多得的精品游戏大作。 0 +由ya247平台、91wan游戏平台、2918、4399游戏平台、37wan、6711、兄弟玩网页游戏平台,49you、Y8Y9平台、8090游戏等平台运营的,由07177游戏网发布媒体资讯的网页游戏。 1 +网页游戏《江湖令》由51游戏社区运营,是以隋唐时期为背景的RPG角色扮演类网页游戏。 0 +集角色扮演、策略、冒险等多种游戏元素为一体,画面精美犹如客户端游戏,融合历史、江湖、武功、恩仇多种特色元素,是款不可多得的精品游戏大作… 1 +背景故事: 0 +隋朝末年,隋炀帝暴政,天下民不聊生,义军四起。 1 +在这动荡的时代中,百姓生活苦不堪言,多少人流离失所,家破人亡。 0 +天下三大势力---飞羽营、上清宫、侠隐岛,也值此机会扩张势力,派出弟子出来行走江湖。 1 +你便是这些弟子中的普通一员,在这群雄并起的年代,你将如何选择自己的未来。 0 +所有的故事,便从瓦岗寨/江都大营开始…… 1 +势力: 0 +①、飞羽营:【外功、根骨】 1 +南北朝时期,由北方政权创立的一个民间军事团体,经过多年的发展,逐渐成为江湖一大势力。 0 +②、上清宫:【外功、身法】 1 +道家圣地,宫中弟子讲求清静无为,以一种隐世的方式修炼,但身在此乱世,亦也不能独善其身。 0 +③、侠隐岛:【根骨、内力】 1 +位于偏远海岛上的一个世家,岛内弟子大多武功高强,但从不进入江湖行走,适逢乱世,现今岛主也决意作一翻作为。 0 +两大阵营: 1 +义军:隋唐末期,百姓生活苦不堪言,有多个有志之士组成义军,对抗当朝暴君,希望建立一个适合百姓安居乐业的天地。 0 +隋军:战争一起即天下打乱,隋军首先要镇压四起的义军,同时在内部慢慢改变现有的朝廷,让天下再次恢复到昔日的安定。 1 +一、宠物品质 0 +宠物的品质分为:灵兽,妖兽,仙兽,圣兽,神兽 1 +二、宠物获取途径 0 +完成任务奖励宠物(其他途径待定)。 1 +三、宠物融合 0 +1、在主界面下方的【宠/骑】按钮进入宠物界面,再点击【融合】即可进入融合界面进行融合,在融合界面可选择要融合的宠物进行融合 1 +2、融合后主宠的形态不变; 0 +3、融合后宠物的成长,品质,技能,经验,成长经验,等级都继承成长高的宠物; 1 +4、融合宠物技能冲突,则保留成长值高的宠物技能,如果不冲突则叠加在空余的技能位置。 0 +土耳其足球超级联赛(土耳其文:Türkiye 1. Süper Futbol Ligi)是土耳其足球协会管理的职业足球联赛,通常简称“土超”,也是土耳其足球联赛中最高级别。 1 +目前,土超联赛队伍共有18支。 0 +土耳其足球超级联赛 1 +运动项目 足球 0 +成立年份 1959年 1 +参赛队数 18队 0 +国家 土耳其 1 +现任冠军 费内巴切足球俱乐部(2010-2011) 0 +夺冠最多队伍 费内巴切足球俱乐部(18次) 1 +土耳其足球超级联赛(Türkiye 1. Süper Futbol Ligi)是土耳其足球协会管理的职业足球联赛,通常简称「土超」,也是土耳其足球联赛中最高级别。 0 +土超联赛队伍共有18支。 1 +土超联赛成立于1959年,成立之前土耳其国有多个地区性联赛。 0 +土超联赛成立后便把各地方联赛制度统一起来。 1 +一般土超联赛由八月开始至五月结束,12月至1月会有歇冬期。 0 +十八支球队会互相对叠,各有主场和作客两部分,采计分制。 1 +联赛枋最底的三支球队会降到土耳其足球甲级联赛作赛。 0 +由2005-06年球季起,土超联赛的冠、亚军会取得参加欧洲联赛冠军杯的资格。 1 +成立至今土超联赛乃由两支著名球会所垄断──加拉塔萨雷足球俱乐部和费内巴切足球俱乐部,截至2009-2010赛季,双方各赢得冠军均为17次。 0 +土超联赛共有18支球队,采取双循环得分制,每场比赛胜方得3分,负方0分,平局双方各得1分。 1 +如果两支球队积分相同,对战成绩好的排名靠前,其次按照净胜球来决定;如果有三支以上的球队分数相同,则按照以下标准来确定排名:1、几支队伍间对战的得分,2、几支队伍间对战的净胜球数,3、总净胜球数。 0 +联赛第1名直接参加下个赛季冠军杯小组赛,第2名参加下个赛季冠军杯资格赛第三轮,第3名进入下个赛季欧洲联赛资格赛第三轮,第4名进入下个赛季欧洲联赛资格赛第二轮,最后三名降入下个赛季的土甲联赛。 1 +该赛季的土耳其杯冠军可参加下个赛季欧洲联赛资格赛第四轮,如果冠军已获得冠军杯资格,则亚军可参加下个赛季欧洲联赛资格赛第四轮,否则名额递补给联赛。 0 +2010年/2011年 费内巴切 1 +2009年/2010年 布尔萨体育(又译贝莎) 0 +2008年/2009年 贝西克塔斯 1 +2007年/2008年 加拉塔萨雷 0 +2006年/2007年 费内巴切 1 +2005年/2006年 加拉塔沙雷 0 +2004年/2005年 费内巴切(又译费伦巴治) 1 +2003年/2004年 费内巴切 0 +CID 是 Customer IDentity 的简称,简单来说就是手机的平台版本. CID紧跟IMEI存储在手机的OTP(One Time Programmable)芯片中. CID 后面的数字代表的是索尼爱立信手机软件保护版本号,新的CID不断被使用,以用来防止手机被非索尼爱立信官方的维修程序拿来解锁/刷机/篡改 1 +CID 是 Customer IDentity 的简称,简单来说就是手机的平台版本. CID紧跟IMEI存储在手机的OTP(One Time Programmable)芯片中. CID 后面的数字代表的是索尼爱立信手机软件保护版本号,新的CID不断被使用,以用来防止手机被非索尼爱立信官方的维修程序拿来解锁/刷机/篡改 0 +(英)刑事调查局,香港警察的重案组 1 +Criminal Investigation Department 0 +佩枪: 1 +香港警察的CID(刑事侦缉队),各区重案组的探员装备短管点38左轮手枪,其特点是便于收藏,而且不容易卡壳,重量轻,其缺点是装弹量少,只有6发,而且换子弹较慢,威力也一般,如果碰上54式手枪或者M9手枪明显处于下风。 0 +香港警察的“刑事侦查”(Criminal Investigation Department)部门,早于1983年起已经不叫做C.I.D.的了,1983年香港警察队的重整架构,撤销了C.I.D. ( Criminal Investigation Dept.) “刑事侦缉处”,将“刑事侦查”部门归入去“行动处”内,是“行动处”内的一个分支部门,叫“刑事部”( Crime Wing )。 1 +再于90年代的一次警队重整架构,香港警队成立了新的「刑事及保安处」,再将“刑事侦查”部门归入目前的「刑事及保安处」的“处”级单位,是归入这个“处”下的一个部门,亦叫“刑事部” ( Crime Wing ),由一个助理警务处长(刑事)领导。 0 +但是时至今天,CID虽已经是一个老旧的名称,香港市民、甚至香港警察都是习惯性的沿用这个历史上的叫法 . 1 +CID格式是美国Adobe公司发表的最新字库格式,它具有易扩充、速度快、兼容性好、简便、灵活等特点,已成为国内开发中文字库的热点,也为用户使用字库提供质量更好,数量更多的字体。 0 +CID (Character identifier)就是字符识别码,在组成方式上分成CIDFont,CMap表两部分。 1 +CIDFont文件即总字符集,包括了一种特定语言中所有常用的字符,把这些字符排序,它们在总字符集中排列的次序号就是各个字符的CID标识码(Index);CMap(Character Map)表即字符映像文件,将字符的编码(Code)映像到字符的CID标识码(Index)。 0 +CID字库完全针对大字符集市场设计,其基本过程为:先根据Code,在CMap表查到Index,然后在CIDFont文件找到相应的字形数据。 1 +本条目记述台湾日治时期,各都市之本町。 0 +为台湾日治时期台北市之行政区,共分一~四丁目,在表町之西。 1 +以现在的位置来看,本町位于现台北市中正区的西北角,约位于忠孝西路一段往西至台北邮局东侧。 0 +再向南至开封街一段,沿此路线向西至开封街一段60号,顺60号到汉口街一段向东到现在华南银行总行附近画一条直线到衡阳路。 1 +再向东至重庆南路一段,由重庆南路一段回到原点这个范围内。 0 +另外,重庆南路一段在当时名为“本町通”。 1 +此地方自日治时期起,就是繁华的商业地区,当时也有三和银行、台北专卖分局、日本石油等重要商业机构。 0 +其中,专卖分局是战后二二八事件的主要起始点。 1 +台湾贮蓄银行(一丁目) 0 +三和银行(二丁目) 1 +专卖局台北分局(三丁目) 0 +日本石油(四丁目) 1 +为台湾日治时期台南市之行政区。 0 +范围包括清代旧街名枋桥头前、枋桥头后、鞋、草花、天公埕、竹仔、下大埕、帽仔、武馆、统领巷、大井头、内宫后、内南町。 1 +为清代台南城最繁华的区域。 0 +台南公会堂 1 +北极殿 0 +开基武庙 1 +町名改正 0 +这是一个与台湾相关的小作品。 1 +你可以通过编辑或修订扩充其内容。 0 +出版社: 上海社会科学院出版社; 第1版 (2006年5月1日) 1 +丛书名: 时代建筑视觉旅行丛书 0 +条形码: 9787806818640 1 +尺寸: 18 x 13.1 x 0.7 cm 0 +重量: 181 g 1 +漂浮在沙与海市蜃楼之上的金字塔曾经是否是你的一个梦。 0 +埃及,这片蕴蓄了5000年文明的土地,本书为你撩开它神秘的纱。 1 +诸神、金字塔、神庙、狮身人面像、法老、艳后吸引着我们的注意力;缠绵悱恻的象形文字、医学、雕刻等留给我们的文明,不断引发我们对古代文明的惊喜和赞叹。 0 +尼罗河畔的奇异之旅,数千年的古老文明,尽收在你的眼底…… 1 +本书集历史、文化、地理等知识于一体,并以优美、流畅文笔,简明扼要地阐述了埃及的地理环境、政治经济、历史沿革、文化艺术,以大量富有艺术感染力的彩色照片,生动形象地展示了埃及最具特色的名胜古迹、风土人情和自然风光。 0 +古埃及历史 1 +老挝人民军前身为老挝爱国战线领导的“寮国战斗部队”(即“巴特寮”),始建于1949年1月20日,1965年10月改名为老挝人民解放军,1982年7月改称现名。 0 +最高领导机构是中央国防和治安委员会,朱马里·赛雅颂任主席,隆再·皮吉任国防部长。 1 +实行义务兵役制,服役期最少18个月。[1] 0 +?老挝军队在老挝社会中有较好的地位和保障,工资待遇比地方政府工作人员略高。 1 + 武装部队总兵力约6万人,其中陆军约5万人,主力部队编为5个步兵师;空军2000多人;海军(内河巡逻部队)1000多人;部队机关院校5000人。[1] 0 +老挝人民军军旗 1 +1991年8月14日通过的《老挝人民民主共和国宪法》第11条规定:国家执行保卫国防和维护社会安宁的政策。 0 +全体公民和国防力量、治安力量必须发扬忠于祖国、忠于人民的精神,履行保卫革命成果、保卫人民生命财产及和平劳动的任务,积极参加国家建设事业。 1 +最高领导机构是中央国防和治安委员会。 0 +主席由老挝人民革命党中央委员会总书记兼任。 1 +老挝陆军成立最早,兵力最多,约有5万人。 0 +其中主力部队步兵师5个、7个独立团、30多个营、65个独立连。 1 +地方部队30余个营及县属部队。 0 +地面炮兵2个团,10多个营。 1 +高射炮兵1个团9个营。 0 +导弹部队2个营。 1 +装甲兵7个营。 0 +特工部队6个营。 1 +通讯部队9个营。 0 +工兵部队6个营。 1 +基建工程兵2个团13个营。 0 +运输部队7个营。 1 + 陆军的装备基本是中国和前苏联援助的装备和部分从抗美战争中缴获的美式装备。 0 +老挝内河部队总兵力约1700人,装备有内河船艇110多艘,编成4个艇队。 1 +有芒宽、巴能、纳坎、他曲、南盖、巴色等8个基地。 0 +空军于1975年8月组建,现有2个团、11个飞行大队,总兵力约2000人。 1 +装备有各种飞机140架,其中主要由前苏联提供和从万象政权的皇家空军手中接管。 0 +随着军队建设质量的提高,老挝人民军对外军事合作步伐也日益扩大,近年来先后与俄罗斯、印度、马来西亚、越南、菲律宾等国拓展了军事交流与合作的内容。 1 +2003年1月,印度决定向老挝援助一批军事装备和物资,并承诺提供技术帮助。 0 +2003年6月,老挝向俄罗斯订购了一批新式防空武器;2003年4月,老挝与越南签署了越南帮助老挝培训军事指挥干部和特种部队以及完成军队通信系统改造等多项协议。 1 +《焚心之城》[1] 为网络作家老子扛过枪创作的一部都市类小说,目前正在创世中文网连载中。 0 +乡下大男孩薛城,是一个不甘于生活现状的混混,他混过、爱过、也深深地被伤害过。 1 +本料此生当浑浑噩噩,拼搏街头。 0 +高考的成绩却给了他一点渺茫的希望,二月后,大学如期吹响了他进城的号角。 1 +繁华的都市,热血的人生,冷眼嘲笑中,他发誓再不做一个平常人! 0 +江北小城,黑河大地,他要行走过的每一个角落都有他的传说。 1 +扯出一面旗,拉一帮兄弟,做男人,就要多一份担当,活一口傲气。 0 +(日期截止到2014年10月23日凌晨) 1 +香港利丰集团前身是广州的华资贸易 (1906 - 1949) ,利丰是香港历史最悠久的出口贸易商号之一。 0 + 于1906年,冯柏燎先生和李道明先生在广州创立了利丰贸易公司;是当时中国第一家华资的对外贸易出口商。 1 +利丰于1906年创立,初时只从事瓷器及丝绸生意;一年之后,增添了其它的货品,包括竹器、藤器、玉石、象牙及其它手工艺品,包括烟花爆竹类别。 0 +在早期的对外贸易,中国南方内河港因水深不足不能行驶远洋船,反之香港港口水深岸阔,占尽地利。 1 +因此,在香港成立分公司的责任,落在冯柏燎先生的三子冯汉柱先生身上。 0 +1937年12月28日,利丰(1937)有限公司正式在香港创立。 1 +第二次世界大战期间,利丰暂停贸易业务。 0 +1943年,随着创办人冯柏燎先生去世后,业务移交给冯氏家族第二代。 1 +之后,向来不参与业务管理的合伙人李道明先生宣布退休,将所拥有的利丰股权全部卖给冯氏家族。 0 +目前由哈佛冯家两兄弟William Fung , Victor Fung和CEO Bruce Rockowitz 管理。 1 +截止到2012年,集团旗下有利亚﹝零售﹞有限公司、利和集团、利邦时装有限公司、利越时装有限公司、利丰贸易有限公司。 0 +利亚(零售)连锁,业务包括大家所熟悉的:OK便利店、玩具〝反〞斗城和圣安娜饼屋;范围包括香港、台湾、新加坡、马来西亚、至中国大陆及东南亚其它市场逾600多家店 1 +利和集团,IDS以专业物流服务为根基,为客户提供经销,物流,制造服务领域内的一系列服务项目。 0 +业务网络覆盖大中华区,东盟,美国及英国,经营着90多个经销中心,在中国设有18个经销公司,10,000家现代经销门店。 1 +利邦(上海)时装贸易有限公司为大中华区其中一家大型男士服装零售集团。 0 +现在在中国大陆、香港、台湾和澳门收购经营11个包括Cerruti 1881,Gieves & Hawkes,Kent & curwen和D’urban 等中档到高档的男士服装品牌,全国有超过350间门店设于各一线城市之高级商场及百货公司。 1 +利越(上海)服装商贸有限公司隶属于Branded Lifestyle,负责中国大陆地区LEO里奥(意大利)、GIBO捷宝(意大利)、UFFIZI古杰师(意大利)、OVVIO奥维路(意大利)、Roots绿适(加拿大,全球服装排名第四)品牌销售业务 0 +利丰(贸易)1995年收购了英之杰采购服务,1999年收购太古贸易有限公司(Swire & Maclain) 和金巴莉有限公司(Camberley),2000年和2002年分别收购香港采购出口集团Colby Group及Janco Oversea Limited,大大扩张了在美国及欧洲的顾客群,自2008年经济危机起一直到现在,收购多家欧、美、印、非等地区的时尚品牌,如英国品牌Visage,仅2011年上半年6个月就完成26个品牌的收购。 1 +2004年利丰与Levi Strauss & Co.签订特许经营协议 0 +2005年利丰伙拍Daymon Worldwide为全球供应私有品牌和特许品牌 1 +2006年收购Rossetti手袋业务及Oxford Womenswear Group 强化美国批发业务 0 +2007年收购Tommy Hilfiher全球采购业务,收购CGroup、Peter Black International LTD、Regetta USA LLC和American Marketing Enterprice 1 +2008年收购Kent&Curwen全球特许经营权,收购Van Zeeland,Inc和Miles Fashion Group 0 +2009年收购加拿大休闲品牌Roots ,收购Wear Me Appearl,LLC。 1 +与Hudson's Bay、Wolverine Worldwide Inc、Talbots、Liz Claiborne达成了采购协议 0 +2010年收购Oxford apparel Visage Group LTD 1 +2011年一月收购土耳其Modium、美国女性时尚Beyond Productions,三月收购贸易公司Celissa 、玩具公司Techno Source USA, Inc.、卡通品牌产品TVMania和法国著名时装一线品牌Cerruti 1881,五月收购Loyaltex Apparel Ltd.、女装Hampshire Designers和英国彩妆Collection 2000,六月收购家私贸易Exim Designs Co., Ltd.,七月收购家庭旅行产业Union Rich USA, LLC和设计公司Lloyd Textile Fashion Company Limited,八月收购童装Fishman & Tobin和Crimzon Rose,九月收购家私贸易True Innovations, LLC、日用品企业Midway Enterprises和Wonderful World。 0 +十二月与USPA – U.S. Polo Association签署授权协议。 1 +利丰的精神:积极进取,不断认识并争取有利于客户和自身进步的机会;以行动为主导,对客户、供应商及职工的需求作出快速的决定。 0 +利丰的最终目标:在产品采购、销售、流转的各环节建立全球性队伍提供多元化服务,利丰成员有效合作,共达目标。 1 +Trojan/PSW.Moshou.akt“魔兽”变种akt是“魔兽”木马家族的最新成员之一,采用Delphi 6.0-7.0编写,并经过加壳处理。 0 +“魔兽”变种akt运行后,自我复制到被感染计算机的指定目录下。 1 +修改注册表,实现木马开机自动运行。 0 +自我注入到被感染计算机的“explorer.exe”、“notepad.exe”等用户级权限的进程中加载运行,隐藏自我,防止被查杀。 1 +在后台秘密监视用户打开的窗口标题,盗取网络游戏《魔兽世界》玩家的游戏帐号、游戏密码、角色等级、装备信息、金钱数量等信息,并在后台将窃取到的玩家信息发送到骇客指定的远程服务器上,致使玩家游戏帐号、装备物品、金钱等丢失,给游戏玩家造成非常大的损失。 0 +丙种球蛋白预防传染性肝炎,预防麻疹等病毒性疾病感染,治疗先天性丙种球蛋白缺乏症 ,与抗生素合并使用,可提高对某些严重细菌性和病毒性疾病感染的疗效。 1 +中文简称:“丙球” 0 +英文名称:γ-globulin、gamma globulin 1 +【别名】 免疫血清球蛋白,普通免疫球蛋白,人血丙种球蛋白,丙种球蛋白,静脉注射用人免疫球蛋白(pH4) 0 +注:由于人血中的免疫球蛋白大多数为丙种球蛋白(γ-球蛋白),有时丙种球蛋白也被混称为“免疫球蛋白”(immunoglobulin) 。 1 +冻干制剂应为白色或灰白色的疏松体,液体制剂和冻干制剂溶解后,溶液应为接近无色或淡黄色的澄明液体,微带乳光。 0 +但不应含有异物或摇不散的沉淀。 1 +注射丙种球蛋白是一种被动免疫疗法。 0 +它是把免疫球蛋白内含有的大量抗体输给受者,使之从低或无免疫状态很快达到暂时免疫保护状态。 1 +由于抗体与抗原相互作用起到直接中和毒素与杀死细菌和病毒。 0 +因此免疫球蛋白制品对预防细菌、病毒性感染有一定的作用[1]。 1 +人免疫球蛋白的生物半衰期为16~24天。 0 +1、丙种球蛋白[2]含有健康人群血清所具有的各种抗体,因而有增强机体抵抗力以预防感染的作用。 1 +2、主要治疗先天性丙种球蛋白缺乏症和免疫缺陷病 0 +3、预防传染性肝炎,如甲型肝炎和乙型肝炎等。 1 +4、用于麻疹、水痘、腮腺炎、带状疱疹等病毒感染和细菌感染的防治 0 +5、也可用于哮喘、过敏性鼻炎、湿疹等内源性过敏性疾病。 1 +6、与抗生素合并使用,可提高对某些严重细菌性和病毒性疾病感染的疗效。 0 +7、川崎病,又称皮肤粘膜淋巴结综合征,常见于儿童,丙种球蛋白是主要的治疗药物。 1 +1、对免疫球蛋白过敏或有其他严重过敏史者。 0 +2、有IgA抗体的选择性IgA缺乏者。 1 +3、发烧患者禁用或慎用。 0 +(1997年9月1日浙江省第八届人民代表大会常务委员会第三十九次会议通过 1997年9月9日浙江省第八届人民代表大会常务委员会公告第六十九号公布自公布之日起施行) 1 +为了保护人的生命和健康,发扬人道主义精神,促进社会发展与和平进步事业,根据《中华人民共和国红十字会法》,结合本省实际,制定本办法。 0 +本省县级以上按行政区域建立的红十字会,是中国红十字会的地方组织,是从事人道主义工作的社会救助团体,依法取得社会团体法人资格,设置工作机构,配备专职工作人员,依照《中国红十字会章程》独立自主地开展工作。 1 +全省性行业根据需要可以建立行业红十字会,配备专职或兼职工作人员。 0 +街道、乡(镇)、机关、团体、学校、企业、事业单位根据需要,可以依照《中国红十字会章程》建立红十字会的基层组织。 1 +上级红十字会指导下级红十字会的工作。 0 +县级以上地方红十字会指导所在行政区域行业红十字会和基层红十字会的工作。 1 +人民政府对红十字会给予支持和资助,保障红十字会依法履行职责,并对其活动进行监督;红十字会协助人民政府开展与其职责有关的活动。 0 +全社会都应当关心和支持红十字事业。 1 +本省公民和单位承认《中国红十字会章程》并缴纳会费的,可以自愿参加红十字会,成为红十字会的个人会员或团体会员。 0 +个人会员由本人申请,基层红十字会批准,发给会员证;团体会员由单位申请,县级以上红十字会批准,发给团体会员证。 1 +个人会员和团体会员应当遵守《中华人民共和国红十字会法》和《中国红十字会章程》,热心红十字事业,履行会员的义务,并享有会员的权利。 0 +县级以上红十字会理事会由会员代表大会民主选举产生。 1 +理事会民主选举产生会长和副会长;根据会长提名,决定秘书长、副秘书长人选。 0 +县级以上红十字会可以设名誉会长、名誉副会长和名誉理事,由同级红十字会理事会聘请。 1 +省、市(地)红十字会根据独立、平等、互相尊重的原则,发展同境外、国外地方红十字会和红新月会的友好往来和合作关系。 0 +红十字会履行下列职责: 1 +(一)宣传、贯彻《中华人民共和国红十字会法》和本办法; 0 +(二)开展救灾的准备工作,筹措救灾款物;在自然灾害和突发事件中,对伤病人员和其他受害者进行救助; 1 +(三)普及卫生救护和防病知识,进行初级卫生救护培训,对交通、电力、建筑、矿山等容易发生意外伤害的单位进行现场救护培训; 0 +(四)组织群众参加现场救护; 1 +(五)参与输血献血工作,推动无偿献血; 0 +(六)开展红十字青少年活动; 1 +(七)根据中国红十字会总会部署,参加国际人道主义救援工作; 0 +(八)依照国际红十字和红新月运动的基本原则,完成同级人民政府和上级红十字会委托的有关事宜; 1 +(九)《中华人民共和国红十宇会法》和《中国红十字会章程》规定的其他职责。 0 +第八条 红十字会经费的主要来源: 1 +(一)红十字会会员缴纳的会费; 0 +(二)接受国内外组织和个人捐赠的款物; 1 +(三)红十字会的动产、不动产以及兴办社会福利事业和经济实体的收入; 0 +建发·宝湖庭院位于银川市金凤区核心地带—正源南街与长城中路交汇处向东500米。 1 +项目已于2012年4月开工建设,总占地约4.2万平方米,总建筑面积约11.2万平方米,容积率2.14,绿化率35%,预计可入住630户。 0 +“建发·宝湖庭院”是银川建发集团股份有限公司继“建发·宝湖湾”之后,在宝湖湖区的又一力作。 1 +项目周边发展成熟,东有唐徕渠景观水道,西临银川市交通主干道正源街;南侧与宝湖湿地公园遥相呼应。 0 +“宝湖庭院”项目公共交通资源丰富:15路、21路、35路、38路、43路公交车贯穿银川市各地,出行便利。 1 +距离新百良田购物广场约1公里,工人疗养院600米,宝湖公园1公里,唐徕渠景观水道500米。 0 +项目位置优越,购物、餐饮、医疗、交通、休闲等生活资源丰富。[1] 1 +建发·宝湖庭院建筑及景观设置传承建发一贯“简约、大气”的风格:搂间距宽广,确保每一座楼宇视野开阔通透。 0 +楼宇位置错落有置,外立面设计大气沉稳别致。 1 +项目内部休闲绿地、景观小品点缀其中,道路及停车系统设计合理,停车及通行条件便利。 0 +社区会所、幼儿园、活动室、医疗服务中心等生活配套一应俱全。 1 +行政区域:金凤区 0 +大月兔是荷兰“大黄鸭”之父弗洛伦泰因·霍夫曼打造的大型装置艺术作品,该作品首次亮相于台湾桃园大园乡海军基地,为了迎接中秋节的到来;在展览期间,海军基地也首次对外开放。 1 +霍夫曼觉得中国神话中捣杵的玉兔很有想象力,于是特别创作了“月兔”,这也是“月兔”新作第一次展出。[1] 0 +?2014年9月15日因工人施工不慎,遭火烧毁。[2] 1 +“大月兔”外表采用的杜邦防水纸、会随风飘动,内部以木材加保丽龙框架支撑做成。 0 +兔毛用防水纸做成,材质完全防水,不怕日晒雨淋。[3 1 +-4] 0 +25米的“月兔”倚靠在机 1 +堡上望着天空,像在思考又像赏月。 0 +月兔斜躺在机堡上,意在思考生命、边做白日梦,编织自己的故事。[3] 1 +台湾桃园大园乡海军基地也首度对外开放。 0 +428公顷的海军基地中,地景艺术节使用约40公顷,展场包括过去军机机堡、跑道等,由于这处基地过去警备森严,不对外开放,这次结合地景艺术展出,也可一窥过去是黑猫中队基地的神秘面纱。 1 +2014年9月2日,桃园县政府文化局举行“踩线团”,让 0 +大月兔 1 +各项地景艺术作品呈现在媒体眼中,虽然“月兔”仍在进行最后的细节赶工,但横躺在机堡上的“月兔”雏形已经完工。[5] 0 +“这么大”、“好可爱呦”是不少踩线团成员对“月兔”的直觉;尤其在蓝天的衬托及前方绿草的组合下,呈现犹如真实版的爱丽丝梦游仙境。[6] 1 +霍夫曼的作品大月兔,“从平凡中,创作出不平凡的视觉”,创造出观赏者打从心中油然而生的幸福感,拉近观赏者的距离。[6] 0 +2014年9月15日早 1 +上,施工人员要将月兔拆解,搬离海军基地草皮时,疑施工拆除的卡车,在拆除过程,故障起火,起火的卡车不慎延烧到兔子,造成兔子起火燃烧,消防队员即刻抢救,白色的大月兔立即变成焦黑的火烧兔。[7] 0 +桃园县府表示相当遗憾及难过,也不排除向包商求偿,也已将此事告知霍夫曼。[2] 1 +?[8] 0 +弗洛伦泰因·霍夫曼,荷兰艺术家,以在公共空间创作巨大造型 1 +物的艺术项目见长。 0 +代表作品包括“胖猴子”(2010年在巴西圣保罗展出)、“大黄兔”(2011年在瑞典厄勒布鲁展出)、粉红猫(2014年5月在上海亮相)、大黄鸭(Rubber Duck)、月兔等。 1 +英国耆卫保险公司(Old Mutual plc)成立于1845年,一直在伦敦证券交易所(伦敦证券交易所:OML)作第一上市,也是全球排名第32位(按营业收入排名)的保险公司(人寿/健康)。 0 +公司是全球财富500强公司之一,也是被列入英国金融时报100指数的金融服务集团之一。 1 +Old Mutual 是一家国际金融服务公司,拥有近320万个保险客户,240万个银行储户,270,000个短期保险客户以及700,000个信托客户 0 +英国耆卫保险公司(Old Mutual)是一家国际金融服务公司,总部设在伦敦,主要为全球客户提供长期储蓄的解决方案、资产管理、短期保险和金融服务等,目前业务遍及全球34个国家。[1] 1 +主要包括人寿保险,资产管理,银行等。 0 +1845年,Old Mutual在好望角成立。 1 +1870年,董事长Charles Bell设计了Old Mutual公司的标记。 0 +1910年,南非从英联邦独立出来。 1 +Old Mutual的董事长John X. Merriman被选为国家总理。 0 +1927年,Old Mutual在Harare成立它的第一个事务所。 1 +1960年,Old Mutual在南非成立了Mutual Unit信托公司,用来管理公司的信托业务。 0 +1970年,Old Mutual的收入超过100百万R。 1 +1980年,Old Mutual成为南非第一大人寿保险公司,年收入达10亿R。 0 +1991年,Old Mutual在美国财富周刊上评选的全球保险公司中名列第38位。 1 +1995年,Old Mutual在美国波士顿建立投资顾问公司,同年、又在香港和Guernsey建立事务所。 0 +作为一项加强与其母公司联系的举措,OMNIA公司(百慕大)荣幸的更名为Old Mutual 公司(百慕大) 。 1 +这一新的名称和企业识别清晰地展示出公司成为其世界金融机构合作伙伴强有力支持的决心。 0 +2003 年4月,该公司被Old Mutual plc公司收购,更名为Sage Life(百慕大)公司并闻名于世,公司为Old Mutual公司提供了一个新的销售渠道,补充了其现有的以美元计价的产品线和分销系统。 1 +达到了一个重要里程碑是公司成功的一个例证: 2005年6月3日公司资产超过10亿美元成为公司的一个主要里程碑,也是公司成功的一个例证。 0 +Old Mutual (百慕大)为客户提供一系列的投资产品。 1 +在其开放的结构下,客户除了能够参与由Old Mutual会员管理的方案外,还能够参与由一些世界顶尖投资机构提供的投资选择。 0 +首席执行官John Clifford对此发表评论说:“过去的两年对于Old Mutual家族来说是稳固发展的两年,更名是迫在眉睫的事情。 1 +通过采用其名字和形象上的相似,Old Mutual (百慕大)进一步强化了与母公司的联系。” 0 + Clifford补充道:“我相信Old Mutual全球品牌认可度和Old Mutual(百慕大)产品专业知识的结合将在未来的日子里进一步推动公司的成功。” 1 +随着公司更名而来的是公司网站的全新改版,设计投资选择信息、陈述、销售方案、营销材料和公告板块。 0 +在美国购买不到OMNIA投资产品,该产品也不向美国公民或居民以及百慕大居民提供。 1 +这些产品不对任何要约未得到批准的区域中的任何人,以及进行此要约或询价为非法行为的个人构成要约或询价。 0 +关于Old Mutual(百慕大)公司 1 +Old Mutual(百慕大)公司总部位于百慕大,公司面向非美国居民及公民以及非百慕大居民,通过遍布世界的各个市场的金融机构开发和销售保险和投资方案。 0 +这些方案由Old Mutual(百慕大)公司直接做出,向投资者提供各种投资选择和战略,同时提供死亡和其他受益保证。 1 +尼日利亚足球队守门员恩耶马被封淡定哥,原因是2010年南非世界杯上1:2落后希腊队时,对方前锋已经突破到禁区,其仍头依门柱发呆,其从容淡定令人吃惊。 0 +淡定哥 1 +在2010年6月17日的世界杯赛场上,尼日利亚1比2不敌希腊队,但尼日利亚门将恩耶马(英文名:Vincent Enyeama)在赛场上的“淡定”表现令人惊奇。 0 +随后,网友将赛场照片发布于各大论坛,恩耶马迅速窜红,并被网友称为“淡定哥”。 1 +淡定哥 0 +从网友上传得照片中可以看到,“淡定哥”在面临对方前锋突袭至小禁区之时,还靠在球门柱上发呆,其“淡定”程度的确非一般人所能及。 1 +恩耶马是尼日利亚国家队的主力守门员,目前效力于以色列的特拉维夫哈普尔队。 0 +1999年,恩耶马在尼日利亚国内的伊波姆星队开始职业生涯,后辗转恩伊姆巴、Iwuanyanwu民族等队,从07年开始,他为特拉维夫效力。 1 +恩耶马的尼日利亚国脚生涯始于2002年,截至2010年1月底,他为国家队出场已超过50次。 0 +当地时间2011年1月4日,国际足球历史与统计协会(IFFHS)公布了2010年度世界最佳门将,恩耶马(尼日利亚,特拉维夫夏普尔)10票排第十一 1 +此词经国家语言资源监测与研究中心等机构专家审定入选2010年年度新词语,并收录到《中国语言生活状况报告》中。 0 +提示性释义:对遇事从容镇定、处变不惊的男性的戏称。 1 +例句:上海现“淡定哥”:百米外爆炸他仍专注垂钓(2010年10月20日腾讯网http://news.qq.com/a/20101020/000646.htm) 0 +2011年度新人物 1 +1、淡定哥(北京) 0 +7月24日傍晚,北京市出现大范围降雨天气,位于通州北苑路出现积水,公交车也难逃被淹。 1 +李欣摄图片来源:新华网一辆私家车深陷积水,车主索性盘坐在自己的汽车上抽烟等待救援。 0 +私家车主索性盘坐在自己的车上抽烟等待救援,被网友称“淡定哥” 1 +2、淡定哥——林峰 0 +在2011年7月23日的动车追尾事故中,绍兴人杨峰(@杨峰特快)在事故中失去了5位亲人:怀孕7个月的妻子、未出世的孩子、岳母、妻姐和外甥女,他的岳父也在事故中受伤正在治疗。 1 +他披麻戴孝出现在事故现场,要求将家人的死因弄个明白。 0 +但在第一轮谈判过后,表示:“请原谅我,如果我再坚持,我将失去我最后的第六个亲人。” 1 +如果他继续“纠缠”铁道部,他治疗中的岳父将会“被死亡”。 0 +很多博友就此批评杨峰,并讽刺其为“淡定哥”。 1 +071型船坞登陆舰(英语:Type 071 Amphibious Transport Dock,北约代号:Yuzhao-class,中文:玉昭级,或以首舰昆仑山号称之为昆仑山级船坞登陆舰),是中国人民解放军海军隶下的大型多功能两栖船坞登陆舰,可作为登陆艇的母舰,用以运送士兵、步兵战车、主战坦克等展开登陆作战,也可搭载两栖车辆,具备大型直升机起降甲板及操作设施。 0 + 071型两栖登陆舰是中国首次建造的万吨级作战舰艇,亦为中国大型多功能两栖舰船的开山之作,也可以说是中国万吨级以上大型作战舰艇的试验之作,该舰的建造使中国海军的两栖舰船实力有了质的提升。 1 +在本世纪以前中国海军原有的两栖舰队以一 0 +早期071模型 1 +千至四千吨级登陆舰为主要骨干,这些舰艇吨位小、筹载量有限,直升机操作能力非常欠缺,舰上自卫武装普遍老旧,对于现代化两栖登陆作战可说有很多不足。 0 +为了应对新时期的国际国内形势,中国在本世纪初期紧急强化两栖作战能力,包括短时间内密集建造072、074系列登陆舰,同时也首度设计一种新型船坞登陆舰,型号为071。[1] 1 +在两栖作战行动中,这些舰只不得不采取最危险的 0 +舾装中的昆仑山号 1 +敌前登陆方式实施两栖作战行动,必须与敌人预定阻击力量进行面对面的战斗,在台湾地区或者亚洲其他国家的沿海,几乎没有可用而不设防的海滩登陆地带,并且各国或者地区的陆军在战时,可能会很快控制这些易于登陆的海难和港口,这样就限制住了中国海军两栖登陆部队的实际登陆作战能力。 0 +071型登陆舰正是为了更快和更多样化的登陆作战而开发的新型登陆舰艇。[2] 1 +071型两栖船坞登陆舰具有十分良好的整体隐身能力, 0 +071型概念图 1 +该舰外部线条简洁干练,而且舰体外形下部外倾、上部带有一定角度的内倾,从而形成雷达隐身性能良好的菱形横剖面。 0 +舰体为高干舷平甲板型,长宽比较小,舰身宽满,采用大飞剪型舰首及楔形舰尾,舰的上层建筑位于舰体中间部位,后部是大型直升机甲板,适航性能非常突出。 1 +顶甲板上各类电子设备和武器系统布局十分简洁干净,各系统的突出物很少。 0 +该舰的两座烟囱实行左右分布式设置在舰体两侧,既考虑了隐身特点,也十分新颖。[3] 1 +1号甲板及上层建筑物主要设置有指挥室、控 0 +舰尾俯视 1 +制舱、医疗救护舱及一些居住舱,其中医疗救护舱设置有完备的战场救护设施,可以在舰上为伤病员提供紧急手术和野战救护能力。 0 +2号甲板主要是舰员和部分登陆人员的居住舱、办公室及厨房。 1 +主甲板以下则是登陆舱,分前后两段,前段是装甲车辆储存舱,共两层,可以储存登陆装甲车辆和一些其它物资,在进出口处还设有一小型升降机,用于两层之间的移动装卸用。 0 +前段车辆储存舱外壁左右各设有一折叠式装载舱门,所有装载车辆在码头可通过该门直接装载或者登陆上岸。 1 +后段是一个巨型船坞登陆舱,总长约70米,主要用来停泊大小型气垫登陆艇、机械登陆艇或车辆人员登陆艇。[4] 0 +自卫武装方面,舰艏设有一门PJ-26型76mm舰炮( 1 +井冈山号舰首主炮 0 +俄罗斯AK-176M的中国仿制版,亦被054A采用) , 四具与052B/C相同的726-4 18联装干扰弹发射器分置于舰首两侧以及上层结构两侧,近迫防御则依赖四座布置于上层结构的AK-630 30mm防空机炮 。 1 +原本071模型的舰桥前方设有一座八联装海红-7短程防空导弹发射器,不过071首舰直到出海试航与2009年4月下旬的海上阅兵式中,都未装上此一武器。 0 +电子装备方面, 舰桥后方主桅杆顶配置一具363S型E/F频2D对空/平面搜索雷达 、一具Racal Decca RM-1290 I频导航雷达,后桅杆顶装备一具拥有球型外罩的364型(SR-64)X频2D对空/对海搜索雷达,此外还有一具LR-66C舰炮射控雷达、一具负责导引AK-630机炮的TR-47C型火炮射控雷达等。[5] 1 +071型自卫武装布置 0 +071首舰昆仑山号于2006年6月开 1 +竹溪县人大常委会办公室:承担人民代表大会会议、常委会会议、主任会议和常委会党组会议(简称“四会”)的筹备和服务工作。 0 +负责常委会组成人员视察活动的联系服务工作。 1 +受主任会议委托,拟定有关议案草案。 0 +承担常委会人事任免的具体工作,负责机关人事管理和离退休干部的管理与服务。 1 +承担县人大机关的行政事务和后勤保障工作,负责机关的安全保卫、文电处理、档案、保密、文印工作。 0 +承担县人大常委会同市人大常委会及乡镇人大的工作联系。 1 +负责信息反馈工作。 0 +了解宪法、法律、法规和本级人大及其常委会的决议、决定实施情况及常委会成员提出建议办理情况,及时向常委会和主任会议报告。 1 +承担人大宣传工作,负责人大常委会会议宣传的组织和联系。 0 +组织协调各专门工作委员会开展工作。 1 +承办上级交办的其他工作。 0 +办公室下设五个科,即秘书科、调研科、人事任免科、综合科、老干部科。 1 +教科文卫工作委员会:负责人大教科文卫工作的日常联系、督办、信息收集反馈和业务指导工作。 0 +负责教科文卫方面法律法规贯彻和人大工作情况的宣传、调研工作。 1 +承担人大常委会教科文卫方面会议议题调查的组织联系和调研材料的起草工作。 0 +承担教科文卫方面规范性备案文件的初审工作,侧重对教科文卫行政执法个案监督业务承办工作。 1 +负责常委会组成人员和人大代表对教科文卫工作方面检查、视察的组织联系工作。 0 +承办上级交办的其他工作。 1 +代表工作委员会:负责与县人大代表和上级人大代表的联系、情况收集交流工作。 0 +负责《代表法》的宣传贯彻和贯彻实施情况的调查研究工作。 1 +负责县人大代表法律法规和人民代表大会制度知识学习的组织和指导工作。 0 +负责常委会主任、副主任和委员走访联系人大代表的组织、联系工作。 1 +负责组织人大系统的干部培训。 0 +负责乡镇人大主席团工作的联系和指导。 1 +负责人大代表建议、批评和意见办理工作的联系和督办落实。 0 +负责人大代表开展活动的组织、联系工作。 1 +承办上级交办的其他工作。 0 +财政经济工作委员会:负责人大财政经济工作的日常联系、督办、信息收集反馈和业务指导工作。 1 +负责财政经济方面法律法规贯彻和人大工作情况的宣传、调研工作。 0 +对国民经济计划和财政预算编制情况进行初审。 1 +武汉,简称“汉”,湖北省省会。 0 +它是武昌、汉口、汉阳三镇统称。 1 +世界第三大河长江及其最长支流汉江横贯市区,将武汉一分为三,形成武昌、汉口、汉阳,三镇跨江鼎立的格局。 0 +唐朝诗人李白在此写下“黄鹤楼中吹玉笛,江城五月落梅花”,因此武汉自古又称“江城”。 1 +武汉是中国15个副省级城市之一,全国七大中心城市之一,全市常住人口858万人。 0 +华中地区最大都市,华中金融中心、交通中心、文化中心,长江中下游特大城市。 1 +武汉城市圈的中心城市。 0 +[3]武昌、汉口、汉阳三地被俗称武汉三镇。 1 +武汉西与仙桃市、洪湖市相接,东与鄂州市、黄石市接壤,南与咸宁市相连,北与孝感市相接,形似一只自西向东的蝴蝶形状。 0 +在中国经济地理圈内,武汉处于优越的中心位置是中国地理上的“心脏”,故被称为“九省通衢”之地。 1 +武汉市历史悠久,古有夏汭、鄂渚之名。 0 +武汉地区考古发现的历史可以上溯距今6000年的新石器时代,其考古发现有东湖放鹰台遗址的含有稻壳的红烧土、石斧、石锛以及鱼叉。 1 +市郊黄陂区境内的盘龙城遗址是距今约3500年前的商朝方国宫城,是迄今中国发现及保存最完整的商代古城之一。 0 +现代武汉的城市起源,是东汉末年的位于今汉阳的卻月城、鲁山城,和在今武昌蛇山的夏口城。 1 +东汉末年,地方军阀刘表派黄祖为江夏太守,将郡治设在位于今汉阳龟山的卻月城中。 0 +卻月城是武汉市区内已知的最早城堡。 1 +223年,东吴孙权在武昌蛇山修筑夏口城,同时在城内的黄鹄矶上修筑了一座瞭望塔——黄鹤楼。 0 +苏轼在《前赤壁赋》中说的“西望夏口,东望武昌”中的夏口就是指武汉(而当时的武昌则是今天的鄂州)。 1 +南朝时,夏口扩建为郢州,成为郢州的治所。 0 +隋置江夏县和汉阳县,分别以武昌,汉阳为治所。 1 +唐时江夏和汉阳分别升为鄂州和沔州的州治,成为长江沿岸的商业重镇。 0 +江城之称亦始于隋唐。 1 +两宋时武昌属鄂州,汉阳汉口属汉阳郡。 0 +经过发掘,武汉出土了大量唐朝墓葬,在武昌马房山和岳家咀出土了灰陶四神砖以及灰陶十二生肖俑等。 1 +宋代武汉的制瓷业发达。 0 +在市郊江夏区梁子湖旁发现了宋代瓷窑群100多座,烧制的瓷器品种很多,釉色以青白瓷为主。 1 +南宋诗人陆游在经过武昌时,写下“市邑雄富,列肆繁错,城外南市亦数里,虽钱塘、建康不能过,隐然一大都会也”来描写武昌的繁华。 0 +南宋抗金将领岳飞驻防鄂州(今武昌)8年,在此兴师北伐。 1 +元世祖至元十八年(1281年),武昌成为湖广行省的省治。 0 +这是武汉第一次成为一级行政单位(相当于现代的省一级)的治所。 1 +列夫·达维多维奇,托洛茨基是联共(布)党内和第三国际时期反对派的领导人,托派"第四国际"的创始人和领导人。 0 +列夫·达维多维奇·托洛茨基 1 +列夫·达维多维奇·托洛茨基(俄国与国际历史上最重要的无产阶级革命家之一,二十世纪国际共产主义运动中最具争议的、也是备受污蔑的左翼反对派领袖,他以对古典马克思主义“不断革命论”的独创性发展闻名于世,第三共产国际和第四国际的主要缔造者之一(第三国际前三次代表大会的宣言执笔人)。 0 +在1905年俄国革命中被工人群众推举为彼得堡苏维埃主席(而当时布尔什维克多数干部却还在讨论是否支持苏维埃,这些干部后来被赶回俄国的列宁痛击)。 1 +1917年革命托洛茨基率领“区联派”与列宁派联合,并再次被工人推举为彼得格勒苏维埃主席。 0 +对于十月革命这场20世纪最重大的社会革命,托洛茨基赢得了不朽的历史地位。 1 +后来成了托洛茨基死敌的斯大林,当时作为革命组织领导者之一却写道:“起义的一切实际组织工作是在彼得格勒苏维埃主席托洛茨基同志直接指挥之下完成的。 0 +我们可以确切地说,卫戍部队之迅速站在苏维埃方面来,革命军事委员会的工作之所以搞得这样好,党认为这首先要归功于托洛茨基同志。” 1 +(值得一提的是,若干年后,当反托成为政治需要时,此类评价都从斯大林文章中删掉了。 0 +)甚至连后来狂热的斯大林派雅克·沙杜尔,当时却也写道:“托洛茨基在十月起义中居支配地位,是起义的钢铁灵魂。” 1 +(苏汉诺夫《革命札记》第6卷P76。 0 +)不仅在起义中,而且在无产阶级政权的捍卫、巩固方面和国际共产主义革命方面,托洛茨基也作出了极其卓越的贡献(外交官-苏联国际革命政策的负责人、苏联红军缔造者以及共产国际缔造者)。 1 +革命后若干年里,托洛茨基与列宁的画像时常双双并列挂在一起;十月革命之后到列宁病逝之前,布尔什维克历次全国代表大会上,代表大会发言结束均高呼口号:“我们的领袖列宁和托洛茨基万岁!” 0 +在欧美共运中托洛茨基的威望非常高。 1 +后人常常认为托洛茨基只是一个知识分子文人,实际上他文武双全,而且谙熟军事指挥艺术,并且亲临战场。 0 +正是他作为十月革命的最高军事领袖(在十月革命期间他与士兵一起在战壕里作战),并且在1918年缔造并指挥苏联红军,是一个杰出的军事家(列宁曾对朋友说,除了托洛茨基,谁还能给我迅速地造成一支上百万人的强大军队? 1 +)。 0 +在内战期间,他甚至坐装甲列车冒着枪林弹雨亲临战场指挥作战,差点挨炸死;当反革命军队进攻彼得堡时,当时的彼得堡领导人季诺维也夫吓得半死,托洛茨基却从容不迫指挥作战。 1 +同时托洛茨基又是一个高明的外交家,他曾强硬地要求英国政府释放因反战宣传被囚禁在英国的俄国流亡革命者,否则就不许英国公民离开俄国,连英国政府方面都觉得此举无懈可击;他并且把居高临下的法国到访者当场轰出他的办公室(革命前法国一直是俄国的头号债主与政治操纵者),却彬彬有礼地欢迎前来缓和冲突的法国大使;而在十月革命前夕,他对工人代表议会质询的答复既保守了即将起义的军事秘密,又鼓舞了革命者的战斗意志,同时严格遵循现代民主与公开原则,这些政治答复被波兰人多伊彻誉为“外交辞令的杰作”(伊·多伊彻的托氏传记<先知三部曲·武装的先知>第九章P335,第十一章P390)。 0 +托洛茨基在国民经济管理与研究工作中颇有创造:是苏俄新经济政策的首先提议者以及社会主义计划经济的首先实践者。 1 +1928年斯大林迟迟开始的计划经济实验,是对1923年以托洛茨基为首的左翼反对派经济纲领的拙劣剽窃和粗暴翻版。 0 +因为统治者的政策迟到,使得新经济政策到1928年已产生了一个威胁政权生存的农村资产阶级,而苏俄工人阶级国家不得不强力解决——而且是不得不借助已蜕化为官僚集团的强力来解决冲突——结果导致了1929年到30年代初的大饥荒和对农民的大量冤枉错杀。 1 +另外,他还对文学理论有很高的造诣,其著作<文学与革命>甚至影响了整整一代的国际左翼知识分子(包括中国的鲁迅、王实味等人)。 0 +他在哈佛大学图书馆留下了100多卷的<托洛茨基全集>,其生动而真诚的自传和大量私人日记、信件,给人留下了研究人类生活各个方面的宝贵财富,更是追求社会进步与解放的历史道路上的重要知识库之一。 1 +托洛茨基1879年10月26日生于乌克兰赫尔松县富裕农民家庭,祖籍是犹太人。 0 +原姓布隆施泰因。 1 +1896年开始参加工人运动。 0 +1897年 ,参加建立南俄工人协会 ,反对沙皇专制制度。 1 +1898年 在尼古拉也夫组织工人团体,被流放至西伯利亚。 0 +1902年秋以署名托洛茨基之假护照逃到伦敦,参加V.I.列宁、G.V.普列汉诺夫等人主编的<火星报>的工作。 1 +洞庭湖大桥,位于洞庭湖与长江交汇处,东接岳阳市区洞庭大道和107国道、京珠高速公路,西连省道306线,是国内目前最长的内河公路桥。 0 +路桥全长10173.82m,其中桥长5747.82m,桥宽20m,西双向四车道,是我国第一座三塔双索面斜拉大桥,亚洲首座不等高三塔双斜索面预应力混凝土漂浮体系斜拉桥。 1 +洞庭湖大桥是我国最长的内河公路桥,大桥横跨东洞庭湖区,全长10174.2米,主桥梁长5747.8米。 0 +大桥的通车使湘、鄂间公路干线大为畅通,并为洞庭湖区运输抗洪抢险物资提供了一条快速通道该桥设计先进,新颖,造型美观,各项技求指标先进,且为首次在国内特大型桥梁中采用主塔斜拉桥结构体系。 1 +洞庭湖大桥是湖区人民的造福桥,装点湘北门户的形象桥,对优化交通网络绪构,发展区域经济,保障防汛救灾,缩短鄂、豫、陕等省、市西部车辆南下的运距,拓展岳阳城区的主骨架,提升岳阳城市品位,增强城市辐射力,有着十分重要的意义。 0 +自1996年12月开工以来,共有10支施工队伍和两支监理队伍参与了大桥的建设。 1 +主桥桥面高52米(黄海),设计通航等级Ⅲ级。 0 +主桥桥型为不等高三塔、双索面空间索、全飘浮体系的预应力钢筋混凝土肋板梁式结构的斜拉桥,跨径为130+310+310+130米。 1 +索塔为双室宝石型断面,中塔高为125.684米,两边塔高为99.311米。 0 +三塔基础为3米和3.2米大直径钻孔灌注桩。 1 +引桥为连续梁桥,跨径20至50米,基础直径为1.8和2.5米钻孔灌注桩。 0 +该桥设计先进、新颖、造型美观,各项技求指标先进,且为首次在国内特大型桥梁中采用主塔斜拉桥结构体系,岳阳洞庭湖大桥是我国首次采用不等高三塔斜拉桥桥型的特大桥,设计先进,施工难度大位居亚洲之首,是湖南省桥梁界的一大科研项目。 1 +洞庭湖大桥设计为三塔斜拉桥,空间双斜面索,主梁采用前支点挂篮施工,并按各种工况模拟挂篮受力进行现场试验,获得了大量有关挂篮受力性能和实际刚度的计算参数,作为施工控制参数。 0 +利用组合式模型单元,推导了斜拉桥分离式双肋平板主梁的单元刚度矩阵,并进行了岳阳洞庭湖大桥的空间受力分析,结果表明此种单元精度满足工程要求,同时在施工工艺方面也积累了成功经验。 1 +洞庭湖大桥的通车使湘、鄂间公路干线大为畅通,并为洞庭湖区抗洪抢险物资运输提供了一条快速通道。 0 +湖大桥设计先进,造型美丽,科技含量高。 1 +洞庭大桥还是一道美丽的风景线,大桥沿岸风景与岳阳楼,君山岛、洞庭湖等风景名胜融为一体,交相辉映,成为世人了解岳阳的又一崭新窗口,也具有特别旅游资源。 0 +洞庭湖大桥多塔斜拉桥新技术研究荣获国家科学技术进步二等奖、湖南省科学技术进步一等奖,并获第五届詹天佑大奖。 1 +大桥在中国土木工程学会2004年第16届年会上入选首届《中国十佳桥梁》,名列斜拉桥第二位。 0 +2001年荣获湖南省建设厅优秀设计一等奖,省优秀勘察一等奖。 1 +2003年荣获国家优秀工程设计金奖, "十佳学术活动"奖。 0 +芝加哥天气预报员大卫(尼古拉斯·凯奇),被他的粉丝们热爱,也被诅咒--这些人在天气不好的时候会迁怒于他,而大部分时候,大卫都是在预报坏天气。 1 +?不过,这也没什么,当一家国家早间新闻节目叫他去面试的时候,大卫的事业似乎又将再创新高。 0 +芝加哥天气预报员大卫(尼古拉斯·凯奇),被他的粉丝们热爱,也被诅咒--这些人在天气不好的时候会迁怒于他,而大部分时候,大卫都是在预报坏天气。 1 +不过,这也没什么,当一家国家早间新闻节目叫他去面试的时候,大卫的事业似乎又将再创新高。 0 +在电视节目上,大卫永远微笑,自信而光鲜,就像每一个成功的电视人一样,说起收入,他也绝对不落人后。 1 +不过,大卫的个人生活可就不那么如意了。 0 +与妻子劳伦(霍普·戴维斯)的离婚一直让他痛苦;儿子迈克吸大麻上瘾,正在进行戒毒,可戒毒顾问却对迈克有着异样的感情;女儿雪莉则体重惊人,总是愁眉苦脸、孤独寂寞;大卫的父亲罗伯特(迈克尔·凯恩),一个世界著名的小说家,虽然罗伯特不想再让大卫觉得负担过重,可正是他的名声让大卫的一生都仿佛处在他的阴影之下,更何况,罗伯特就快重病死了。 1 +和妻子的离婚、父亲的疾病、和孩子之间完全不和谐的关系,都让大卫每天头疼,而每次当他越想控制局面,一切就越加复杂。 0 +然而就在最后人们再也不会向他扔快餐,或许是因为他总是背着弓箭在大街上走。 1 +最后,面对那份高额工作的接受意味着又一个新生活的开始。 0 +也许,生活就像天气,想怎么样就怎么样,完全不可预料。 1 +导 演:戈尔·维宾斯基 Gore Verbinski 0 +编 剧:Steve Conrad .....(written by) 1 +演 员:尼古拉斯·凯奇 Nicolas Cage .....David Spritz 0 +尼古拉斯·霍尔特 Nicholas Hoult .....Mike 1 +迈克尔·凯恩 Michael Caine .....Robert Spritzel 0 +杰蒙妮·德拉佩纳 Gemmenne de la Peña .....Shelly 1 +霍普·戴维斯 Hope Davis .....Noreen 0 +迈克尔·瑞斯玻利 Michael Rispoli .....Russ 1 +原创音乐:James S. Levine .....(co-composer) (as James Levine) 0 +汉斯·兹米尔 Hans Zimmer 1 +摄 影:Phedon Papamichael 0 +剪 辑:Craig Wood 1 +选角导演:Denise Chamian 0 +艺术指导:Tom Duffield 1 +美术设计:Patrick M. Sullivan Jr. .....(as Patrick Sullivan) 0 +布景师 :Rosemary Brandenburg 1 +服装设计:Penny Rose 0 +视觉特效:Charles Gibson 1 +David Sosalla .....Pacific Title & Art Studio 0 +韩国国家足球队,全名大韩民国足球国家代表队(???? ?? ?????),为韩国足球协会所于1928年成立,并于1948年加入国际足球协会。 1 +韩国队自1986年世界杯开始,从未缺席任何一届决赛周。 0 +在2002年世界杯,韩国在主场之利淘汰了葡萄牙、意大利及西班牙三支欧洲强队,最后夺得了殿军,是亚洲球队有史以来最好成绩。 1 +在2010年世界杯,韩国也在首圈分组赛压倒希腊及尼日利亚出线次圈,再次晋身十六强,但以1-2败给乌拉圭出局。 0 + 北京时间2014年6月27日3时,巴西世界杯小组赛H组最后一轮赛事韩国对阵比利时,韩国队0-1不敌比利时,3场1平2负积1分垫底出局。 1 +球队教练:洪明甫 0 +韩国国家足球队,全名大韩民国足球国家代表队(韩国国家男子足球队???? ?? ?????),为韩国足球协会所于1928年成立,并于1948年加入国际足联。 1 +韩国队是众多亚洲球队中,在世界杯表现最好,他们自1986年世界杯开始,从未缺席任何一届决赛周。 0 +在2002年世界杯,韩国在主场之利淘汰了葡萄牙、意大利及西班牙三支欧洲强队,最后夺得了殿军,是亚洲球队有史以来最好成绩。 1 +在2010年世界杯,韩国也在首圈分组赛压倒希腊及尼日利亚出线次圈,再次晋身十六强,但以1-2败给乌拉圭出局。 0 +2014年世界杯外围赛,韩国在首轮分组赛以首名出线次轮分组赛,与伊朗、卡塔尔、乌兹别克以及黎巴嫩争逐两个直接出线决赛周资格,最后韩国仅以较佳的得失球差压倒乌兹别克,以小组次名取得2014年世界杯决赛周参赛资格,也是韩国连续八次晋身世界杯决赛周。 1 +虽然韩国队在世界杯成绩为亚洲之冠,但在亚洲杯足球赛的成绩却远不及世界杯。 0 +韩国只在首两届亚洲杯(1956年及1960年)夺冠,之后五十多年未能再度称霸亚洲杯,而自1992年更从未打入过决赛,与另一支东亚强队日本近二十年来四度在亚洲杯夺冠成强烈对比。[1] 1 +人物简介 0 +车范根(1953年5月22日-)曾是大韩民国有名的锋线选手,他被欧洲媒体喻为亚洲最佳输出球员之一,他也被认为是世界最佳足球员之一。 1 +他被国际足球史料与数据协会评选为20世纪亚洲最佳球员。 0 +他在85-86赛季是德甲的最有价值球员,直到1999年为止他都是德甲外国球员入球纪录保持者。 1 +德国的球迷一直没办法正确说出他名字的发音,所以球车范根(左)迷都以炸弹车(Cha Boom)称呼他。 0 +这也代表了他强大的禁区得分能力。 1 +职业生涯 0 +车范根生于大韩民国京畿道的华城市,他在1971年于韩国空军俱乐部开始了他的足球员生涯;同年他入选了韩国19岁以下国家足球队(U-19)。 1 +隔年他就加入了韩国国家足球队,他是有史以来加入国家队最年轻的球员。 0 +车范根在27岁时前往德国发展,当时德甲被认为是世界上最好的足球联赛。 1 +他在1978年12月加入了达姆施塔特,不过他在那里只待了不到一年就转到当时的德甲巨人法兰克福。 0 +车范根很快在新俱乐部立足,他帮助球队赢得79-80赛季的欧洲足协杯。 1 +在那个赛季过后,他成为德甲薪水第三高的球员,不过在1981年对上勒沃库森的一场比赛上,他的膝盖严重受伤,几乎毁了他的足球生涯。 0 +在1983年车范根转投勒沃库森;他在这取得很高的成就,他成为85-86赛季德甲的最有价值球员,并且在1988年帮助球队拿下欧洲足协杯,也是他个人第二个欧洲足协杯。 1 +他在决赛对垒西班牙人扮演追平比分的关键角色,而球会才在点球大战上胜出。 0 +车范根在1989年退休,他在308场的德甲比赛中进了98球,一度是德甲外国球员的入球纪录。 1 +执教生涯 0 +国立台湾科技大学,简称台湾科大、台科大或台科,是位于台湾台北市大安区的台湾第一所高等技职体系大专院校,现为台湾最知名的科技大学,校本部比邻国立台湾大学。 1 +该校已于2005年、2008年持续入选教育部的“发展国际一流大学及顶尖研究中心计划”。 0 +“国立”台湾工业技术学院成立于“民国”六十三年(1974)八月一日,为台湾地区第一所技术职业教育高等学府。 1 +建校之目的,在因应台湾地区经济与工业迅速发展之需求,以培养高级工程技术及管理人才为目标,同时建立完整之技术职业教育体系。 0 +“国立”台湾工业技术学院成立于“民国”六十三年(1974)八月一日,为台湾地区第一所技术职业教育高等学府。 1 +建校之目的,在因应台湾地区经济与工业迅速发展之需求,以培养高级工程技术及管理人才为目标,同时建立完整之技术职业教育体系。 0 +本校校地约44.5公顷,校本部位于台北市基隆路四段四十三号,。 1 +民国68年成立硕士班,民国71年成立博士班,现有大学部学生5,664人,研究生4,458人,专任教师451位。 0 +2001年在台湾地区教育部筹划之研究型大学(“国立”大学研究所基础教育重点改善计画)中,成为全台首批之9所大学之一 。 1 +自2005年更在“教育部”所推动“五年五百亿 顶尖大学”计划下,遴选为适合发展成“顶尖研究中心”的11所研究型大学之一。 0 +国立台湾科技大学部设有二年制、四年制及工程在职人员进修班等三种学制;凡二专、三专及五专等专科学校以上之毕业生,皆可以报考本校大学部二年制,而高职、高中毕业生,可以报考本校大学部四年制。 1 +工业管理、电子工程、机械工程、营建工程及应用外语系等,则设有在职人员进修班学制,其招生对象为在职人员,利用夜间及暑假期间上课。 0 +凡在本校大学部修毕应修学分且成绩及格者皆授予学士学位。 1 +国立台湾科技大学目前设有工程、电资、管理、设计、人文社会及精诚荣誉等六个学院,分别有机械、材料科学与工程、营建、化工、电子、电机、资工、工管、企管、资管、建筑、工商业设计、应用外语等13个系及校内招生之财务金融学士学位学程、科技管理学士学位学程;全校、工程、电资、管理、创意设计等五个不分系菁英班及光电研究所、管理研究所、财务金融研究所、科技管理研究所、管理学院MBA、数位学习教育研究所、医学工程研究所、自动化及控制研究所、工程技术研究所、专利研究所等独立研究所,此外尚有人文学科负责人文及社会类等课程之教学,通识学科负责法律、音乐、环保类等课程之教学,以及师资培育中心专以培养学生未来担任中等学校工、商、管理、设计等科之合格教师,合计23个独立系所、师资培育中心、人文学科及通识学科等教学单位。 0 +国立台湾科技大学至今各系所毕业校友已达约56,456位,毕业生出路包含出国继续深造、在台深造以及投身于产业界。 1 +由于实作经验丰富,理论基础完备,工作态度认真,毕业校友担任政府要职、大学教授、大学校长及企业主管者众多,深受各界的肯定。 0 +工商业设计系副教授孙春望与硕一生全明远耗时两个月自制之三分钟动画短片“立体悲剧”。 1 +本片入选有“动画奥斯卡”之称的“ACM SIGGRAPH”国际动画展,并获得观众票选第一名,这也是台湾首次入选及获奖的短片。 0 +击败了好莱坞知名导演史蒂芬·史匹柏的“世界大战”、乔治卢卡斯的“星际大战三部曲”、梦工厂出品的动画“马达加斯加”、军机缠斗片“机战未来”及美国太空总署、柏克莱加州大学等好莱坞名片及顶尖学术单位制作的短片。 1 +2009年荣获有工业设计界奥斯卡奖之称的“德国iF设计大奖”国立台湾科技大学设计学院获得大学排名的全球第二,仅次于韩国三星美术设计学院“SADI”。 0 +总体排名 依据《泰晤士高等教育》(THES-QS)在2009年的世界大学排名调查,台科大排名全世界第351名,在台湾所有大学中排名第五,仅次于台大,清大,成大及阳明,并且是台湾唯一进入世界四百大名校的科技大学。 1 +依据在欧洲拥有广大声誉的“Eduniversal商学院排名网”2008年的资料,台湾有七所大学的商管学院被分别列入世界1000大商学院,其中台科大位在“卓越商学院”(EXCELLENT Business Schools,国内主要)之列,“推荐程度”(Recommendation Rate)为全台第四,仅次于台大、政大、中山,与交大并列。 0 +目前设有工程、电资、管理、设计、人文社会及精诚荣誉学院等六个学院。 1 +预计于竹北新校区设立产学合作学院及应用理学院。 0 +●台湾建筑科技中心 1 +●智慧型机械人研究中心科技成果展示(15张) 0 +●台湾彩卷与博彩研究中心 1 +●电力电子技术研发中心 0 +●NCP-Taiwan办公室 1 +●资通安全研究与教学中心 0 +神道又称天道,语出《易经》“大观在上,顺而巽,中正以观天下。 1 +观,盥而不荐,有孚顒若,下观而化也。 0 +观天之神道,而四时不忒,圣人以神道设教,而天下服矣”。 1 +自汉以降,神道又指“墓前开道,建石柱以为标”。 0 +在中医中,神道,经穴名。 1 +出《针灸甲乙经》。 0 +别名冲道。 1 +属督脉。 0 +宗教中,神道是日本的本土传统民族宗教,最初以自然崇拜为主,属于泛灵多神信仰(精灵崇拜),视自然界各种动植物为神祇。 1 +神道又称天道,语出《易经》“大观在上,顺而巽,中正以观天下。 0 +观,盥而不荐,有孚顒若,下观而化也。 1 +观天之神道,而四时不忒,圣人以神道设教,而天下服矣”。 0 +自汉以降,神道又指“墓前开道,建石柱以为标”。 1 +在中医中,神道,经穴名。 0 +出《针灸甲乙经》。 1 +别名冲道。 0 +属督脉。 1 +宗教中,神道是日本的本土传统民族宗教,最初以自然崇拜为主,属于泛灵多神信仰(精灵崇拜),视自然界各种动植物为神祇。 0 +谓鬼神赐福降灾神妙莫测之道。 1 +《易·观》:“观天之神道,而四时不忒,圣人以神道设教,而天下服矣。” 0 + 孔颖达 疏:“微妙无方,理不可知,目不可见,不知所以然而然,谓之神道。” 1 +《文选·王延寿<鲁灵光殿赋>》:“敷皇极以创业,协神道而大宁。” 0 + 张载 注:“协和神明之道,而天下大宁。” 1 + 南朝 梁 刘勰 《文心雕龙·正纬》:“夫神道阐幽,天命微显。” 0 + 鲁迅 《中国小说史略》第五篇:“﹝ 干宝 ﹞尝感於其父婢死而再生,及其兄气绝复苏,自言见天神事,乃撰《搜神记》二十卷,以‘发明神道之不诬’。” 1 + 神道设教 观卦里面蕴含着《易经》固有的诸如神道设教、用舍行藏、以德化民等思想,是孔子把这些思想发掘出来。 0 +「据此是孔子见当时之人,惑于吉凶祸福,而卜筮之史,加以穿凿傅会,故演易系辞,明义理,切人事,借卜筮以教后人,所谓以神道设教,其所发明者,实即羲文之义理,而非别有义理,亦非羲文并无义理,至孔子始言义理也,当即朱子之言而小变之曰,易为卜筮作,实为义理作,伏羲文王之易,有占而无文,与今人用火珠林起课者相似,孔子加卦爻辞如签辞,纯以理言,实即羲文本意,则其说分明无误矣。」 1 +孔子所发掘的《易经》思想与孔子在《论语》书中表现出来的思想完全一致。 0 +《易传》的思想反映了孔子的思想,这个思想是《周易》的,也是孔子的。 1 +在《周易》和孔子看来,神不是有意识的人格化的上帝。 0 +里昂 Lyon 全名 Olympique lyonnais 绰号 Les Gones、OL 成立 1950年 城市 法国,里昂 主场 热尔兰球场(Stade Gerland) 容纳人数 41,044人 主席 奥拉斯 主教练 雷米·加尔德 联赛 法国足球甲级联赛 2013–14 法甲,第 5 位 网站 官方网站 主场球衣 客场球衣 第三球衣 日尔兰体育场 奥林匹克里昂(Olympique lyonnais,简称:OL及Lyon,中文简称里昂)是一间位于法国东南部罗纳-阿尔卑斯区的里昂市的足球会,成立于1950年8月3日,前身为里昂·奥林匹克(Lyon Olympique)体育俱乐部其中一个分支的足球队,1889年离开体育俱乐部自立门户成立新俱乐部,但官方网站表示俱乐部于1950年正式成立。 1 +现时在法国足球甲级联赛比赛,俱乐部同时设立男子及女子足球队。 0 +里昂是首届法国足球甲级联赛成员之一,可惜名列第十五位而降落乙组,1951年以乙级联赛冠军获得创会后首次锦标。 1 +球队在法国足球史上没有取得辉煌成绩,比较优异的算是六十年代曾杀入欧洲杯赛冠军杯四强,及3度晋身法国杯决赛并2次成功获冠。 0 +直至九十年代末里昂由辛天尼带领,先连续取得联赛头三名,到2002年终于首次登上法国顶级联赛冠军宝座,同年勒冈(Paul Le Guen)接替执教法国国家足球队的辛天尼,他其后继续带领里昂保持气势,加上队中球员小儒尼尼奧、迪亚拉、克里斯蒂亞諾·馬克斯·戈麥斯、迈克尔·埃辛、西德尼·戈武及门将格雷戈里·库佩表现突出,2003年至2005年横扫3届联赛冠军,创下连续四年夺得联赛锦标,平了1960年代末圣艾蒂安及1990年代初马赛的四连冠纪录。 1 +2005年前利物浦主教练热拉尔·霍利尔重返法国担任新任主教练,并加入葡萄牙中场蒂亚戈,和前巴伦西亚前锋约翰·卡鲁。 0 +他亦成功带领里昂赢得一届法甲冠军。 1 +2007年里昂成为首支上市的法国足球俱乐部,招股价21至24.4欧元,发行370万股,集资8400万欧元[1]。 0 +2007年4月21日,联赛次名图卢兹二比三不敌雷恩,令处于榜首的里昂领先次席多达17分距离,里昂因此提前六轮联赛庆祝俱乐部连续第六年夺得联赛冠军,亦是欧洲五大联赛(英格兰、德国、西班牙、意大利及法国)历史上首支联赛六连冠队伍[2]。 1 + 在2007-08年赛季,里昂再一次成功卫冕联赛锦标,达成七连霸伟业。 0 +不过在2008-09赛季,里昂排名法甲第三位,联赛冠军被波尔多所获得。 1 +于2010年4月,里昂以两回合3比2的比分于欧洲冠军联赛击败波尔多跻身四强,此乃里昂首次晋级此项顶级杯赛的四强阶段。 0 +粗体字为新加盟球员 1 +以下球员名单更新于2014年8月27日,球员编号参照 官方网站,夏季转会窗为6月9日至8月31日 0 +移动鼠标控制瞄准,点击鼠标左键进行射击。 1 +游戏加载完成后点击STARTGAME-然后点击STARTMISSION即可开始游戏。 0 +这里不仅仅考验的是你的枪法而且最重要的是你的智慧,喜欢火柴人类型游戏的玩家可以进来小试身手。 1 +控制瞄准,刺杀游戏中的目标人物即可过关哦。 0 +情人节(英语:Valentine's Day),情人节的起源有多个版本,其中一个说法是在公元三世纪,古罗马暴君为了征召更多士兵,禁止婚礼,一名叫瓦伦丁Valentine的修士不理禁令,秘密替人主持婚礼,结果被收监,最后处死。 1 +而他死的那天就是2月14日,为纪念Valentine的勇敢精神,人们将每年的2月14日定为Valentine的纪念日。 0 +因此成了后来的“情人节”。 1 +另外,据记载,教宗在公元496年废除牧神节,把2月14日定为圣瓦伦丁日,即是St.Valentine's Day,后来成为是西方的节日之一。 0 +中文名称:情人节 1 +外文名称:Valentine‘s Day 0 +别名:情人节圣瓦伦丁节 1 +公历日期:2月14日 0 +起源时间:公元270年2月14日 1 +起源事件:人们为了纪念为情人做主而牺牲的瓦伦丁神父,把他遇害的那一天(2月14日)称为情人节。 0 +地区:欧美地区 1 +宗教:基督教 0 +其他信息:西方的传统节日之一。 1 +男女在这一天互送礼物(如贺卡和玫瑰花等)用以表达爱意或友好。 0 +据台湾“今日台湾人讨厌情人节新闻网”报道,西洋情人节即将来到,求职网进行“办公室恋情及情人节调查”发现,在目前全台上班族的感情状态中,有情人相伴的比率约5成5,4成5的上班族单身;较出乎意料的结果是,情人节以近3成(28%)的占比,登上最讨厌的节日第一名,端午节以24.3%居第二;农历年则以18.2%居第三;第四名是圣诞节,占12.4%。 1 +调查指出,情人节对单身族来说,不仅成为压力,也显得更加孤单,在情人节当天,单身的上班族有将近4成(39.1%)的人在家看电视度过,近两成(18.7%)上网聊天,有1成4(14.8%)的人,不畏满街闪光,勇气十足出门看电影,近1成(9.7%)的上班族选择留在公司加班;另外有 5.4%的人,会在情人节当天积极参加联谊,希望能改变自己的感情状态。 0 +情侣们在情人节当天,庆祝方式以吃浪漫大餐最多(37.1%),不过有近3成(27%)的情侣,在情人节当天不会特别庆祝情人节,且这个比率远比第三名的旅游(占比11.5%)高出1倍以上。 1 +在情人节当天庆祝的开销上,可以说是小资男女当道,选择1000元(新台币,下同)以内的上班族最多占33.1%,情人节当天的花费上班族的平均花费是2473元,大手笔花费上万元以上庆祝情人节的,占比只有2.5%。 0 +情人节的起源众说纷纭,而为纪念罗马教士瓦伦丁是其中一个普遍的说法。 1 +据《世界图书百科全书》(World Book Encyclopedia)数据指出:“在公元200年时期,罗马皇帝克劳狄二世禁止年轻男子结婚。 0 +他认为未婚男子可以成为更优良的士兵。 1 +一位名叫瓦伦丁的教士违反了皇帝的命令,秘密为年轻男子主持婚礼,引起皇帝不满,结果被收监,据说瓦伦丁于公元269年2月14日被处决。 0 +另外,据《天主教百科全书》(The Catholic情人节 Encyclopedia)指出,公元496年,教宗圣基拉西乌斯一世在公元第五世纪末叶废除了牧神节,把2月14日定为圣瓦伦丁日。” 1 +这个节日现今以“圣瓦伦丁节”——亦即情人节的姿态盛行起来。 0 +但是在第2次梵蒂冈大公会议后,1969年的典礼改革上,整理了一堆在史实上不确定是否真实存在的人物以后,圣瓦伦丁日就被废除了。 1 +现在天主教圣人历已经没有圣瓦伦丁日(St. Valentine's Day)。 0 +根据《布卢姆尔的警句与寓言辞典》记载:“圣瓦伦丁是个罗马教士,由于援助受逼害的基督徒而身陷险境,后来他归信基督教,最后被处死,卒于二月十四日”古代庆祝情人节的习俗与瓦伦丁拉上关系,可能是纯属巧合而已。 1 +事实上,这个节日很可能与古罗马的牧神节或雀鸟交配的季节有关。 0 +情人节的特色是情侣互相馈赠礼物。 1 +时至今日,人们则喜欢以情人卡向爱人表达情意。 0 +防卫大学的前身是保安大学。 1 +防卫大学是日本自卫队培养陆、海、空三军初级军官的学校,被称为日军"军官的摇篮"。 0 +防卫大学是日军的重点院校。 1 +日本历届内阁首相都要到防卫大学视察"训示",并亲自向学生颁发毕业证书。 0 +日军四分之一的军官、三分之一的将官从这里走出。 1 +防卫大学毕业生已成为日军军官的中坚力量。 0 +防卫大学每年从地方招收18岁至21岁的应届高中毕业生和同等学历的青年。 1 +每年招生名额为530名。 0 +1950年 8月,日本组建警察预备队,1952年改为保安队。 1 +为了充实保安队干部队伍,提高干部军政素质,1953年4月成立了保安大学,校址设在三浦半岛的久里滨。 0 +1954年7月1日保安厅改为防卫厅。 1 +在保安队基础上,日本建立了陆、海、空三军自卫队,保安大学遂改名为防卫大学,1955年迁至三浦半岛东南方的小原台。 0 +学校直属防卫厅领导。 1 +防卫大学的教育方针是:要求学生德智体全面发展,倡导学生崇尚知识和正义,培养学生具有指挥各种部队的能力。 0 +防卫大学每年招生名额为530名,其中陆军300名,海军100名,空军130名。 1 +根据自卫队向妇女敞开军官大门的决定,防卫大学1992年首次招收女学员35名。 0 + 考试分两次进行。 1 +第一次,每年11月份进行学科考试;第二次,12月份进行口试和体检。 0 +学校按陆、海、空三军分别设大学本科班和理工科研究生班。 1 +本科班学制4年,又分为理工和人文社会学两大科。 0 +学员入学后先分科,530人中有460人专攻理科,70人专攻文科。 1 +第1学年按专科学习一般大学课程和一般军事知识。 0 +第2学年以后在军事上开始区分军种,学员分别学习陆、海、空军的专门课程。 1 +文化课和军事课的比例是6:l。 0 +文化课程有人文、社会、自然、外语、电气工程、机械工程、土木建筑工程、应用化学、应用物理、航空、航海等。 1 +军事训练课每学年6周,按一年四季有比例地安排教学内容,对学生进行军事技术和体能训练。 0 +理工科研究生班,每年招生1期,学制2年,每期招收90人,设电子工程、航空工程、兵器制造等7个专业,课程按一般大学硕士课程标准设置。 1 +防卫大学的课程和训练都十分紧张。 0 +近年来,为了增强防卫大学的吸引力,克服考生逐年减少的倾向广泛征集优秀人才,学校进行了一些改革,改变入学考试办法,各高中校长以内部呈报的形式向防卫大学推荐品学兼优的学生;减少学生入学考试科目,放宽对报考防卫大学的学生的视力要求;降低学分数(大约降低30学分);改善学生宿舍条件。 1 +防卫大学的学生生活紧张而愉快。 0 +10年前大战后,威鲁贝鲁国一致辛勤的保护着得来不易的和平,但是与邻国圣卡特拉斯国的关系却不断的紧张,战争即将爆发。 1 +为了避免战争,威鲁贝鲁国王海特鲁王决定将自己最大的女儿公主莉塔嫁给圣卡特拉斯国的王子格鲁尼亚。 0 +但是莉塔却刺伤了政治婚姻的对象格鲁尼亚王子逃了出去,这事激怒了圣卡特拉斯国的国王兰帕诺夫王,并下令14天之内抓到王女并执行公开处刑来谢罪,不然两国就要开战。 1 +《威鲁贝鲁的物语~Sisters of Wellber~》 0 +(Sisters of Wellber) 1 +日文名 ウエルベールの物语 0 +官方网站 http://www.avexmovie.jp/lineup/wellber/ 1 +为了回避发生战争这个最坏的结果,莉塔下定决心去中立国古利达姆。 0 diff --git a/examples/erniesage/infer.py b/examples/erniesage/link_predict_infer.py similarity index 92% rename from examples/erniesage/infer.py rename to examples/erniesage/link_predict_infer.py index 9fc4aeee96f84e4ac8e3b88351d8ec92083701df..cf95be603b92cc7985ddd5cc9be20b7a3d690ff6 100644 --- a/examples/erniesage/infer.py +++ b/examples/erniesage/link_predict_infer.py @@ -34,7 +34,7 @@ from pgl.utils import paddle_helper import paddle import paddle.fluid as F -from models.model_factory import Model +from models.model import LinkPredictModel from dataset.graph_reader import GraphGenerator @@ -59,7 +59,7 @@ def run_predict(py_reader, log_per_step=1, args=None): - id2str = io.open(os.path.join(args.graph_path, "terms.txt"), encoding=args.encoding).readlines() + id2str = io.open(os.path.join(args.graph_work_path, "terms.txt"), encoding=args.encoding).readlines() trainer_id = int(os.getenv("PADDLE_TRAINER_ID", "0")) trainer_count = int(os.getenv("PADDLE_TRAINERS_NUM", "1")) @@ -71,7 +71,7 @@ def run_predict(py_reader, for batch_feed_dict in py_reader(): batch += 1 - batch_usr_feat, batch_ad_feat, _, batch_src_real_index = exe.run( + batch_usr_feat, _, _, batch_src_real_index, _ = exe.run( program, feed=batch_feed_dict, fetch_list=model_dict.outputs) @@ -79,7 +79,7 @@ def run_predict(py_reader, if batch % log_per_step == 0: log.info("Predict %s finished" % batch) - for ufs, _, sri in zip(batch_usr_feat, batch_ad_feat, batch_src_real_index): + for ufs, sri in zip(batch_usr_feat, batch_src_real_index): if args.input_type == "text": sri = id2str[int(sri)].strip("\n") line = "{}\t{}\n".format(sri, tostr(ufs)) @@ -108,7 +108,7 @@ def _warmstart(exe, program, path='params'): ) def main(config): - model = Model.factory(config) + model = LinkPredictModel(config) if config.learner_type == "cpu": place = F.CPUPlace() @@ -143,7 +143,7 @@ def main(config): build_strategy=build_strategy, exec_strategy=exec_strategy) - num_nodes = int(np.load(os.path.join(config.graph_path, "num_nodes.npy"))) + num_nodes = int(np.load(os.path.join(config.graph_work_path, "num_nodes.npy"))) predict_data = PredictData(num_nodes) @@ -156,7 +156,7 @@ def main(config): feed_name_list=[var.name for var in model.feed_list], use_pyreader=config.use_pyreader, phase="predict", - graph_data_path=config.graph_path, + graph_data_path=config.graph_work_path, shuffle=False) if config.learner_type == "cpu": diff --git a/examples/erniesage/train.py b/examples/erniesage/link_predict_train.py similarity index 82% rename from examples/erniesage/train.py rename to examples/erniesage/link_predict_train.py index cc3255c9949ca3812637b07c2b10acb190c38462..2fc14f0d42928d6f81037f79ab5235f1c3376420 100644 --- a/examples/erniesage/train.py +++ b/examples/erniesage/link_predict_train.py @@ -22,27 +22,26 @@ from pgl.utils.logger import log from pgl.utils import paddle_helper from learner import Learner -from models.model_factory import Model +from models.model import LinkPredictModel from dataset.graph_reader import GraphGenerator class TrainData(object): - def __init__(self, graph_path): + def __init__(self, graph_work_path): trainer_id = int(os.getenv("PADDLE_TRAINER_ID", "0")) trainer_count = int(os.getenv("PADDLE_TRAINERS_NUM", "1")) log.info("trainer_id: %s, trainer_count: %s." % (trainer_id, trainer_count)) - bidirectional_edges = np.load(os.path.join(graph_path, "edges.npy"), allow_pickle=True) + edges = np.load(os.path.join(graph_work_path, "train_data.npy"), allow_pickle=True) # edges is bidirectional. - edges = bidirectional_edges[0::2] train_usr = edges[trainer_id::trainer_count, 0] train_ad = edges[trainer_id::trainer_count, 1] returns = { "train_data": [train_usr, train_ad] } - if os.path.exists(os.path.join(graph_path, "neg_samples.npy")): - neg_samples = np.load(os.path.join(graph_path, "neg_samples.npy"), allow_pickle=True) + if os.path.exists(os.path.join(graph_work_path, "neg_samples.npy")): + neg_samples = np.load(os.path.join(graph_work_path, "neg_samples.npy"), allow_pickle=True) if neg_samples.size != 0: train_negs = neg_samples[trainer_id::trainer_count] returns["train_data"].append(train_negs) @@ -50,7 +49,7 @@ class TrainData(object): self.data = returns def __getitem__(self, index): - return [ data[index] for data in self.data["train_data"]] + return [data[index] for data in self.data["train_data"]] def __len__(self): return len(self.data["train_data"][0]) @@ -58,10 +57,10 @@ class TrainData(object): def main(config): # Select Model - model = Model.factory(config) + model = LinkPredictModel(config) # Build Train Edges - data = TrainData(config.graph_path) + data = TrainData(config.graph_work_path) # Build Train Data train_iter = GraphGenerator( @@ -73,7 +72,7 @@ def main(config): feed_name_list=[var.name for var in model.feed_list], use_pyreader=config.use_pyreader, phase="train", - graph_data_path=config.graph_path, + graph_data_path=config.graph_work_path, shuffle=True, neg_type=config.neg_type) diff --git a/examples/erniesage/models/base.py b/examples/erniesage/models/base.py deleted file mode 100644 index e93fd5ffbb00de1da1612b0945cdba682909f164..0000000000000000000000000000000000000000 --- a/examples/erniesage/models/base.py +++ /dev/null @@ -1,244 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import time -import glob -import os - -import numpy as np - -import pgl -import paddle.fluid as F -import paddle.fluid.layers as L - -from models import message_passing - -def get_layer(layer_type, gw, feature, hidden_size, act, initializer, learning_rate, name, is_test=False): - return getattr(message_passing, layer_type)(gw, feature, hidden_size, act, initializer, learning_rate, name) - - -class BaseGraphWrapperBuilder(object): - def __init__(self, config): - self.config = config - self.node_feature_info = [] - self.edge_feature_info = [] - - def __call__(self): - place = F.CPUPlace() - graph_wrappers = [] - for i in range(self.config.num_layers): - # all graph have same node_feat_info - graph_wrappers.append( - pgl.graph_wrapper.GraphWrapper( - "layer_%s" % i, node_feat=self.node_feature_info, edge_feat=self.edge_feature_info)) - return graph_wrappers - - -class GraphsageGraphWrapperBuilder(BaseGraphWrapperBuilder): - def __init__(self, config): - super(GraphsageGraphWrapperBuilder, self).__init__(config) - self.node_feature_info.append(('index', [None], np.dtype('int64'))) - - -class BaseGNNModel(object): - def __init__(self, config): - self.config = config - self.graph_wrapper_builder = self.gen_graph_wrapper_builder(config) - self.net_fn = self.gen_net_fn(config) - self.feed_list_builder = self.gen_feed_list_builder(config) - self.data_loader_builder = self.gen_data_loader_builder(config) - self.loss_fn = self.gen_loss_fn(config) - self.build() - - - def gen_graph_wrapper_builder(self, config): - return GraphsageGraphWrapperBuilder(config) - - def gen_net_fn(self, config): - return BaseNet(config) - - def gen_feed_list_builder(self, config): - return BaseFeedListBuilder(config) - - def gen_data_loader_builder(self, config): - return BaseDataLoaderBuilder(config) - - def gen_loss_fn(self, config): - return BaseLoss(config) - - def build(self): - self.graph_wrappers = self.graph_wrapper_builder() - self.inputs, self.outputs = self.net_fn(self.graph_wrappers) - self.feed_list = self.feed_list_builder(self.inputs, self.graph_wrappers) - self.data_loader = self.data_loader_builder(self.feed_list) - self.loss = self.loss_fn(self.outputs) - -class BaseFeedListBuilder(object): - def __init__(self, config): - self.config = config - - def __call__(self, inputs, graph_wrappers): - feed_list = [] - for i in range(len(graph_wrappers)): - feed_list.extend(graph_wrappers[i].holder_list) - feed_list.extend(inputs) - return feed_list - - -class BaseDataLoaderBuilder(object): - def __init__(self, config): - self.config = config - - def __call__(self, feed_list): - data_loader = F.io.PyReader( - feed_list=feed_list, capacity=20, use_double_buffer=True, iterable=True) - return data_loader - - - -class BaseNet(object): - def __init__(self, config): - self.config = config - - def take_final_feature(self, feature, index, name): - """take final feature""" - feat = L.gather(feature, index, overwrite=False) - - if self.config.final_fc: - feat = L.fc(feat, - self.config.hidden_size, - param_attr=F.ParamAttr(name=name + '_w'), - bias_attr=F.ParamAttr(name=name + '_b')) - - if self.config.final_l2_norm: - feat = L.l2_normalize(feat, axis=1) - return feat - - def build_inputs(self): - user_index = L.data( - "user_index", shape=[None], dtype="int64", append_batch_size=False) - item_index = L.data( - "item_index", shape=[None], dtype="int64", append_batch_size=False) - neg_item_index = L.data( - "neg_item_index", shape=[None], dtype="int64", append_batch_size=False) - return [user_index, item_index, neg_item_index] - - def build_embedding(self, graph_wrappers, inputs=None): - num_embed = int(np.load(os.path.join(self.config.graph_path, "num_nodes.npy"))) - is_sparse = self.config.trainer_type == "Transpiler" - - embed = L.embedding( - input=L.reshape(graph_wrappers[0].node_feat['index'], [-1, 1]), - size=[num_embed, self.config.hidden_size], - is_sparse=is_sparse, - param_attr=F.ParamAttr(name="node_embedding", initializer=F.initializer.Uniform( - low=-1. / self.config.hidden_size, - high=1. / self.config.hidden_size))) - return embed - - def gnn_layers(self, graph_wrappers, feature): - features = [feature] - - initializer = None - fc_lr = self.config.lr / 0.001 - - for i in range(self.config.num_layers): - if i == self.config.num_layers - 1: - act = None - else: - act = "leaky_relu" - - feature = get_layer( - self.config.layer_type, - graph_wrappers[i], - feature, - self.config.hidden_size, - act, - initializer, - learning_rate=fc_lr, - name="%s_%s" % (self.config.layer_type, i)) - features.append(feature) - return features - - def __call__(self, graph_wrappers): - inputs = self.build_inputs() - feature = self.build_embedding(graph_wrappers, inputs) - features = self.gnn_layers(graph_wrappers, feature) - outputs = [self.take_final_feature(features[-1], i, "final_fc") for i in inputs] - src_real_index = L.gather(graph_wrappers[0].node_feat['index'], inputs[0]) - outputs.append(src_real_index) - return inputs, outputs - -def all_gather(X): - trainer_id = int(os.getenv("PADDLE_TRAINER_ID", "0")) - trainer_num = int(os.getenv("PADDLE_TRAINERS_NUM", "0")) - if trainer_num == 1: - copy_X = X * 1 - copy_X.stop_gradients=True - return copy_X - - Xs = [] - for i in range(trainer_num): - copy_X = X * 1 - copy_X = L.collective._broadcast(copy_X, i, True) - copy_X.stop_gradient=True - Xs.append(copy_X) - - if len(Xs) > 1: - Xs=L.concat(Xs, 0) - Xs.stop_gradient=True - else: - Xs = Xs[0] - return Xs - -class BaseLoss(object): - def __init__(self, config): - self.config = config - - def __call__(self, outputs): - user_feat, item_feat, neg_item_feat = outputs[0], outputs[1], outputs[2] - loss_type = self.config.loss_type - - if self.config.neg_type == "batch_neg": - neg_item_feat = item_feat - # Calc Loss - if self.config.loss_type == "hinge": - pos = L.reduce_sum(user_feat * item_feat, -1, keep_dim=True) # [B, 1] - neg = L.matmul(user_feat, neg_item_feat, transpose_y=True) # [B, B] - loss = L.reduce_mean(L.relu(neg - pos + self.config.margin)) - elif self.config.loss_type == "all_hinge": - pos = L.reduce_sum(user_feat * item_feat, -1, keep_dim=True) # [B, 1] - all_pos = all_gather(pos) # [B * n, 1] - all_neg_item_feat = all_gather(neg_item_feat) # [B * n, 1] - all_user_feat = all_gather(user_feat) # [B * n, 1] - - neg1 = L.matmul(user_feat, all_neg_item_feat, transpose_y=True) # [B, B * n] - neg2 = L.matmul(all_user_feat, neg_item_feat, transpose_y=True) # [B *n, B] - - loss1 = L.reduce_mean(L.relu(neg1 - pos + self.config.margin)) - loss2 = L.reduce_mean(L.relu(neg2 - all_pos + self.config.margin)) - - #loss = (loss1 + loss2) / 2 - loss = loss1 + loss2 - - elif self.config.loss_type == "softmax": - pass - # TODO - # pos = L.reduce_sum(user_feat * item_feat, -1, keep_dim=True) # [B, 1] - # neg = L.matmul(user_feat, neg_feat, transpose_y=True) # [B, B] - # logits = L.concat([pos, neg], -1) # [B, 1+B] - # labels = L.fill_constant_batch_size_like(logits, [-1, 1], "int64", 0) - # loss = L.reduce_mean(L.softmax_with_cross_entropy(logits, labels)) - else: - raise ValueError - return loss diff --git a/examples/erniesage/models/encoder.py b/examples/erniesage/models/encoder.py new file mode 100644 index 0000000000000000000000000000000000000000..72ac6b022f93a5d9efe9864e2b0aeaa07012dfa7 --- /dev/null +++ b/examples/erniesage/models/encoder.py @@ -0,0 +1,287 @@ +import numpy as np +import pgl +import paddle.fluid as F +import paddle.fluid.layers as L +from models.ernie_model.ernie import ErnieModel +from models.ernie_model.ernie import ErnieGraphModel +from models.ernie_model.ernie import ErnieConfig +from models import message_passing +from models.message_passing import copy_send + + +def get_layer(layer_type, gw, feature, hidden_size, act, initializer, learning_rate, name, is_test=False): + return getattr(message_passing, layer_type)(gw, feature, hidden_size, act, initializer, learning_rate, name) + + +class Encoder(object): + + def __init__(self, config): + self.config = config + + @classmethod + def factory(cls, config): + model_type = config.model_type + if model_type == "ERNIESageV1": + return ERNIESageV1Encoder(config) + elif model_type == "ERNIESageV2": + return ERNIESageV2Encoder(config) + elif model_type == "ERNIESageV3": + return ERNIESageV3Encoder(config) + elif model_type == "ERNIESageV4": + return ERNIESageV4Encoder(config) + else: + raise ValueError + + def __call__(self, graph_wrappers, inputs): + raise NotImplementedError + + +class ERNIESageV1Encoder(Encoder): + def __call__(self, graph_wrappers, inputs): + feature = self.build_embedding(graph_wrappers[0].node_feat["term_ids"]) + + initializer = None + fc_lr = self.config.lr / 0.001 + for i in range(self.config.num_layers): + if i == self.config.num_layers - 1: + act = None + else: + act = "leaky_relu" + feature = get_layer( + self.config.layer_type, + graph_wrappers[i], + feature, + self.config.hidden_size, + act, + initializer, + learning_rate=fc_lr, + name="%s_%s" % (self.config.layer_type, i)) + + final_feats = [self.take_final_feature(feature, i, "final_fc") for i in inputs] + return final_feats + + def build_embedding(self, term_ids): + term_ids = L.unsqueeze(term_ids, [-1]) + ernie_config = self.config.ernie_config + ernie = ErnieModel( + src_ids=term_ids, + sentence_ids=L.zeros_like(term_ids), + task_ids=None, + config=ernie_config, + use_fp16=False, + name="") + feature = ernie.get_pooled_output() + return feature + + def take_final_feature(self, feature, index, name): + """take final feature""" + feat = L.gather(feature, index, overwrite=False) + + if self.config.final_fc: + feat = L.fc(feat, + self.config.hidden_size, + param_attr=F.ParamAttr(name=name + '_w'), + bias_attr=F.ParamAttr(name=name + '_b')) + + if self.config.final_l2_norm: + feat = L.l2_normalize(feat, axis=1) + return feat + +class ERNIESageV2Encoder(Encoder): + + def __call__(self, graph_wrappers, inputs): + feature = graph_wrappers[0].node_feat["term_ids"] + feature = self.gnn_layer(graph_wrappers[0], feature, self.config.hidden_size, 'leaky_relu', None, 1., "erniesage_v2_0") + + initializer = None + fc_lr = self.config.lr / 0.001 + for i in range(1, self.config.num_layers): + if i == self.config.num_layers - 1: + act = None + else: + act = "leaky_relu" + feature = get_layer( + self.config.layer_type, + graph_wrappers[i], + feature, + self.config.hidden_size, + act, + initializer, + learning_rate=fc_lr, + name="%s_%s" % (self.config.layer_type, i)) + + final_feats = [self.take_final_feature(feature, i, "final_fc") for i in inputs] + return final_feats + + def take_final_feature(self, feature, index, name): + """take final feature""" + feat = L.gather(feature, index, overwrite=False) + + if self.config.final_fc: + feat = L.fc(feat, + self.config.hidden_size, + param_attr=F.ParamAttr(name=name + '_w'), + bias_attr=F.ParamAttr(name=name + '_b')) + + if self.config.final_l2_norm: + feat = L.l2_normalize(feat, axis=1) + return feat + + def gnn_layer(self, gw, feature, hidden_size, act, initializer, learning_rate, name): + def build_position_ids(src_ids, dst_ids): + src_shape = L.shape(src_ids) + src_batch = src_shape[0] + src_seqlen = src_shape[1] + dst_seqlen = src_seqlen - 1 # without cls + + src_position_ids = L.reshape( + L.range( + 0, src_seqlen, 1, dtype='int32'), [1, src_seqlen, 1], + inplace=True) # [1, slot_seqlen, 1] + src_position_ids = L.expand(src_position_ids, [src_batch, 1, 1]) # [B, slot_seqlen * num_b, 1] + zero = L.fill_constant([1], dtype='int64', value=0) + input_mask = L.cast(L.equal(src_ids, zero), "int32") # assume pad id == 0 [B, slot_seqlen, 1] + src_pad_len = L.reduce_sum(input_mask, 1, keep_dim=True) # [B, 1, 1] + + dst_position_ids = L.reshape( + L.range( + src_seqlen, src_seqlen+dst_seqlen, 1, dtype='int32'), [1, dst_seqlen, 1], + inplace=True) # [1, slot_seqlen, 1] + dst_position_ids = L.expand(dst_position_ids, [src_batch, 1, 1]) # [B, slot_seqlen, 1] + dst_position_ids = dst_position_ids - src_pad_len # [B, slot_seqlen, 1] + + position_ids = L.concat([src_position_ids, dst_position_ids], 1) + position_ids = L.cast(position_ids, 'int64') + position_ids.stop_gradient = True + return position_ids + + + def ernie_send(src_feat, dst_feat, edge_feat): + """doc""" + # input_ids + cls = L.fill_constant_batch_size_like(src_feat["term_ids"], [-1, 1, 1], "int64", 1) + src_ids = L.concat([cls, src_feat["term_ids"]], 1) + dst_ids = dst_feat["term_ids"] + + # sent_ids + sent_ids = L.concat([L.zeros_like(src_ids), L.ones_like(dst_ids)], 1) + term_ids = L.concat([src_ids, dst_ids], 1) + + # position_ids + position_ids = build_position_ids(src_ids, dst_ids) + + term_ids.stop_gradient = True + sent_ids.stop_gradient = True + ernie = ErnieModel( + term_ids, sent_ids, position_ids, + config=self.config.ernie_config) + feature = ernie.get_pooled_output() + return feature + + def erniesage_v2_aggregator(gw, feature, hidden_size, act, initializer, learning_rate, name): + feature = L.unsqueeze(feature, [-1]) + msg = gw.send(ernie_send, nfeat_list=[("term_ids", feature)]) + neigh_feature = gw.recv(msg, lambda feat: F.layers.sequence_pool(feat, pool_type="sum")) + + term_ids = feature + cls = L.fill_constant_batch_size_like(term_ids, [-1, 1, 1], "int64", 1) + term_ids = L.concat([cls, term_ids], 1) + term_ids.stop_gradient = True + ernie = ErnieModel( + term_ids, L.zeros_like(term_ids), + config=self.config.ernie_config) + self_feature = ernie.get_pooled_output() + + self_feature = L.fc(self_feature, + hidden_size, + act=act, + param_attr=F.ParamAttr(name=name + "_l.w_0", + learning_rate=learning_rate), + bias_attr=name+"_l.b_0" + ) + neigh_feature = L.fc(neigh_feature, + hidden_size, + act=act, + param_attr=F.ParamAttr(name=name + "_r.w_0", + learning_rate=learning_rate), + bias_attr=name+"_r.b_0" + ) + output = L.concat([self_feature, neigh_feature], axis=1) + output = L.l2_normalize(output, axis=1) + return output + return erniesage_v2_aggregator(gw, feature, hidden_size, act, initializer, learning_rate, name) + +class ERNIESageV3Encoder(Encoder): + + def __call__(self, graph_wrappers, inputs): + feature = graph_wrappers[0].node_feat["term_ids"] + feature = self.gnn_layer(graph_wrappers[0], feature, self.config.hidden_size, 'leaky_relu', None, 1., "erniesage_v3_0") + + final_feats = [self.take_final_feature(feature, i, "final_fc") for i in inputs] + return final_feats + + def gnn_layer(self, gw, feature, hidden_size, act, initializer, learning_rate, name): + def ernie_recv(feat): + """doc""" + num_neighbor = self.config.samples[0] + pad_value = L.zeros([1], "int64") + out, _ = L.sequence_pad(feat, pad_value=pad_value, maxlen=num_neighbor) + out = L.reshape(out, [0, self.config.max_seqlen*num_neighbor]) + return out + + def erniesage_v3_aggregator(gw, feature, hidden_size, act, initializer, learning_rate, name): + msg = gw.send(copy_send, nfeat_list=[("h", feature)]) + neigh_feature = gw.recv(msg, ernie_recv) + neigh_feature = L.cast(L.unsqueeze(neigh_feature, [-1]), "int64") + + feature = L.unsqueeze(feature, [-1]) + cls = L.fill_constant_batch_size_like(feature, [-1, 1, 1], "int64", 1) + term_ids = L.concat([cls, feature[:, :-1], neigh_feature], 1) + term_ids.stop_gradient = True + return term_ids + return erniesage_v3_aggregator(gw, feature, hidden_size, act, initializer, learning_rate, name) + + def gnn_layers(self, graph_wrappers, feature): + features = [feature] + + initializer = None + fc_lr = self.config.lr / 0.001 + + for i in range(self.config.num_layers): + if i == self.config.num_layers - 1: + act = None + else: + act = "leaky_relu" + + feature = self.gnn_layer( + graph_wrappers[i], + feature, + self.config.hidden_size, + act, + initializer, + learning_rate=fc_lr, + name="%s_%s" % ("erniesage_v3", i)) + features.append(feature) + return features + + def take_final_feature(self, feature, index, name): + """take final feature""" + feat = L.gather(feature, index, overwrite=False) + + ernie_config = self.config.ernie_config + ernie = ErnieGraphModel( + src_ids=feat, + config=ernie_config, + slot_seqlen=self.config.max_seqlen) + feat = ernie.get_pooled_output() + fc_lr = self.config.lr / 0.001 + + if self.config.final_fc: + feat = L.fc(feat, + self.config.hidden_size, + param_attr=F.ParamAttr(name=name + '_w'), + bias_attr=F.ParamAttr(name=name + '_b')) + + if self.config.final_l2_norm: + feat = L.l2_normalize(feat, axis=1) + return feat diff --git a/examples/erniesage/models/erniesage_v1.py b/examples/erniesage/models/erniesage_v1.py deleted file mode 100644 index 696231a785ffecb8098c3379c7a7b0f4ee935e33..0000000000000000000000000000000000000000 --- a/examples/erniesage/models/erniesage_v1.py +++ /dev/null @@ -1,42 +0,0 @@ -import pgl -import paddle.fluid as F -import paddle.fluid.layers as L -from models.base import BaseNet, BaseGNNModel -from models.ernie_model.ernie import ErnieModel -from models.ernie_model.ernie import ErnieGraphModel -from models.ernie_model.ernie import ErnieConfig - -class ErnieSageV1(BaseNet): - - def build_inputs(self): - inputs = super(ErnieSageV1, self).build_inputs() - term_ids = L.data( - "term_ids", shape=[None, self.config.max_seqlen], dtype="int64", append_batch_size=False) - return inputs + [term_ids] - - def build_embedding(self, graph_wrappers, term_ids): - term_ids = L.unsqueeze(term_ids, [-1]) - ernie_config = self.config.ernie_config - ernie = ErnieModel( - src_ids=term_ids, - sentence_ids=L.zeros_like(term_ids), - task_ids=None, - config=ernie_config, - use_fp16=False, - name="student_") - feature = ernie.get_pooled_output() - return feature - - def __call__(self, graph_wrappers): - inputs = self.build_inputs() - feature = self.build_embedding(graph_wrappers, inputs[-1]) - features = self.gnn_layers(graph_wrappers, feature) - outputs = [self.take_final_feature(features[-1], i, "final_fc") for i in inputs[:-1]] - src_real_index = L.gather(graph_wrappers[0].node_feat['index'], inputs[0]) - outputs.append(src_real_index) - return inputs, outputs - - -class ErnieSageModelV1(BaseGNNModel): - def gen_net_fn(self, config): - return ErnieSageV1(config) diff --git a/examples/erniesage/models/erniesage_v2.py b/examples/erniesage/models/erniesage_v2.py deleted file mode 100644 index 7ad9a26caf87d7ed79fe55584f21fe8d4f46dd2d..0000000000000000000000000000000000000000 --- a/examples/erniesage/models/erniesage_v2.py +++ /dev/null @@ -1,135 +0,0 @@ -import pgl -import paddle.fluid as F -import paddle.fluid.layers as L -from models.base import BaseNet, BaseGNNModel -from models.ernie_model.ernie import ErnieModel - - -class ErnieSageV2(BaseNet): - - def build_inputs(self): - inputs = super(ErnieSageV2, self).build_inputs() - term_ids = L.data( - "term_ids", shape=[None, self.config.max_seqlen], dtype="int64", append_batch_size=False) - return inputs + [term_ids] - - def gnn_layer(self, gw, feature, hidden_size, act, initializer, learning_rate, name): - def build_position_ids(src_ids, dst_ids): - src_shape = L.shape(src_ids) - src_batch = src_shape[0] - src_seqlen = src_shape[1] - dst_seqlen = src_seqlen - 1 # without cls - - src_position_ids = L.reshape( - L.range( - 0, src_seqlen, 1, dtype='int32'), [1, src_seqlen, 1], - inplace=True) # [1, slot_seqlen, 1] - src_position_ids = L.expand(src_position_ids, [src_batch, 1, 1]) # [B, slot_seqlen * num_b, 1] - zero = L.fill_constant([1], dtype='int64', value=0) - input_mask = L.cast(L.equal(src_ids, zero), "int32") # assume pad id == 0 [B, slot_seqlen, 1] - src_pad_len = L.reduce_sum(input_mask, 1, keep_dim=True) # [B, 1, 1] - - dst_position_ids = L.reshape( - L.range( - src_seqlen, src_seqlen+dst_seqlen, 1, dtype='int32'), [1, dst_seqlen, 1], - inplace=True) # [1, slot_seqlen, 1] - dst_position_ids = L.expand(dst_position_ids, [src_batch, 1, 1]) # [B, slot_seqlen, 1] - dst_position_ids = dst_position_ids - src_pad_len # [B, slot_seqlen, 1] - - position_ids = L.concat([src_position_ids, dst_position_ids], 1) - position_ids = L.cast(position_ids, 'int64') - position_ids.stop_gradient = True - return position_ids - - - def ernie_send(src_feat, dst_feat, edge_feat): - """doc""" - # input_ids - cls = L.fill_constant_batch_size_like(src_feat["term_ids"], [-1, 1, 1], "int64", 1) - src_ids = L.concat([cls, src_feat["term_ids"]], 1) - dst_ids = dst_feat["term_ids"] - - # sent_ids - sent_ids = L.concat([L.zeros_like(src_ids), L.ones_like(dst_ids)], 1) - term_ids = L.concat([src_ids, dst_ids], 1) - - # position_ids - position_ids = build_position_ids(src_ids, dst_ids) - - term_ids.stop_gradient = True - sent_ids.stop_gradient = True - ernie = ErnieModel( - term_ids, sent_ids, position_ids, - config=self.config.ernie_config) - feature = ernie.get_pooled_output() - return feature - - def erniesage_v2_aggregator(gw, feature, hidden_size, act, initializer, learning_rate, name): - feature = L.unsqueeze(feature, [-1]) - msg = gw.send(ernie_send, nfeat_list=[("term_ids", feature)]) - neigh_feature = gw.recv(msg, lambda feat: F.layers.sequence_pool(feat, pool_type="sum")) - - term_ids = feature - cls = L.fill_constant_batch_size_like(term_ids, [-1, 1, 1], "int64", 1) - term_ids = L.concat([cls, term_ids], 1) - term_ids.stop_gradient = True - ernie = ErnieModel( - term_ids, L.zeros_like(term_ids), - config=self.config.ernie_config) - self_feature = ernie.get_pooled_output() - - self_feature = L.fc(self_feature, - hidden_size, - act=act, - param_attr=F.ParamAttr(name=name + "_l.w_0", - learning_rate=learning_rate), - bias_attr=name+"_l.b_0" - ) - neigh_feature = L.fc(neigh_feature, - hidden_size, - act=act, - param_attr=F.ParamAttr(name=name + "_r.w_0", - learning_rate=learning_rate), - bias_attr=name+"_r.b_0" - ) - output = L.concat([self_feature, neigh_feature], axis=1) - output = L.l2_normalize(output, axis=1) - return output - return erniesage_v2_aggregator(gw, feature, hidden_size, act, initializer, learning_rate, name) - - def gnn_layers(self, graph_wrappers, feature): - features = [feature] - - initializer = None - fc_lr = self.config.lr / 0.001 - - for i in range(self.config.num_layers): - if i == self.config.num_layers - 1: - act = None - else: - act = "leaky_relu" - - feature = self.gnn_layer( - graph_wrappers[i], - feature, - self.config.hidden_size, - act, - initializer, - learning_rate=fc_lr, - name="%s_%s" % ("erniesage_v2", i)) - features.append(feature) - return features - - def __call__(self, graph_wrappers): - inputs = self.build_inputs() - feature = inputs[-1] - features = self.gnn_layers(graph_wrappers, feature) - outputs = [self.take_final_feature(features[-1], i, "final_fc") for i in inputs[:-1]] - src_real_index = L.gather(graph_wrappers[0].node_feat['index'], inputs[0]) - outputs.append(src_real_index) - return inputs, outputs - - -class ErnieSageModelV2(BaseGNNModel): - def gen_net_fn(self, config): - return ErnieSageV2(config) diff --git a/examples/erniesage/models/erniesage_v3.py b/examples/erniesage/models/erniesage_v3.py deleted file mode 100644 index 44c3ae8b967df10af4c6a74425e3a43490eab25e..0000000000000000000000000000000000000000 --- a/examples/erniesage/models/erniesage_v3.py +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import pgl -import paddle.fluid as F -import paddle.fluid.layers as L - -from models.base import BaseNet, BaseGNNModel -from models.ernie_model.ernie import ErnieModel -from models.ernie_model.ernie import ErnieGraphModel -from models.message_passing import copy_send - - -class ErnieSageV3(BaseNet): - def __init__(self, config): - super(ErnieSageV3, self).__init__(config) - - def build_inputs(self): - inputs = super(ErnieSageV3, self).build_inputs() - term_ids = L.data( - "term_ids", shape=[None, self.config.max_seqlen], dtype="int64", append_batch_size=False) - return inputs + [term_ids] - - def gnn_layer(self, gw, feature, hidden_size, act, initializer, learning_rate, name): - def ernie_recv(feat): - """doc""" - num_neighbor = self.config.samples[0] - pad_value = L.zeros([1], "int64") - out, _ = L.sequence_pad(feat, pad_value=pad_value, maxlen=num_neighbor) - out = L.reshape(out, [0, self.config.max_seqlen*num_neighbor]) - return out - - def erniesage_v3_aggregator(gw, feature, hidden_size, act, initializer, learning_rate, name): - msg = gw.send(copy_send, nfeat_list=[("h", feature)]) - neigh_feature = gw.recv(msg, ernie_recv) - neigh_feature = L.cast(L.unsqueeze(neigh_feature, [-1]), "int64") - - feature = L.unsqueeze(feature, [-1]) - cls = L.fill_constant_batch_size_like(feature, [-1, 1, 1], "int64", 1) - term_ids = L.concat([cls, feature[:, :-1], neigh_feature], 1) - term_ids.stop_gradient = True - return term_ids - return erniesage_v3_aggregator(gw, feature, hidden_size, act, initializer, learning_rate, name) - - def gnn_layers(self, graph_wrappers, feature): - features = [feature] - - initializer = None - fc_lr = self.config.lr / 0.001 - - for i in range(self.config.num_layers): - if i == self.config.num_layers - 1: - act = None - else: - act = "leaky_relu" - - feature = self.gnn_layer( - graph_wrappers[i], - feature, - self.config.hidden_size, - act, - initializer, - learning_rate=fc_lr, - name="%s_%s" % ("erniesage_v3", i)) - features.append(feature) - return features - - def take_final_feature(self, feature, index, name): - """take final feature""" - feat = L.gather(feature, index, overwrite=False) - - ernie_config = self.config.ernie_config - ernie = ErnieGraphModel( - src_ids=feat, - config=ernie_config, - slot_seqlen=self.config.max_seqlen) - feat = ernie.get_pooled_output() - fc_lr = self.config.lr / 0.001 - # feat = L.fc(feat, - # self.config.hidden_size, - # act="relu", - # param_attr=F.ParamAttr(name=name + "_l", - # learning_rate=fc_lr), - # ) - #feat = L.l2_normalize(feat, axis=1) - - if self.config.final_fc: - feat = L.fc(feat, - self.config.hidden_size, - param_attr=F.ParamAttr(name=name + '_w'), - bias_attr=F.ParamAttr(name=name + '_b')) - - if self.config.final_l2_norm: - feat = L.l2_normalize(feat, axis=1) - return feat - - def __call__(self, graph_wrappers): - inputs = self.build_inputs() - feature = inputs[-1] - features = self.gnn_layers(graph_wrappers, feature) - outputs = [self.take_final_feature(features[-1], i, "final_fc") for i in inputs[:-1]] - src_real_index = L.gather(graph_wrappers[0].node_feat['index'], inputs[0]) - outputs.append(src_real_index) - return inputs, outputs - - -class ErnieSageModelV3(BaseGNNModel): - def gen_net_fn(self, config): - return ErnieSageV3(config) diff --git a/examples/erniesage/models/loss.py b/examples/erniesage/models/loss.py new file mode 100644 index 0000000000000000000000000000000000000000..ecda2d2f1bf20a2903fcb99b3d93528913da8c62 --- /dev/null +++ b/examples/erniesage/models/loss.py @@ -0,0 +1,90 @@ +# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import time +import glob +import os + +import numpy as np + +import pgl +import paddle.fluid as F +import paddle.fluid.layers as L + + +class Loss(object): + + def __init__(self, config): + self.config = config + + @classmethod + def factory(cls, config): + loss_type = config.loss_type + if loss_type == "hinge": + return HingeLoss(config) + elif loss_type == "global_hinge": + return GlobalHingeLoss(config) + elif loss_type == "softmax_with_cross_entropy": + return lambda logits, label: L.reduce_mean(L.softmax_with_cross_entropy(logits, label)) + else: + raise ValueError + + +class HingeLoss(Loss): + + def __call__(self, user_feat, pos_item_feat, neg_item_feat): + pos = L.reduce_sum(user_feat * pos_item_feat, -1, keep_dim=True) # [B, 1] + neg = L.matmul(user_feat, neg_item_feat, transpose_y=True) # [B, B] + loss = L.reduce_mean(L.relu(neg - pos + self.config.margin)) + return loss + + +def all_gather(X): + trainer_id = int(os.getenv("PADDLE_TRAINER_ID", "0")) + trainer_num = int(os.getenv("PADDLE_TRAINERS_NUM", "0")) + if trainer_num == 1: + copy_X = X * 1 + copy_X.stop_gradient=True + return copy_X + + Xs = [] + for i in range(trainer_num): + copy_X = X * 1 + copy_X = L.collective._broadcast(copy_X, i, True) + copy_X.stop_gradient=True + Xs.append(copy_X) + + if len(Xs) > 1: + Xs=L.concat(Xs, 0) + Xs.stop_gradient=True + else: + Xs = Xs[0] + return Xs + + +class GlobalHingeLoss(Loss): + + def __call__(self, user_feat, pos_item_feat, neg_item_feat): + pos = L.reduce_sum(user_feat * pos_item_feat, -1, keep_dim=True) # [B, 1] + all_pos = all_gather(pos) # [B * n, 1] + all_neg_item_feat = all_gather(neg_item_feat) # [B * n, 1] + all_user_feat = all_gather(user_feat) # [B * n, 1] + + neg1 = L.matmul(user_feat, all_neg_item_feat, transpose_y=True) # [B, B * n] + neg2 = L.matmul(all_user_feat, neg_item_feat, transpose_y=True) # [B *n, B] + + loss1 = L.reduce_mean(L.relu(neg1 - pos + self.config.margin)) + loss2 = L.reduce_mean(L.relu(neg2 - all_pos + self.config.margin)) + + loss = loss1 + loss2 + return loss diff --git a/examples/erniesage/models/model.py b/examples/erniesage/models/model.py new file mode 100644 index 0000000000000000000000000000000000000000..8e0cb60cf84aa3ae4765b737d66a3b285ba9bf29 --- /dev/null +++ b/examples/erniesage/models/model.py @@ -0,0 +1,111 @@ +import numpy as np +import pgl +import paddle.fluid as F +import paddle.fluid.layers as L +from models.encoder import Encoder +from models.loss import Loss + +class BaseModel(object): + + def __init__(self, config): + self.config = config + datas, graph_wrappers, loss, outputs = self.forward() + self.build(datas, graph_wrappers, loss, outputs) + + def forward(self): + raise NotImplementedError + + def build(self, datas, graph_wrappers, loss, outputs): + self.datas = datas + self.graph_wrappers = graph_wrappers + self.loss = loss + self.outputs = outputs + self.build_feed_list() + self.build_data_loader() + + def build_feed_list(self): + self.feed_list = [] + for i in range(len(self.graph_wrappers)): + self.feed_list.extend(self.graph_wrappers[i].holder_list) + self.feed_list.extend(self.datas) + + def build_data_loader(self): + self.data_loader = F.io.PyReader( + feed_list=self.feed_list, capacity=20, use_double_buffer=True, iterable=True) + + +class LinkPredictModel(BaseModel): + + def forward(self): + # datas + user_index = L.data( + "user_index", shape=[None], dtype="int64", append_batch_size=False) + pos_item_index = L.data( + "pos_item_index", shape=[None], dtype="int64", append_batch_size=False) + neg_item_index = L.data( + "neg_item_index", shape=[None], dtype="int64", append_batch_size=False) + user_real_index = L.data( + "user_real_index", shape=[None], dtype="int64", append_batch_size=False) + pos_item_real_index = L.data( + "pos_item_real_index", shape=[None], dtype="int64", append_batch_size=False) + datas = [user_index, pos_item_index, neg_item_index, user_real_index, pos_item_real_index] + + # graph_wrappers + graph_wrappers = [] + node_feature_info, edge_feature_info = [], [] + node_feature_info.append(('index', [None], np.dtype('int64'))) + node_feature_info.append(('term_ids', [None, None], np.dtype('int64'))) + for i in range(self.config.num_layers): + graph_wrappers.append( + pgl.graph_wrapper.GraphWrapper( + "layer_%s" % i, node_feat=node_feature_info, edge_feat=edge_feature_info)) + + # encoder model + encoder = Encoder.factory(self.config) + outputs = encoder(graph_wrappers, [user_index, pos_item_index, neg_item_index]) + user_feat, pos_item_feat, neg_item_feat = outputs + + # loss + if self.config.neg_type == "batch_neg": + neg_item_feat = pos_item_feat + loss_func = Loss.factory(self.config) + loss = loss_func(user_feat, pos_item_feat, neg_item_feat) + + # set datas, graph_wrappers, loss, outputs + return datas, graph_wrappers, loss, outputs + [user_real_index, pos_item_real_index] + + +class NodeClassificationModel(BaseModel): + + def forward(self): + # inputs + node_index = L.data( + "node_index", shape=[None], dtype="int64", append_batch_size=False) + node_real_index = L.data( + "node_real_index", shape=[None], dtype="int64", append_batch_size=False) + label = L.data( + "label", shape=[None], dtype="int64", append_batch_size=False) + datas = [node_index, node_real_index, label] + + # graph_wrappers + graph_wrappers = [] + node_feature_info = [] + node_feature_info.append(('index', [None], np.dtype('int64'))) + node_feature_info.append(('term_ids', [None, None], np.dtype('int64'))) + for i in range(self.config.num_layers): + graph_wrappers.append( + pgl.graph_wrapper.GraphWrapper( + "layer_%s" % i, node_feat=node_feature_info)) + + # encoder model + encoder = Encoder.factory(self.config) + outputs = encoder(graph_wrappers, [node_index]) + feat = outputs[0] + logits = L.fc(feat, self.config.num_label) + + # loss + label = L.reshape(label, [-1, 1]) + loss_func = Loss.factory(self.config) + loss = loss_func(logits, label) + + return datas, graph_wrappers, loss, outputs + [node_real_index, logits] diff --git a/examples/erniesage/models/model_factory.py b/examples/erniesage/models/model_factory.py deleted file mode 100644 index 0f69bb1f6932a219f4a41faee9cf5bf6c3f947a8..0000000000000000000000000000000000000000 --- a/examples/erniesage/models/model_factory.py +++ /dev/null @@ -1,24 +0,0 @@ -from models.base import BaseGNNModel -from models.ernie import ErnieModel -from models.erniesage_v1 import ErnieSageModelV1 -from models.erniesage_v2 import ErnieSageModelV2 -from models.erniesage_v3 import ErnieSageModelV3 - -class Model(object): - @classmethod - def factory(cls, config): - name = config.model_type - if name == "BaseGNNModel": - return BaseGNNModel(config) - if name == "ErnieModel": - return ErnieModel(config) - if name == "ErnieSageModelV1": - return ErnieSageModelV1(config) - if name == "ErnieSageModelV2": - return ErnieSageModelV2(config) - if name == "ErnieSageModelV3": - return ErnieSageModelV3(config) - else: - raise ValueError - - diff --git a/examples/erniesage/node_classification_infer.py b/examples/erniesage/node_classification_infer.py new file mode 100644 index 0000000000000000000000000000000000000000..2f74b408aed0eca255544a6b5f5dbd86fd1b7793 --- /dev/null +++ b/examples/erniesage/node_classification_infer.py @@ -0,0 +1,188 @@ +# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from __future__ import unicode_literals +import argparse +import pickle +import time +import glob +import os +import io +import traceback +import pickle as pkl +role = os.getenv("TRAINING_ROLE", "TRAINER") + +import numpy as np +import yaml +from easydict import EasyDict as edict +import pgl +from pgl.utils.logger import log +from pgl.utils import paddle_helper +import paddle +import paddle.fluid as F + +from models.model import NodeClassificationModel +from dataset.graph_reader import NodeClassificationGenerator + + +class PredictData(object): + def __init__(self, num_nodes): + trainer_id = int(os.getenv("PADDLE_TRAINER_ID", "0")) + trainer_count = int(os.getenv("PADDLE_TRAINERS_NUM", "1")) + train_usr = np.arange(trainer_id, num_nodes, trainer_count) + #self.data = (train_usr, train_usr) + self.data = train_usr + + def __getitem__(self, index): + return [self.data[index], self.data[index]] + +def tostr(data_array): + return " ".join(["%.5lf" % d for d in data_array]) + +def run_predict(py_reader, + exe, + program, + model_dict, + log_per_step=1, + args=None): + + id2str = io.open(os.path.join(args.graph_work_path, "terms.txt"), encoding=args.encoding).readlines() + + trainer_id = int(os.getenv("PADDLE_TRAINER_ID", "0")) + trainer_count = int(os.getenv("PADDLE_TRAINERS_NUM", "1")) + if not os.path.exists(args.output_path): + os.mkdir(args.output_path) + + fout = io.open("%s/part-%s" % (args.output_path, trainer_id), "w", encoding="utf8") + batch = 0 + + for batch_feed_dict in py_reader(): + batch += 1 + _, batch_node_real_index, batch_logits = exe.run( + program, + feed=batch_feed_dict, + fetch_list=model_dict.outputs) + + if batch % log_per_step == 0: + log.info("Predict %s finished" % batch) + + for idx, logits in zip(batch_node_real_index, batch_logits): + if args.input_type == "text": + text = id2str[int(idx)].strip("\n").split("\t")[-1] + #prediction = np.argmax(logits) + prediction = logits[1] + line = "{}\t{}\n".format(text, prediction) + fout.write(line) + + fout.close() + +def _warmstart(exe, program, path='params'): + def _existed_persitables(var): + #if not isinstance(var, fluid.framework.Parameter): + # return False + if not F.io.is_persistable(var): + return False + param_path = os.path.join(path, var.name) + log.info("Loading parameter: {} persistable: {} exists: {}".format( + param_path, + F.io.is_persistable(var), + os.path.exists(param_path), + )) + return os.path.exists(param_path) + F.io.load_vars( + exe, + path, + main_program=program, + predicate=_existed_persitables + ) + +def main(config): + model = NodeClassificationModel(config) + + if config.learner_type == "cpu": + place = F.CPUPlace() + elif config.learner_type == "gpu": + gpu_id = int(os.getenv("FLAGS_selected_gpus", "0")) + place = F.CUDAPlace(gpu_id) + else: + raise ValueError + + exe = F.Executor(place) + + val_program = F.default_main_program().clone(for_test=True) + exe.run(F.default_startup_program()) + _warmstart(exe, F.default_startup_program(), path=config.infer_model) + + num_threads = int(os.getenv("CPU_NUM", 1)) + trainer_id = int(os.getenv("PADDLE_TRAINER_ID", 0)) + + exec_strategy = F.ExecutionStrategy() + exec_strategy.num_threads = num_threads + build_strategy = F.BuildStrategy() + build_strategy.enable_inplace = True + build_strategy.memory_optimize = True + build_strategy.remove_unnecessary_lock = False + build_strategy.memory_optimize = False + + if num_threads > 1: + build_strategy.reduce_strategy = F.BuildStrategy.ReduceStrategy.Reduce + + val_compiled_prog = F.compiler.CompiledProgram( + val_program).with_data_parallel( + build_strategy=build_strategy, + exec_strategy=exec_strategy) + + num_nodes = int(np.load(os.path.join(config.graph_work_path, "num_nodes.npy"))) + + predict_data = PredictData(num_nodes) + + predict_iter = NodeClassificationGenerator( + graph_wrappers=model.graph_wrappers, + batch_size=config.infer_batch_size, + data=predict_data, + samples=config.samples, + num_workers=config.sample_workers, + feed_name_list=[var.name for var in model.feed_list], + use_pyreader=config.use_pyreader, + phase="predict", + graph_data_path=config.graph_work_path, + shuffle=False) + + if config.learner_type == "cpu": + model.data_loader.decorate_batch_generator( + predict_iter, places=F.cpu_places()) + elif config.learner_type == "gpu": + gpu_id = int(os.getenv("FLAGS_selected_gpus", "0")) + place = F.CUDAPlace(gpu_id) + model.data_loader.decorate_batch_generator( + predict_iter, places=place) + else: + raise ValueError + + run_predict(model.data_loader, + program=val_compiled_prog, + exe=exe, + model_dict=model, + args=config) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='main') + parser.add_argument("--conf", type=str, default="./config.yaml") + args = parser.parse_args() + config = edict(yaml.load(open(args.conf), Loader=yaml.FullLoader)) + print(config) + main(config) diff --git a/examples/erniesage/node_classification_train.py b/examples/erniesage/node_classification_train.py new file mode 100644 index 0000000000000000000000000000000000000000..a49797f702cb5de85c48d75691ab7f8d1d891f7c --- /dev/null +++ b/examples/erniesage/node_classification_train.py @@ -0,0 +1,90 @@ +# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os +import argparse +import traceback + +import yaml +import numpy as np +from easydict import EasyDict as edict +from pgl.utils.logger import log +from pgl.utils import paddle_helper + +from learner import Learner +from models.model import LinkPredictModel +from models.model import NodeClassificationModel +from dataset.graph_reader import NodeClassificationGenerator + + +class TrainData(object): + def __init__(self, graph_work_path): + trainer_id = int(os.getenv("PADDLE_TRAINER_ID", "0")) + trainer_count = int(os.getenv("PADDLE_TRAINERS_NUM", "1")) + log.info("trainer_id: %s, trainer_count: %s." % (trainer_id, trainer_count)) + + edges = np.load(os.path.join(graph_work_path, "train_data.npy"), allow_pickle=True) + # edges is bidirectional. + train_node = edges[trainer_id::trainer_count, 0] + train_label = edges[trainer_id::trainer_count, 1] + returns = { + "train_data": [train_node, train_label] + } + + log.info("Load train_data done.") + self.data = returns + + def __getitem__(self, index): + return [data[index] for data in self.data["train_data"]] + + def __len__(self): + return len(self.data["train_data"][0]) + + +def main(config): + # Select Model + model = NodeClassificationModel(config) + + # Build Train Edges + data = TrainData(config.graph_work_path) + + # Build Train Data + train_iter = NodeClassificationGenerator( + graph_wrappers=model.graph_wrappers, + batch_size=config.batch_size, + data=data, + samples=config.samples, + num_workers=config.sample_workers, + feed_name_list=[var.name for var in model.feed_list], + use_pyreader=config.use_pyreader, + phase="train", + graph_data_path=config.graph_work_path, + shuffle=True, + neg_type=config.neg_type) + + log.info("build graph reader done.") + + learner = Learner.factory(config.learner_type) + learner.build(model, train_iter, config) + + learner.start() + learner.stop() + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description='main') + parser.add_argument("--conf", type=str, default="./config.yaml") + args = parser.parse_args() + config = edict(yaml.load(open(args.conf), Loader=yaml.FullLoader)) + print(config) + main(config) diff --git a/examples/erniesage/preprocessing/dump_graph.py b/examples/erniesage/preprocessing/dump_graph.py index d1558b39a9f95424140b9661732cfa27dccd730a..cd38c9ac5266ba00b34e2870992265c2cac79165 100644 --- a/examples/erniesage/preprocessing/dump_graph.py +++ b/examples/erniesage/preprocessing/dump_graph.py @@ -44,19 +44,33 @@ def term2id(string, tokenizer, max_seqlen): ids = ids + [0] * (max_seqlen - len(ids)) return ids +def load_graph(args, str2id, term_file, terms, item_distribution): + edges = [] + with io.open(args.graphpath, encoding=args.encoding) as f: + for idx, line in enumerate(f): + if idx % 100000 == 0: + log.info("%s readed %s lines" % (args.graphpath, idx)) + slots = [] + for col_idx, col in enumerate(line.strip("\n").split("\t")): + s = col[:args.max_seqlen] + if s not in str2id: + str2id[s] = len(str2id) + term_file.write(str(col_idx) + "\t" + col + "\n") + item_distribution.append(0) + slots.append(str2id[s]) -def dump_graph(args): - if not os.path.exists(args.outpath): - os.makedirs(args.outpath) - neg_samples = [] - str2id = dict() - term_file = io.open(os.path.join(args.outpath, "terms.txt"), "w", encoding=args.encoding) - terms = [] - count = 0 - item_distribution = [] + src = slots[0] + dst = slots[1] + edges.append((src, dst)) + edges.append((dst, src)) + item_distribution[dst] += 1 + edges = np.array(edges, dtype="int64") + return edges +def load_link_predict_train_data(args, str2id, term_file, terms, item_distribution): + train_data = [] + neg_samples = [] with io.open(args.inpath, encoding=args.encoding) as f: - edges = [] for idx, line in enumerate(f): if idx % 100000 == 0: log.info("%s readed %s lines" % (args.inpath, idx)) @@ -64,24 +78,63 @@ def dump_graph(args): for col_idx, col in enumerate(line.strip("\n").split("\t")): s = col[:args.max_seqlen] if s not in str2id: - str2id[s] = count - count += 1 + str2id[s] = len(str2id) term_file.write(str(col_idx) + "\t" + col + "\n") item_distribution.append(0) - slots.append(str2id[s]) src = slots[0] dst = slots[1] neg_samples.append(slots[2:]) - edges.append((src, dst)) - edges.append((dst, src)) - item_distribution[dst] += 1 + train_data.append((src, dst)) + train_data = np.array(train_data, dtype="int64") + np.save(os.path.join(args.outpath, "train_data.npy"), train_data) + if len(neg_samples) != 0: + np.save(os.path.join(args.outpath, "neg_samples.npy"), np.array(neg_samples)) + +def load_node_classification_train_data(args, str2id, term_file, terms, item_distribution): + train_data = [] + neg_samples = [] + with io.open(args.inpath, encoding=args.encoding) as f: + for idx, line in enumerate(f): + if idx % 100000 == 0: + log.info("%s readed %s lines" % (args.inpath, idx)) + slots = [] + col_idx = 0 + slots = line.strip("\n").split("\t") + col = slots[0] + label = int(slots[1]) + text = col[:args.max_seqlen] + if text not in str2id: + str2id[text] = len(str2id) + term_file.write(str(col_idx) + "\t" + col + "\n") + item_distribution.append(0) + src = str2id[text] + train_data.append([src, label]) + train_data = np.array(train_data, dtype="int64") + np.save(os.path.join(args.outpath, "train_data.npy"), train_data) + +def dump_graph(args): + if not os.path.exists(args.outpath): + os.makedirs(args.outpath) + str2id = dict() + term_file = io.open(os.path.join(args.outpath, "terms.txt"), "w", encoding=args.encoding) + terms = [] + item_distribution = [] + + edges = load_graph(args, str2id, term_file, terms, item_distribution) + #load_train_data(args, str2id, term_file, terms, item_distribution) + if args.task == "link_predict": + load_link_predict_train_data(args, str2id, term_file, terms, item_distribution) + elif args.task == "node_classification": + load_node_classification_train_data(args, str2id, term_file, terms, item_distribution) + else: + raise ValueError + + term_file.close() + num_nodes = len(str2id) + str2id.clear() - term_file.close() - edges = np.array(edges, dtype="int64") - num_nodes = len(str2id) - str2id.clear() log.info("building graph...") graph = pgl.graph.Graph(num_nodes=num_nodes, edges=edges) indegree = graph.indegree() @@ -96,12 +149,11 @@ def dump_graph(args): alias, events = alias_sample_build_table(distribution) np.save(os.path.join(args.outpath, "alias.npy"), alias) np.save(os.path.join(args.outpath, "events.npy"), events) - np.save(os.path.join(args.outpath, "neg_samples.npy"), np.array(neg_samples)) log.info("End Build Graph") def dump_node_feat(args): log.info("Dump node feat starting...") - id2str = [line.strip("\n").split("\t")[1] for line in io.open(os.path.join(args.outpath, "terms.txt"), encoding=args.encoding)] + id2str = [line.strip("\n").split("\t")[-1] for line in io.open(os.path.join(args.outpath, "terms.txt"), encoding=args.encoding)] pool = multiprocessing.Pool() tokenizer = FullTokenizer(args.vocab_file) term_ids = pool.map(partial(term2id, tokenizer=tokenizer, max_seqlen=args.max_seqlen), id2str) @@ -112,9 +164,11 @@ def dump_node_feat(args): if __name__ == "__main__": parser = argparse.ArgumentParser(description='main') parser.add_argument("-i", "--inpath", type=str, default=None) + parser.add_argument("-g", "--graphpath", type=str, default=None) parser.add_argument("-l", "--max_seqlen", type=int, default=30) parser.add_argument("--vocab_file", type=str, default="./vocab.txt") parser.add_argument("--encoding", type=str, default="utf8") + parser.add_argument("--task", type=str, default="link_predict", choices=["link_predict", "node_classification"]) parser.add_argument("-o", "--outpath", type=str, default=None) args = parser.parse_args() dump_graph(args) diff --git a/examples/erniesage/run_link_predict.sh b/examples/erniesage/run_link_predict.sh new file mode 100644 index 0000000000000000000000000000000000000000..31de232a3fed1149040ebd18a54a2a07eff21a92 --- /dev/null +++ b/examples/erniesage/run_link_predict.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +set -x +config=${1:-"./config.yaml"} +unset http_proxy https_proxy + +function parse_yaml { + local prefix=$2 + local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\):|\1|" \ + -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $1 | + awk -F$fs '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i $BASE/pserver.$i.log & + echo $! >> job_id + done + sleep 3s + for((j=0;j<${PADDLE_TRAINERS_NUM};j++)) + do + echo "start ps work: ${j}" + TRAINING_ROLE="TRAINER" PADDLE_TRAINER_ID=${j} python ./link_predict_train.py --conf $config + TRAINING_ROLE="TRAINER" PADDLE_TRAINER_ID=${j} python ./link_predict_infer.py --conf $config + done +} + +collective_local_train(){ + echo `which python` + python -m paddle.distributed.launch link_predict_train.py --conf $config + python -m paddle.distributed.launch link_predict_infer.py --conf $config +} + +eval $(parse_yaml $config) + +python ./preprocessing/dump_graph.py -i $train_data -g $graph_data -o $graph_work_path \ + --encoding $encoding -l $max_seqlen --vocab_file $ernie_vocab_file --task $task + +if [[ $learner_type == "cpu" ]];then + transpiler_local_train +fi +if [[ $learner_type == "gpu" ]];then + collective_local_train +fi diff --git a/examples/erniesage/local_run.sh b/examples/erniesage/run_node_classification.sh similarity index 83% rename from examples/erniesage/local_run.sh rename to examples/erniesage/run_node_classification.sh index 6a11daf87014458228cad6d32dd8f87e5bb342a8..c3d99c2a7daf6e1d8dd77601d8b6bc58114f439d 100644 --- a/examples/erniesage/local_run.sh +++ b/examples/erniesage/run_node_classification.sh @@ -51,13 +51,14 @@ transpiler_local_train(){ collective_local_train(){ echo `which python` - python -m paddle.distributed.launch train.py --conf $config - python -m paddle.distributed.launch infer.py --conf $config + python -m paddle.distributed.launch node_classification_train.py --conf $config + python -m paddle.distributed.launch node_classification_infer.py --conf $config } eval $(parse_yaml $config) -python ./preprocessing/dump_graph.py -i $input_data -o $graph_path --encoding $encoding -l $max_seqlen --vocab_file $ernie_vocab_file +python ./preprocessing/dump_graph.py -i $train_data -g $graph_data -o $graph_work_path \ + --encoding $encoding -l $max_seqlen --vocab_file $ernie_vocab_file --task $task if [[ $learner_type == "cpu" ]];then transpiler_local_train diff --git a/examples/stgcn/README.md b/examples/stgcn/README.md index a185210a1fff51dfceee12ec010eac164b2ed99f..ec3c8fd90690d071766054b042135a078ee353d7 100644 --- a/examples/stgcn/README.md +++ b/examples/stgcn/README.md @@ -23,7 +23,7 @@ You can make your customized dataset by the following format: For examples, use gpu to train STGCN on your dataset. ``` -python main.py --use_cuda --input_file dataset/input_csv --label_file dataset/output.csv --adj_mat_file dataset/W.csv --city_file dataset/city.csv +python main.py --use_cuda --input_file dataset/input.csv --label_file dataset/output.csv --adj_mat_file dataset/W.csv --city_file dataset/city.csv ``` #### Hyperparameters diff --git a/examples/stgcn/data_loader/data_utils.py b/examples/stgcn/data_loader/data_utils.py index f9c73c774d6b9b239fe8509024a52ee37a4890f9..c7e20864c77d275b21270ab0ed7c27af23a47471 100644 --- a/examples/stgcn/data_loader/data_utils.py +++ b/examples/stgcn/data_loader/data_utils.py @@ -167,9 +167,6 @@ def data_gen_mydata(input_file, label_file, n, n_his, n_pred, n_config): x = x.drop(columns=['date']) y = y.drop(columns=['date']) - x = x.drop(columns=['武汉']) - y = y.drop(columns=['武汉']) - # param n_val, n_test = n_config n_train = len(y) - n_val - n_test - 2 diff --git a/examples/stgcn/dataset/W.csv b/examples/stgcn/dataset/W.csv new file mode 100644 index 0000000000000000000000000000000000000000..6d349eb0d3bbb14b5ad7eb37dc893c19c4cb5285 --- /dev/null +++ b/examples/stgcn/dataset/W.csv @@ -0,0 +1,5 @@ +0,3409,2025,509,13098 +2404,0,2207,3654,9485 +21926,18619,0,955,1308 +20160,12493,170,0,1906 +611,572,1204,1066,0 diff --git a/examples/stgcn/dataset/city.csv b/examples/stgcn/dataset/city.csv new file mode 100644 index 0000000000000000000000000000000000000000..4f82c7e2957ce771d4a6ddbe99baa26d99dc74aa --- /dev/null +++ b/examples/stgcn/dataset/city.csv @@ -0,0 +1,7 @@ +num,city +0,A +1,B +2,C +3,D +4,E + diff --git a/examples/stgcn/dataset/input.csv b/examples/stgcn/dataset/input.csv new file mode 100644 index 0000000000000000000000000000000000000000..8fb14964399ed97e7a95d97cfd44156ff014dd1d --- /dev/null +++ b/examples/stgcn/dataset/input.csv @@ -0,0 +1,47 @@ +date,A,B,C,D,E +2327/1/1,178,3907,2907,1170,832 +2327/1/2,220,2720,2548,1370,1039 +2327/1/3,222,5065,4286,2051,1582 +2327/1/4,183,5291,4626,2096,1614 +2327/1/5,172,3916,3538,1726,1349 +2327/1/6,219,4079,4110,2044,1701 +2327/1/7,220,4707,4673,2589,2177 +2327/1/8,222,5306,5512,3015,2463 +2327/1/9,215,5762,5802,3184,2558 +2327/1/10,217,4977,4641,2659,2185 +2327/1/11,186,6849,6106,3092,2310 +2327/1/12,175,5953,4986,2521,1769 +2327/1/13,215,5270,4983,2559,1818 +2327/1/14,213,5304,5307,2516,1707 +2327/1/15,205,5499,5684,2659,1633 +2327/1/16,205,5811,6531,2920,1793 +2327/1/17,222,6397,7745,3159,2036 +2327/1/18,253,7759,9681,4011,2331 +2327/1/19,859,8791,8215,4507,2480 +2327/1/20,837,10348,9960,5655,3167 +2327/1/21,931,12782,13621,7107,4291 +2327/1/22,1048,15298,16222,8206,4730 +2327/1/23,835,16287,14803,6504,3679 +2327/1/24,635,4806,3970,1551,816 +2327/1/25,511,1028,1023,401,205 +2327/1/26,387,483,632,249,111 +2327/1/27,459,457,591,209,126 +2327/1/28,1073,513,707,234,176 +2327/1/29,1301,651,932,276,264 +2327/1/30,1502,757,1266,369,302 +2327/1/31,1823,972,1286,490,487 +2327/2/1,2219,1113,1594,579,548 +2327/2/2,2719,1345,2172,695,703 +2327/2/3,3563,1556,2517,931,823 +2327/2/4,4335,1824,2837,1095,928 +2327/2/5,5568,2343,3323,1244,1043 +2327/2/6,6070,2917,3420,1295,1054 +2327/2/7,7169,3278,3758,1516,1185 +2327/2/8,8284,3616,3982,1639,1333 +2327/2/9,9229,3799,4200,1726,1418 +2327/2/10,10425,3876,4334,1750,1449 +2327/2/11,11213,3920,4522,1818,1484 +2327/2/12,11653,4106,4831,1881,1512 +2327/2/13,20427,4343,5413,2537,1570 +2327/2/14,24164,4666,5914,2636,1607 +2327/2/15,22608,4901,5546,2812,1557 diff --git a/examples/stgcn/dataset/output.csv b/examples/stgcn/dataset/output.csv new file mode 100644 index 0000000000000000000000000000000000000000..aac7afc1f5e3c0124bb0d583eb33a8fc6249c23f --- /dev/null +++ b/examples/stgcn/dataset/output.csv @@ -0,0 +1,25 @@ +date,A,B,C,D,E +2327/1/24,70,22,0,2,0 +2327/1/25,77,4,52,2,1 +2327/1/26,46,29,58,23,7 +2327/1/27,80,45,32,14,28 +2327/1/28,892,73,59,24,34 +2327/1/29,315,101,111,30,61 +2327/1/30,356,125,172,50,32 +2327/1/31,378,142,77,70,123 +2327/2/1,576,87,153,66,61 +2327/2/2,894,121,276,46,94 +2327/2/3,1033,169,244,166,107 +2327/2/4,1242,202,176,114,84 +2327/2/5,1967,342,223,100,103 +2327/2/6,1766,424,162,88,52 +2327/2/7,1501,255,90,84,51 +2327/2/8,1985,172,144,56,69 +2327/2/9,1379,123,100,56,81 +2327/2/10,1920,105,111,48,31 +2327/2/11,1552,101,80,30,44 +2327/2/12,1104,109,66,35,25 +2327/2/13,13436,123,264,321,13 +2327/2/14,2997,135,129,16,10 +2327/2/15,1923,105,26,31,17 +2327/2/16,1548,87,6,12,16 diff --git a/examples/stgcn/main.py b/examples/stgcn/main.py index 26adb6a4e6f3c81b4e4e2d35e3f049d0d80f03f5..a2d3b11454a95b2a25ab6dd8157630ad9f050ffd 100644 --- a/examples/stgcn/main.py +++ b/examples/stgcn/main.py @@ -124,7 +124,7 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument('--n_route', type=int, default=74) + parser.add_argument('--n_route', type=int, default=5) parser.add_argument('--n_his', type=int, default=23) parser.add_argument('--n_pred', type=int, default=3) parser.add_argument('--batch_size', type=int, default=10) diff --git a/examples/xformer/README.md b/examples/xformer/README.md new file mode 100644 index 0000000000000000000000000000000000000000..616d0ad53e1dfe054732d052c4a97cfce5cb88c1 --- /dev/null +++ b/examples/xformer/README.md @@ -0,0 +1,31 @@ +# X-Transformer + +Models based on Transformers are wildly successful for a wide variety of Natural Language Processing (NLP) tasks and consequently are a mainstay of modern NLP research. Transformer is constituted of a self-attention and a feed-forward module. The self-attention mechanism allows each token in the input sequence to attend independently to every other token in the sequence. From the view of graph representation, the generalized attention mechanism can be described by a Undirected Complete Graph whose vertex is the token. So, the attention module can be implemented by a graph library, especially recently the efficient attention implementation, e.g. [BigBird](https://arxiv.org/abs/2007.14062) \ [LongFormer](https://arxiv.org/abs/2004.05150) \ [Sparse Transformer](https://arxiv.org/abs/1904.10509). + +We have showcased the [BigBird](https://arxiv.org/abs/2007.14062) implementation and tested the performence as show below, and the [LongFormer](https://arxiv.org/abs/2004.05150) \ [Sparse Transformer](https://arxiv.org/abs/1904.10509) can be easily implemented by revised the correspoding code. + + + +## Dependencies + +- [paddlepaddle >= 1.7](https://github.com/PaddlePaddle/paddle) +- [pgl 1.1](https://github.com/PaddlePaddle/PGL) + + +## Performance + +We have evaluate the implemented method on a summarization dataset CNN/DM. The experiment was conducted on two P40 GPU cards. + +| CNN/DM | BatchSize | R1 | R2 | R3 | speed(steps/s) | +| ------------------ | --------- | ----------------- | ----------------- | ----------------- | ------ | +| LEAD | - | 40.42 | 17.62 | 36.67 | - | +| Oracle | - | 52.59 | 31.24 | 48.87 | - | +| non-sparse, L=512 | 32 | 42.175 | 19.392 | 38.613 | 0.6359 | +| L=2048 | 10 | 41.334 | 18.369 | 37.752 | 0.8246 | +| L=1024 | 20 | 41.453 | 18.529 | 37.872 | 0.6432 | +| L=768 | 26 | 41.611 | 18.735 | 38.051 | 0.6517 | +| L=512 | 40 | 41.742 | 18.733 | 38.127 | 0.6213 | + +**\**** For this task, we warm up from ERNIE 2.0 en directly rather than pretrain the model for the additional position embedding, so the embedding for the position which is larger than 512 is used repeatedly from ERNIE 2.0. +This may cause score degradation. But in the future, we will test the pre-trained model. + diff --git a/examples/xformer/sparse_scaled_dot_product_attention.py b/examples/xformer/sparse_scaled_dot_product_attention.py new file mode 100644 index 0000000000000000000000000000000000000000..1df85ae4e0b2437365a9f49df3676c609f61b37c --- /dev/null +++ b/examples/xformer/sparse_scaled_dot_product_attention.py @@ -0,0 +1,183 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import paddle.fluid as fluid +import paddle.fluid.layers as L +import paddle.fluid.layers as layers +from pgl.utils import paddle_helper +import pgl + + +def masked_select(input, mask): + """masked_select + + Slice the value from given Mask + + Args: + input: Input tensor to be selected + + mask: A bool tensor for sliced. + + Return: + Part of inputs where mask is True. + """ + index = L.where(mask) + return L.gather(input, index, overwrite=False) + + +class BigBirdWrapper(pgl.graph_wrapper.BaseGraphWrapper): + """Implement of Big Bird by PGL graph wrapper """ + def __init__(self, input_mask): + super(BigBirdWrapper, self).__init__() + max_seqlen = L.shape(input_mask)[1] + input_mask = L.reshape(input_mask, [-1]) + num_nodes = L.shape(input_mask)[0] + src, dst = build_edges(num_nodes, input_mask, max_seqlen) + self._edges_src = src + self._edges_dst = dst + self._edges_src.stop_gradient=True + self._edges_dst.stop_gradient=True + self._num_nodes = num_nodes + self._num_edges = L.shape(self._edges_src)[0] + self._node_ids = L.range(0, self._num_nodes, step=1, dtype="int32") + self._edge_uniq_dst, _, uniq_count = L.unique_with_counts(self._edges_dst, dtype="int32") + self._edge_uniq_dst.stop_gradient=True + last = L.reduce_sum(uniq_count, keep_dim=True) + uniq_count = L.cumsum(uniq_count, exclusive=True) + self._edge_uniq_dst_count = L.concat([uniq_count, last]) + self._edge_uniq_dst_count.stop_gradient=True + + +def select_edges(src, dst, input_mask, num_nodes, max_seqlen): + src = fluid.layers.elementwise_max(src, num_nodes * 0) + dst = fluid.layers.elementwise_max(dst, num_nodes * 0) + src = fluid.layers.elementwise_min(src, num_nodes - 1) + dst = fluid.layers.elementwise_min(dst, num_nodes - 1) + + conditions = [] + conditions.append(L.gather(input_mask, src) > 0.5) + conditions.append(L.gather(input_mask, dst) > 0.5) + block_src = src / max_seqlen + block_dst = dst / max_seqlen + conditions.append(block_src == block_dst) + mask = None + for cond in conditions: + if mask is None: + mask = cond + else: + mask = L.logical_and(mask, cond) + + dst = masked_select(dst, mask) + src = masked_select(src, mask) + return src, dst + + +def uniq_edges(src, dst, num_nodes): + sorted_dst = L.cast(dst, dtype="int64") + sorted_src = L.cast(src, dtype="int64") + num_nodes = L.cast(num_nodes, dtype="int64") + edge_hash = sorted_dst * num_nodes + sorted_src + edge_hash, _ = L.argsort(edge_hash) + edge_hash, _ = L.unique(edge_hash, dtype="int64") + sorted_src = L.elementwise_mod(edge_hash, num_nodes) + sorted_dst = L.elementwise_div(edge_hash, num_nodes) + sorted_src = L.cast(sorted_src, dtype="int32") + sorted_dst = L.cast(sorted_dst, dtype="int32") + return sorted_src, sorted_dst + + +def build_edges(num_nodes, input_mask, max_seqlen): + edges = L.range(start=0, end=num_nodes, step=1, dtype="int32") + all_edges = [] + # Window + filter_func = lambda x, y: select_edges(x, y, input_mask, num_nodes, max_seqlen) + + all_edges.append(filter_func(edges - 1, edges)) # win-1 + all_edges.append(filter_func(edges + 1, edges)) # win-2 + all_edges.append(filter_func(edges, edges)) #self-loop + + # Global Assume [CLS] is the first token. + + # vertical cls-window attention + cls_position = edges / max_seqlen * max_seqlen + all_edges.append(filter_func(cls_position, edges)) + + # horizontal cls attention + all_edges.append(filter_func(edges, cls_position)) + + # Random + for i in range(2): + rand_edge = L.floor(L.uniform_random(min=0, max=1, shape=[num_nodes]) * L.cast(max_seqlen, dtype="float32")) + rand_edge = L.cast(rand_edge, dtype="int32") + cls_position + all_edges.append(filter_func(rand_edge, edges)) + + if len(all_edges) > 1: + src = L.concat([ s for s, d in all_edges], 0) + dst = L.concat([ d for s, d in all_edges], 0) + else: + src = all_edges[0][0] + dst = all_edges[0][1] + + # sort edges + sorted_src, sorted_dst = uniq_edges(src, dst, num_nodes) + return sorted_src, sorted_dst + + +def sparse_scaled_dot_product_attention(q, k, v, input_mask, dropout_rate, n_head, d_key, d_value): + def send_q_k_spmm(src_feat, dst_feat, edge_feat): + # q [ num_edges, n_head * dim] + # k [ num_edges, n_head * dim] + # v [ num_edges, n_head * dim] + _q = dst_feat["q"] + _k = src_feat["k"] + _v = src_feat["v"] + _q = L.reshape(_q, [-1, n_head, _q.shape[-1] // n_head]) + _k = L.reshape(_k, [-1, n_head, _k.shape[-1] // n_head]) + score = L.reduce_sum(_q * _k, -1) # [num_edge, n_head] + return { "score": score, "value": _v} + + def recv_score_v_spmm(msg): + score = msg["score"] + score = paddle_helper.sequence_softmax(score) + score = layers.dropout( + score, + dropout_prob=dropout_rate, + dropout_implementation="upscale_in_train", + is_test=False) + + score = L.reshape(score, [-1, n_head, 1]) + _v = msg["value"] + _new_v = L.reshape(_v, [-1, n_head, _v.shape[-1] // n_head]) + + _new_v = _new_v * score + + _new_v = L.reshape(_new_v, [-1, _v.shape[-1]]) + _new_v = L.lod_reset(_new_v, _v) + return L.sequence_pool(_new_v, "sum") + + graph_wrapper = BigBirdWrapper(input_mask) + old_v = v + + q = L.reshape(q, [-1, d_key * n_head]) + k = L.reshape(k, [-1, d_key * n_head]) + v = L.reshape(v, [-1, d_value * n_head]) + + q = L.scale(q, scale=d_key ** -0.5) + msg = graph_wrapper.send(send_q_k_spmm, nfeat_list=[("k", k), ("v", v), ("q", q)]) + out = graph_wrapper.recv(msg, recv_score_v_spmm) + out = L.reshape(out, [-1, L.shape(old_v)[1], d_value * n_head]) + return out, out + + diff --git a/examples/xformer/transformer_encoder_sparse.py b/examples/xformer/transformer_encoder_sparse.py new file mode 100644 index 0000000000000000000000000000000000000000..43345d8a050ef00acf6ce57c3eb7a7a9ed01ee0d --- /dev/null +++ b/examples/xformer/transformer_encoder_sparse.py @@ -0,0 +1,361 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from functools import partial + +import paddle.fluid as fluid +import paddle.fluid.layers as L +import paddle.fluid.layers as layers + + +from .sparse_scaled_dot_product_attention import sparse_scaled_dot_product_attention + +to_3d = lambda a: a # will change later +to_2d = lambda a: a + + +def multi_head_attention(queries, + keys, + values, + attn_bias, + d_key, + d_value, + d_model, + input_mask, + n_head=1, + dropout_rate=0., + cache=None, + param_initializer=None, + name='multi_head_att'): + """ + Multi-Head Attention. Note that attn_bias is added to the logit before + computing softmax activiation to mask certain selected positions so that + they will not considered in attention weights. + """ + keys = queries if keys is None else keys + values = keys if values is None else values + + def __compute_qkv(queries, keys, values, n_head, d_key, d_value): + """ + Add linear projection to queries, keys, and values. + """ + q = layers.fc(input=queries, + size=d_key * n_head, + num_flatten_dims=len(queries.shape) - 1, + param_attr=fluid.ParamAttr( + name=name + '_query_fc.w_0', + initializer=param_initializer), + bias_attr=name + '_query_fc.b_0') + k = layers.fc(input=keys, + size=d_key * n_head, + num_flatten_dims=len(keys.shape) - 1, + param_attr=fluid.ParamAttr( + name=name + '_key_fc.w_0', + initializer=param_initializer), + bias_attr=name + '_key_fc.b_0') + v = layers.fc(input=values, + size=d_value * n_head, + num_flatten_dims=len(values.shape) - 1, + param_attr=fluid.ParamAttr( + name=name + '_value_fc.w_0', + initializer=param_initializer), + bias_attr=name + '_value_fc.b_0') + return q, k, v + + def __split_heads(x, n_head): + """ + Reshape the last dimension of inpunt tensor x so that it becomes two + dimensions and then transpose. Specifically, input a tensor with shape + [bs, max_sequence_length, n_head * hidden_dim] then output a tensor + with shape [bs, n_head, max_sequence_length, hidden_dim]. + """ + hidden_size = x.shape[-1] + # The value 0 in shape attr means copying the corresponding dimension + # size of the input as the output dimension size. + reshaped = layers.reshape( + x=x, shape=[0, 0, n_head, hidden_size // n_head], inplace=True) + + # permuate the dimensions into: + # [batch_size, n_head, max_sequence_len, hidden_size_per_head] + return layers.transpose(x=reshaped, perm=[0, 2, 1, 3]) + + def __combine_heads(x): + """ + Transpose and then reshape the last two dimensions of inpunt tensor x + so that it becomes one dimension, which is reverse to __split_heads. + """ + if len(x.shape) == 3: return x + if len(x.shape) != 4: + raise ValueError("Input(x) should be a 4-D Tensor.") + trans_x = layers.transpose(x, perm=[0, 2, 1, 3]) + # The value 0 in shape attr means copying the corresponding dimension + # size of the input as the output dimension size. + #trans_x.desc.set_shape((-1, 1, n_head, d_value)) + return layers.reshape(x=trans_x, shape=[0, 0, d_model], inplace=True) + + q, k, v = __compute_qkv(queries, keys, values, n_head, d_key, d_value) + q = to_3d(q) + k = to_3d(k) + v = to_3d(v) + + if cache is not None: # use cache and concat time steps + # Since the inplace reshape in __split_heads changes the shape of k and + # v, which is the cache input for next time step, reshape the cache + # input from the previous time step first. + k = cache["k"] = layers.concat( + [layers.reshape( + cache["k"], shape=[0, 0, d_model]), k], axis=1) + v = cache["v"] = layers.concat( + [layers.reshape( + cache["v"], shape=[0, 0, d_model]), v], axis=1) + + out, _ = sparse_scaled_dot_product_attention(q, k, v, + input_mask, dropout_rate, n_head, d_key, d_value) + + out = to_2d(out) + + # Project back to the model size. + proj_out = layers.fc(input=out, + size=d_model, + num_flatten_dims=len(out.shape) - 1, + param_attr=fluid.ParamAttr( + name=name + '_output_fc.w_0', + initializer=param_initializer), + bias_attr=name + '_output_fc.b_0') + return proj_out, _ + + +def positionwise_feed_forward(x, + d_inner_hid, + d_hid, + dropout_rate, + hidden_act, + param_initializer=None, + name='ffn'): + """ + Position-wise Feed-Forward Networks. + This module consists of two linear transformations with a ReLU activation + in between, which is applied to each position separately and identically. + """ + hidden = layers.fc(input=x, + size=d_inner_hid, + num_flatten_dims=len(x.shape) - 1, + act=hidden_act, + param_attr=fluid.ParamAttr( + name=name + '_fc_0.w_0', + initializer=param_initializer), + bias_attr=name + '_fc_0.b_0') + if dropout_rate: + hidden = layers.dropout( + hidden, + dropout_prob=dropout_rate, + dropout_implementation="upscale_in_train", + is_test=False) + out = layers.fc(input=hidden, + size=d_hid, + num_flatten_dims=len(hidden.shape) - 1, + param_attr=fluid.ParamAttr( + name=name + '_fc_1.w_0', + initializer=param_initializer), + bias_attr=name + '_fc_1.b_0') + return out + + +def pre_post_process_layer(prev_out, + out, + process_cmd, + dropout_rate=0., + name=''): + """ + Add residual connection, layer normalization and droput to the out tensor + optionally according to the value of process_cmd. + This will be used before or after multi-head attention and position-wise + feed-forward networks. + """ + for cmd in process_cmd: + if cmd == "a": # add residual connection + out = out + prev_out if prev_out else out + elif cmd == "n": # add layer normalization + out_dtype = out.dtype + if out_dtype == fluid.core.VarDesc.VarType.FP16: + out = layers.cast(x=out, dtype="float32") + out = layers.layer_norm( + out, + begin_norm_axis=len(out.shape) - 1, + param_attr=fluid.ParamAttr( + name=name + '_layer_norm_scale', + initializer=fluid.initializer.Constant(1.)), + bias_attr=fluid.ParamAttr( + name=name + '_layer_norm_bias', + initializer=fluid.initializer.Constant(0.))) + if out_dtype == fluid.core.VarDesc.VarType.FP16: + out = layers.cast(x=out, dtype="float16") + elif cmd == "d": # add dropout + if dropout_rate: + out = layers.dropout( + out, + dropout_prob=dropout_rate, + dropout_implementation="upscale_in_train", + is_test=False) + return out + + +pre_process_layer = partial(pre_post_process_layer, None) +post_process_layer = pre_post_process_layer + + +def encoder_layer(enc_input, + input_mask, + attn_bias, + n_head, + d_key, + d_value, + d_model, + d_inner_hid, + prepostprocess_dropout, + attention_dropout, + relu_dropout, + hidden_act, + preprocess_cmd="n", + postprocess_cmd="da", + param_initializer=None, + name=''): + """The encoder layers that can be stacked to form a deep encoder. + This module consits of a multi-head (self) attention followed by + position-wise feed-forward networks and both the two components companied + with the post_process_layer to add residual connection, layer normalization + and droput. + """ + attn_output, ctx_multiheads_attn = multi_head_attention( + pre_process_layer( + enc_input, + preprocess_cmd, + prepostprocess_dropout, + name=name + '_pre_att'), + None, + None, + attn_bias, + d_key, + d_value, + d_model, + input_mask, + n_head, + attention_dropout, + param_initializer=param_initializer, + name=name + '_multi_head_att') + attn_output = post_process_layer( + enc_input, + attn_output, + postprocess_cmd, + prepostprocess_dropout, + name=name + '_post_att') + + ffd_output = positionwise_feed_forward( + pre_process_layer( + attn_output, + preprocess_cmd, + prepostprocess_dropout, + name=name + '_pre_ffn'), + d_inner_hid, + d_model, + relu_dropout, + hidden_act, + param_initializer=param_initializer, + name=name + '_ffn') + + ret = post_process_layer( + attn_output, + ffd_output, + postprocess_cmd, + prepostprocess_dropout, + name=name + '_post_ffn') + + return ret, ctx_multiheads_attn, ffd_output + + +def build_pad_idx(input_mask): + pad_idx = L.where(L.cast(L.squeeze(input_mask, [2]), 'bool')) + return pad_idx + + +def build_attn_bias(input_mask, n_head, dtype): + attn_bias = L.matmul( + input_mask, input_mask, transpose_y=True) # [batch, seq, seq] + attn_bias = (1. - attn_bias) * -10000. + attn_bias = L.stack([attn_bias] * n_head, 1) + if attn_bias.dtype != dtype: + attn_bias = L.cast(attn_bias, dtype) + return attn_bias + + +def encoder(enc_input, + input_mask, + n_layer, + n_head, + d_key, + d_value, + d_model, + d_inner_hid, + prepostprocess_dropout, + attention_dropout, + relu_dropout, + hidden_act, + preprocess_cmd="n", + postprocess_cmd="da", + param_initializer=None, + name=''): + """ + The encoder is composed of a stack of identical layers returned by calling + encoder_layer. + """ + + d_shape = L.shape(input_mask) + pad_idx = build_pad_idx(input_mask) + attn_bias = build_attn_bias(input_mask, n_head, enc_input.dtype) + + enc_input = to_2d(enc_input) + all_hidden = [] + all_attn = [] + all_ffn = [] + for i in range(n_layer): + enc_output, ctx_multiheads_attn, ffn_output = encoder_layer( + enc_input, + input_mask, + attn_bias, + n_head, + d_key, + d_value, + d_model, + d_inner_hid, + prepostprocess_dropout, + attention_dropout, + relu_dropout, + hidden_act, + preprocess_cmd, + postprocess_cmd, + param_initializer=param_initializer, + name=name + '_layer_' + str(i)) + all_hidden.append(enc_output) + all_attn.append(ctx_multiheads_attn) + all_ffn.append(ffn_output) + enc_input = enc_output + enc_output = pre_process_layer( + enc_output, + preprocess_cmd, + prepostprocess_dropout, + name="post_encoder") + enc_output = to_3d(enc_output) + return enc_output, all_hidden, all_attn, all_ffn + + diff --git a/ogb_examples/nodeproppred/ogbn-arxiv/dataloader/ogbn_arxiv_dataloader.py b/ogb_examples/nodeproppred/ogbn-arxiv/dataloader/ogbn_arxiv_dataloader.py index 48529c6a39f1bbf861765e21bed82fe0185dc27e..fc35df6fd6a96af6dc4cf6f12fc3565fd4f05cb7 100644 --- a/ogb_examples/nodeproppred/ogbn-arxiv/dataloader/ogbn_arxiv_dataloader.py +++ b/ogb_examples/nodeproppred/ogbn-arxiv/dataloader/ogbn_arxiv_dataloader.py @@ -24,7 +24,7 @@ import ssl ssl._create_default_https_context = ssl._create_unverified_context from pgl.contrib.ogb.nodeproppred.dataset_pgl import PglNodePropPredDataset -#from pgl.sample import graph_saint_random_walk_sample +from pgl.sample import graph_saint_random_walk_sample from ogb.nodeproppred import Evaluator import tqdm from collections import namedtuple @@ -78,10 +78,10 @@ def k_hop_sampler(graph, samples, batch_nodes): return subgraph, sub_node_index -#def graph_saint_randomwalk_sampler(graph, batch_nodes, max_depth=3): -# subgraph = graph_saint_random_walk_sample(graph, batch_nodes, max_depth) -# sub_node_index = subgraph.reindex_from_parrent_nodes(batch_nodes) -# return subgraph, sub_node_index +def graph_saint_randomwalk_sampler(graph, batch_nodes, max_depth=3): + subgraph = graph_saint_random_walk_sample(graph, batch_nodes, max_depth) + sub_node_index = subgraph.reindex_from_parrent_nodes(batch_nodes) + return subgraph, sub_node_index class ArxivDataGenerator(BaseDataGenerator): diff --git a/pgl/__init__.py b/pgl/__init__.py index 7543265d30492f8d1fe7a898f948166ae89001ea..e364540e8192d6dbebab72e1af552f00a4919c72 100644 --- a/pgl/__init__.py +++ b/pgl/__init__.py @@ -22,3 +22,4 @@ from pgl import heter_graph from pgl import heter_graph_wrapper from pgl import contrib from pgl import message_passing +from pgl import sample diff --git a/pgl/graph_kernel.pyx b/pgl/graph_kernel.pyx index 5e5f289725ae751c105d323207b38e1e7f612a3d..22aee9589cc49c2dd98c3f3912c5ff7c09298f15 100644 --- a/pgl/graph_kernel.pyx +++ b/pgl/graph_kernel.pyx @@ -321,3 +321,43 @@ def alias_sample_build_table(np.ndarray[np.float64_t, ndim=1] probs): if alias[l_i] < 1: smaller_num.push_back(l_i) return alias, events + +@cython.boundscheck(False) +@cython.wraparound(False) +def extract_edges_from_nodes( + np.ndarray[np.int64_t, ndim=1] adj_indptr, + np.ndarray[np.int64_t, ndim=1] sorted_v, + np.ndarray[np.int64_t, ndim=1] sorted_eid, + vector[long long] sampled_nodes, +): + """ + Extract all eids of given sampled_nodes for the origin graph. + ret_edge_index: edge ids between sampled_nodes. + + Refers: https://github.com/GraphSAINT/GraphSAINT + """ + cdef long long i, v, j + cdef long long num_v_orig, num_v_sub + cdef long long start_neigh, end_neigh + cdef vector[int] _arr_bit + cdef vector[long long] ret_edge_index + num_v_orig = adj_indptr.size-1 + _arr_bit = vector[int](num_v_orig,-1) + num_v_sub = sampled_nodes.size() + i = 0 + with nogil: + while i < num_v_sub: + _arr_bit[sampled_nodes[i]] = i + i = i + 1 + i = 0 + while i < num_v_sub: + v = sampled_nodes[i] + start_neigh = adj_indptr[v] + end_neigh = adj_indptr[v+1] + j = start_neigh + while j < end_neigh: + if _arr_bit[sorted_v[j]] > -1: + ret_edge_index.push_back(sorted_eid[j]) + j = j + 1 + i = i + 1 + return ret_edge_index diff --git a/pgl/graph_wrapper.py b/pgl/graph_wrapper.py index 91dda8f78796aedd493b37e85a92ad9ecb1c6664..d9f8eafa616298487c114e4de51c682351f4a91b 100644 --- a/pgl/graph_wrapper.py +++ b/pgl/graph_wrapper.py @@ -19,19 +19,19 @@ for PaddlePaddle. import warnings import numpy as np import paddle.fluid as fluid +import paddle.fluid.layers as L from pgl.utils import op from pgl.utils import paddle_helper from pgl.utils.logger import log -__all__ = ["BaseGraphWrapper", "GraphWrapper", "StaticGraphWrapper"] - +__all__ = ["BaseGraphWrapper", "GraphWrapper", "StaticGraphWrapper", "BatchGraphWrapper"] def send(src, dst, nfeat, efeat, message_func): """Send message from src to dst. """ - src_feat = op.read_rows(nfeat, src) - dst_feat = op.read_rows(nfeat, dst) + src_feat = op.RowReader(nfeat, src) + dst_feat = op.RowReader(nfeat, dst) msg = message_func(src_feat, dst_feat, efeat) return msg @@ -47,10 +47,10 @@ def recv(dst, uniq_dst, bucketing_index, msg, reduce_function, num_nodes, try: out_dim = msg.shape[-1] - init_output = fluid.layers.fill_constant( + init_output = L.fill_constant( shape=[num_nodes, out_dim], value=0, dtype=msg.dtype) init_output.stop_gradient = False - empty_msg_flag = fluid.layers.cast(num_edges > 0, dtype=msg.dtype) + empty_msg_flag = L.cast(num_edges > 0, dtype=msg.dtype) msg = msg * empty_msg_flag output = paddle_helper.scatter_add(init_output, dst, msg) return output @@ -59,7 +59,7 @@ def recv(dst, uniq_dst, bucketing_index, msg, reduce_function, num_nodes, "scatter_add is not supported with paddle version <= 1.5") def sum_func(message): - return fluid.layers.sequence_pool(message, "sum") + return L.sequence_pool(message, "sum") reduce_function = sum_func @@ -67,13 +67,13 @@ def recv(dst, uniq_dst, bucketing_index, msg, reduce_function, num_nodes, output = reduce_function(bucketed_msg) output_dim = output.shape[-1] - empty_msg_flag = fluid.layers.cast(num_edges > 0, dtype=output.dtype) + empty_msg_flag = L.cast(num_edges > 0, dtype=output.dtype) output = output * empty_msg_flag - init_output = fluid.layers.fill_constant( + init_output = L.fill_constant( shape=[num_nodes, output_dim], value=0, dtype=output.dtype) init_output.stop_gradient = True - final_output = fluid.layers.scatter(init_output, uniq_dst, output) + final_output = L.scatter(init_output, uniq_dst, output) return final_output @@ -101,9 +101,9 @@ class BaseGraphWrapper(object): self._indegree = None self._edge_uniq_dst = None self._edge_uniq_dst_count = None - self._node_ids = None self._graph_lod = None self._num_graph = None + self._num_edges = None self._data_name_prefix = "" def __repr__(self): @@ -142,11 +142,13 @@ class BaseGraphWrapper(object): """ if efeat_list is None: efeat_list = {} + if nfeat_list is None: nfeat_list = {} src, dst = self.edges nfeat = {} + for feat in nfeat_list: if isinstance(feat, str): nfeat[feat] = self.node_feat[feat] @@ -413,13 +415,6 @@ class StaticGraphWrapper(BaseGraphWrapper): value=graph_lod) self._initializers.append(init) - node_ids_value = np.arange(0, graph.num_nodes, dtype="int64") - self._node_ids, init = paddle_helper.constant( - name=self._data_name_prefix + "/node_ids", - dtype="int64", - value=node_ids_value) - self._initializers.append(init) - self._indegree, init = paddle_helper.constant( name=self._data_name_prefix + "/indegree", dtype="int64", @@ -470,7 +465,7 @@ class StaticGraphWrapper(BaseGraphWrapper): class GraphWrapper(BaseGraphWrapper): """Implement a graph wrapper that creates a graph data holders - that attributes and features in the graph are :code:`fluid.layers.data`. + that attributes and features in the graph are :code:`L.data`. And we provide interface :code:`to_feed` to help converting :code:`Graph` data into :code:`feed_dict`. @@ -546,65 +541,59 @@ class GraphWrapper(BaseGraphWrapper): def __create_graph_attr_holders(self): """Create data holders for graph attributes. """ - self._num_edges = fluid.layers.data( + self._num_edges = L.data( self._data_name_prefix + '/num_edges', shape=[1], append_batch_size=False, dtype="int64", stop_gradient=True) - self._num_graph = fluid.layers.data( + self._num_graph = L.data( self._data_name_prefix + '/num_graph', shape=[1], append_batch_size=False, dtype="int64", stop_gradient=True) - self._edges_src = fluid.layers.data( + self._edges_src = L.data( self._data_name_prefix + '/edges_src', shape=[None], append_batch_size=False, dtype="int64", stop_gradient=True) - self._edges_dst = fluid.layers.data( + self._edges_dst = L.data( self._data_name_prefix + '/edges_dst', shape=[None], append_batch_size=False, dtype="int64", stop_gradient=True) - self._num_nodes = fluid.layers.data( + self._num_nodes = L.data( self._data_name_prefix + '/num_nodes', shape=[1], append_batch_size=False, dtype='int64', stop_gradient=True) - self._edge_uniq_dst = fluid.layers.data( + self._edge_uniq_dst = L.data( self._data_name_prefix + "/uniq_dst", shape=[None], append_batch_size=False, dtype="int64", stop_gradient=True) - self._graph_lod = fluid.layers.data( + self._graph_lod = L.data( self._data_name_prefix + "/graph_lod", shape=[None], append_batch_size=False, dtype="int32", stop_gradient=True) - self._edge_uniq_dst_count = fluid.layers.data( + self._edge_uniq_dst_count = L.data( self._data_name_prefix + "/uniq_dst_count", shape=[None], append_batch_size=False, dtype="int32", stop_gradient=True) - self._node_ids = fluid.layers.data( - self._data_name_prefix + "/node_ids", - shape=[None], - append_batch_size=False, - dtype="int64", - stop_gradient=True) - self._indegree = fluid.layers.data( + self._indegree = L.data( self._data_name_prefix + "/indegree", shape=[None], append_batch_size=False, @@ -616,7 +605,6 @@ class GraphWrapper(BaseGraphWrapper): self._num_nodes, self._edge_uniq_dst, self._edge_uniq_dst_count, - self._node_ids, self._indegree, self._graph_lod, self._num_graph, @@ -627,7 +615,7 @@ class GraphWrapper(BaseGraphWrapper): node_feat_dtype): """Create data holders for node features. """ - feat_holder = fluid.layers.data( + feat_holder = L.data( self._data_name_prefix + '/node_feat/' + node_feat_name, shape=node_feat_shape, append_batch_size=False, @@ -640,7 +628,7 @@ class GraphWrapper(BaseGraphWrapper): edge_feat_dtype): """Create edge holders for edge features. """ - feat_holder = fluid.layers.data( + feat_holder = L.data( self._data_name_prefix + '/edge_feat/' + edge_feat_name, shape=edge_feat_shape, append_batch_size=False, @@ -697,7 +685,6 @@ class GraphWrapper(BaseGraphWrapper): [graph.num_nodes], dtype="int64") feed_dict[self._data_name_prefix + '/uniq_dst'] = uniq_dst feed_dict[self._data_name_prefix + '/uniq_dst_count'] = uniq_dst_count - feed_dict[self._data_name_prefix + '/node_ids'] = graph.nodes feed_dict[self._data_name_prefix + '/indegree'] = indegree feed_dict[self._data_name_prefix + '/graph_lod'] = graph_lod feed_dict[self._data_name_prefix + '/num_graph'] = np.array( @@ -719,3 +706,153 @@ class GraphWrapper(BaseGraphWrapper): """Return the holder list. """ return self._holder_list + + +def get_degree(edge, num_nodes): + init_output = L.fill_constant( + shape=[num_nodes], value=0, dtype="float32") + init_output.stop_gradient = True + final_output = L.scatter(init_output, + edge, + L.full_like(edge, 1, dtype="float32"), + overwrite=False) + return final_output + +class DropEdgeWrapper(BaseGraphWrapper): + """Implement of Edge Drop """ + def __init__(self, graph_wrapper, dropout, keep_self_loop=True): + super(DropEdgeWrapper, self).__init__() + + # Copy Node's information + for key, value in graph_wrapper.node_feat.items(): + self.node_feat_tensor_dict[key] = value + + self._num_nodes = graph_wrapper.num_nodes + self._graph_lod = graph_wrapper.graph_lod + self._num_graph = graph_wrapper.num_graph + + # Dropout Edges + src, dst = graph_wrapper.edges + u = L.uniform_random(shape=L.cast(L.shape(src), 'int64'), min=0., max=1.) + + + # Avoid Empty Edges + keeped = L.cast(u > dropout, dtype="float32") + self._num_edges = L.reduce_sum(L.cast(keeped, "int32")) + keeped = keeped + L.cast(self._num_edges == 0, dtype="float32") + + if keep_self_loop: + self_loop = L.cast(src == dst, dtype="float32") + keeped = keeped + self_loop + + keeped = (keeped > 0.5) + src = paddle_helper.masked_select(src, keeped) + dst = paddle_helper.masked_select(dst, keeped) + src.stop_gradient=True + dst.stop_gradient=True + self._edges_src = src + self._edges_dst = dst + + for key, value in graph_wrapper.edge_feat.items(): + self.edge_feat_tensor_dict[key] = paddle_helper.masked_select(value, keeped) + + self._edge_uniq_dst, _, uniq_count = L.unique_with_counts(dst, dtype="int32") + self._edge_uniq_dst.stop_gradient=True + last = L.reduce_sum(uniq_count, keep_dim=True) + uniq_count = L.cumsum(uniq_count, exclusive=True) + self._edge_uniq_dst_count = L.concat([uniq_count, last]) + self._edge_uniq_dst_count.stop_gradient=True + self._indegree = get_degree(self._edges_dst, self._num_nodes) + + +class BatchGraphWrapper(BaseGraphWrapper): + """Implement a graph wrapper that user can use their own data holder. + And this graph wrapper support multiple graphs which is benefit for data parallel algorithms. + + Args: + num_nodes (int32 or int64): Shape [ num_graph ]. + + num_edges (int32 or int64): Shape [ num_graph ]. + + edges (int32 or int64): Shape [ total_num_edges_in_the_graphs, 2 ] + or Tuple with (src, dst). + + node_feats: A dictionary for node features. Each value should be tensor + with shape [ total_num_nodes_in_the_graphs, feature_size] + + edge_feats: A dictionary for edge features. Each value should be tensor + with shape [ total_num_edges_in_the_graphs, feature_size] + + """ + def __init__(self, num_nodes, num_edges, edges, node_feats=None, edge_feats=None): + super(BatchGraphWrapper, self).__init__() + + node_shift, edge_lod = self.__build_meta_data(num_nodes, num_edges) + self.__build_edges(edges, node_shift, edge_lod) + + # assign node features + if node_feats is not None: + for key, value in node_feats.items(): + self.node_feat_tensor_dict[key] = value + + # assign edge features + if edge_feats is not None: + for key, value in edge_feats.items(): + self.edge_feat_tensor_dict[key] = value + + # other meta-data + self._edge_uniq_dst, _, uniq_count = L.unique_with_counts(self._edges_dst, dtype="int32") + self._edge_uniq_dst.stop_gradient=True + last = L.reduce_sum(uniq_count, keep_dim=True) + uniq_count = L.cumsum(uniq_count, exclusive=True) + self._edge_uniq_dst_count = L.concat([uniq_count, last]) + self._edge_uniq_dst_count.stop_gradient=True + self._indegree = get_degree(self._edges_dst, self._num_nodes) + + def __build_meta_data(self, num_nodes, num_edges): + """ Merge information for nodes and edges. + """ + num_nodes = L.reshape(num_nodes, [-1]) + num_edges = L.reshape(num_edges, [-1]) + num_nodes = paddle_helper.ensure_dtype(num_nodes, dtype="int32") + num_edges = paddle_helper.ensure_dtype(num_edges, dtype="int32") + + num_graph = L.shape(num_nodes)[0] + sum_num_nodes = L.reduce_sum(num_nodes) + sum_num_edges = L.reduce_sum(num_edges) + edge_lod = L.concat([L.cumsum(num_edges, exclusive=True), sum_num_edges]) + edge_lod = paddle_helper.lod_remove(edge_lod) + + node_shift = L.cumsum(num_nodes, exclusive=True) + graph_lod = L.concat([node_shift, sum_num_nodes]) + graph_lod = paddle_helper.lod_remove(graph_lod) + self._num_nodes = sum_num_nodes + self._num_edges = sum_num_edges + self._num_graph = num_graph + self._graph_lod = graph_lod + return node_shift, edge_lod + + + def __build_edges(self, edges, node_shift, edge_lod): + """ Merge subgraph edges. + """ + if isinstance(edges, tuple): + src, dst = edges + else: + src = edges[:, 0] + dst = edges[:, 1] + + src = L.reshape(src, [-1]) + dst = L.reshape(dst, [-1]) + src = paddle_helper.ensure_dtype(src, dtype="int32") + dst = paddle_helper.ensure_dtype(dst, dtype="int32") + # preprocess edges + lod_dst = L.lod_reset(dst, edge_lod) + node_shift = L.reshape(node_shift, [-1, 1]) + node_shift = L.sequence_expand_as(node_shift, lod_dst) + node_shift = L.reshape(node_shift, [-1]) + src = src + node_shift + dst = dst + node_shift + # sort edges + self._edges_dst, index = L.argsort(dst) + self._edges_src = L.gather(src, index, overwrite=False) diff --git a/pgl/layers/__init__.py b/pgl/layers/__init__.py index efc27aa5bda6316348c7c65d6d714de70584b1dc..f545c0e033359f75930b72a1cf70bd0574679235 100644 --- a/pgl/layers/__init__.py +++ b/pgl/layers/__init__.py @@ -18,10 +18,10 @@ from pgl.layers import conv from pgl.layers.conv import * from pgl.layers import set2set from pgl.layers.set2set import * -from pgl.layers import graph_pool -from pgl.layers.graph_pool import * +from pgl.layers import graph_op +from pgl.layers.graph_op import * __all__ = [] __all__ += conv.__all__ __all__ += set2set.__all__ -__all__ += graph_pool.__all__ +__all__ += graph_op.__all__ diff --git a/pgl/layers/conv.py b/pgl/layers/conv.py index 7423c079f5343107c40d6e8a619d7354b7a81a18..4f87d91866f1f23e9755c44627d460684f7a1861 100644 --- a/pgl/layers/conv.py +++ b/pgl/layers/conv.py @@ -14,11 +14,14 @@ """This package implements common layers to help building graph neural networks. """ +import pgl import paddle.fluid as fluid +import paddle.fluid.layers as L from pgl.utils import paddle_helper from pgl import message_passing +import numpy as np -__all__ = ['gcn', 'gat', 'gin', 'gaan', 'gen_conv'] +__all__ = ['gcn', 'gat', 'gin', 'gaan', 'gen_conv', 'appnp', 'gcnii'] def gcn(gw, feature, hidden_size, activation, name, norm=None): @@ -50,7 +53,7 @@ def gcn(gw, feature, hidden_size, activation, name, norm=None): size = feature.shape[-1] if size > hidden_size: - feature = fluid.layers.fc(feature, + feature = L.fc(feature, size=hidden_size, bias_attr=False, param_attr=fluid.ParamAttr(name=name)) @@ -64,7 +67,7 @@ def gcn(gw, feature, hidden_size, activation, name, norm=None): output = gw.recv(msg, "sum") else: output = gw.recv(msg, "sum") - output = fluid.layers.fc(output, + output = L.fc(output, size=hidden_size, bias_attr=False, param_attr=fluid.ParamAttr(name=name)) @@ -72,12 +75,12 @@ def gcn(gw, feature, hidden_size, activation, name, norm=None): if norm is not None: output = output * norm - bias = fluid.layers.create_parameter( + bias = L.create_parameter( shape=[hidden_size], dtype='float32', is_bias=True, name=name + '_bias') - output = fluid.layers.elementwise_add(output, bias, act=activation) + output = L.elementwise_add(output, bias, act=activation) return output @@ -120,7 +123,7 @@ def gat(gw, def send_attention(src_feat, dst_feat, edge_feat): output = src_feat["left_a"] + dst_feat["right_a"] - output = fluid.layers.leaky_relu( + output = L.leaky_relu( output, alpha=0.2) # (num_edges, num_heads) return {"alpha": output, "h": src_feat["h"]} @@ -129,54 +132,54 @@ def gat(gw, h = msg["h"] alpha = paddle_helper.sequence_softmax(alpha) old_h = h - h = fluid.layers.reshape(h, [-1, num_heads, hidden_size]) - alpha = fluid.layers.reshape(alpha, [-1, num_heads, 1]) + h = L.reshape(h, [-1, num_heads, hidden_size]) + alpha = L.reshape(alpha, [-1, num_heads, 1]) if attn_drop > 1e-15: - alpha = fluid.layers.dropout( + alpha = L.dropout( alpha, dropout_prob=attn_drop, is_test=is_test, dropout_implementation="upscale_in_train") h = h * alpha - h = fluid.layers.reshape(h, [-1, num_heads * hidden_size]) - h = fluid.layers.lod_reset(h, old_h) - return fluid.layers.sequence_pool(h, "sum") + h = L.reshape(h, [-1, num_heads * hidden_size]) + h = L.lod_reset(h, old_h) + return L.sequence_pool(h, "sum") if feat_drop > 1e-15: - feature = fluid.layers.dropout( + feature = L.dropout( feature, dropout_prob=feat_drop, is_test=is_test, dropout_implementation='upscale_in_train') - ft = fluid.layers.fc(feature, + ft = L.fc(feature, hidden_size * num_heads, bias_attr=False, param_attr=fluid.ParamAttr(name=name + '_weight')) - left_a = fluid.layers.create_parameter( + left_a = L.create_parameter( shape=[num_heads, hidden_size], dtype='float32', name=name + '_gat_l_A') - right_a = fluid.layers.create_parameter( + right_a = L.create_parameter( shape=[num_heads, hidden_size], dtype='float32', name=name + '_gat_r_A') - reshape_ft = fluid.layers.reshape(ft, [-1, num_heads, hidden_size]) - left_a_value = fluid.layers.reduce_sum(reshape_ft * left_a, -1) - right_a_value = fluid.layers.reduce_sum(reshape_ft * right_a, -1) + reshape_ft = L.reshape(ft, [-1, num_heads, hidden_size]) + left_a_value = L.reduce_sum(reshape_ft * left_a, -1) + right_a_value = L.reduce_sum(reshape_ft * right_a, -1) msg = gw.send( send_attention, nfeat_list=[("h", ft), ("left_a", left_a_value), ("right_a", right_a_value)]) output = gw.recv(msg, reduce_attention) - bias = fluid.layers.create_parameter( + bias = L.create_parameter( shape=[hidden_size * num_heads], dtype='float32', is_bias=True, name=name + '_bias') bias.stop_gradient = True - output = fluid.layers.elementwise_add(output, bias, act=activation) + output = L.elementwise_add(output, bias, act=activation) return output @@ -219,7 +222,7 @@ def gin(gw, def send_src_copy(src_feat, dst_feat, edge_feat): return src_feat["h"] - epsilon = fluid.layers.create_parameter( + epsilon = L.create_parameter( shape=[1, 1], dtype="float32", attr=fluid.ParamAttr(name="%s_eps" % name), @@ -232,13 +235,13 @@ def gin(gw, msg = gw.send(send_src_copy, nfeat_list=[("h", feature)]) output = gw.recv(msg, "sum") + feature * (epsilon + 1.0) - output = fluid.layers.fc(output, + output = L.fc(output, size=hidden_size, act=None, param_attr=fluid.ParamAttr(name="%s_w_0" % name), bias_attr=fluid.ParamAttr(name="%s_b_0" % name)) - output = fluid.layers.layer_norm( + output = L.layer_norm( output, begin_norm_axis=1, param_attr=fluid.ParamAttr( @@ -249,9 +252,9 @@ def gin(gw, initializer=fluid.initializer.Constant(0.0)), ) if activation is not None: - output = getattr(fluid.layers, activation)(output) + output = getattr(L, activation)(output) - output = fluid.layers.fc(output, + output = L.fc(output, size=hidden_size, act=activation, param_attr=fluid.ParamAttr(name="%s_w_1" % name), @@ -269,10 +272,10 @@ def gaan(gw, feature, hidden_size_a, hidden_size_v, hidden_size_m, hidden_size_o feat_query, feat_key = dst_feat['feat_query'], src_feat['feat_key'] # E * M * D1 old = feat_query - feat_query = fluid.layers.reshape(feat_query, [-1, heads, hidden_size_a]) - feat_key = fluid.layers.reshape(feat_key, [-1, heads, hidden_size_a]) + feat_query = L.reshape(feat_query, [-1, heads, hidden_size_a]) + feat_key = L.reshape(feat_key, [-1, heads, hidden_size_a]) # E * M - alpha = fluid.layers.reduce_sum(feat_key * feat_query, dim=-1) + alpha = L.reduce_sum(feat_key * feat_query, dim=-1) return {'dst_node_feat': dst_feat['node_feat'], 'src_node_feat': src_feat['node_feat'], @@ -285,15 +288,15 @@ def gaan(gw, feature, hidden_size_a, hidden_size_v, hidden_size_m, hidden_size_o dst_feat = message['dst_node_feat'] src_feat = message['src_node_feat'] # feature of center node - x = fluid.layers.sequence_pool(dst_feat, 'average') + x = L.sequence_pool(dst_feat, 'average') # feature of neighbors of center node - z = fluid.layers.sequence_pool(src_feat, 'average') + z = L.sequence_pool(src_feat, 'average') # compute gate feat_gate = message['feat_gate'] - g_max = fluid.layers.sequence_pool(feat_gate, 'max') - g = fluid.layers.concat([x, g_max, z], axis=1) - g = fluid.layers.fc(g, heads, bias_attr=False, act="sigmoid") + g_max = L.sequence_pool(feat_gate, 'max') + g = L.concat([x, g_max, z], axis=1) + g = L.fc(g, heads, bias_attr=False, act="sigmoid") # softmax alpha = message['alpha'] @@ -301,33 +304,33 @@ def gaan(gw, feature, hidden_size_a, hidden_size_v, hidden_size_m, hidden_size_o feat_value = message['feat_value'] # E * (M * D2) old = feat_value - feat_value = fluid.layers.reshape(feat_value, [-1, heads, hidden_size_v]) # E * M * D2 - feat_value = fluid.layers.elementwise_mul(feat_value, alpha, axis=0) - feat_value = fluid.layers.reshape(feat_value, [-1, heads*hidden_size_v]) # E * (M * D2) - feat_value = fluid.layers.lod_reset(feat_value, old) + feat_value = L.reshape(feat_value, [-1, heads, hidden_size_v]) # E * M * D2 + feat_value = L.elementwise_mul(feat_value, alpha, axis=0) + feat_value = L.reshape(feat_value, [-1, heads*hidden_size_v]) # E * (M * D2) + feat_value = L.lod_reset(feat_value, old) - feat_value = fluid.layers.sequence_pool(feat_value, 'sum') # N * (M * D2) + feat_value = L.sequence_pool(feat_value, 'sum') # N * (M * D2) - feat_value = fluid.layers.reshape(feat_value, [-1, heads, hidden_size_v]) # N * M * D2 + feat_value = L.reshape(feat_value, [-1, heads, hidden_size_v]) # N * M * D2 - output = fluid.layers.elementwise_mul(feat_value, g, axis=0) - output = fluid.layers.reshape(output, [-1, heads * hidden_size_v]) # N * (M * D2) + output = L.elementwise_mul(feat_value, g, axis=0) + output = L.reshape(output, [-1, heads * hidden_size_v]) # N * (M * D2) - output = fluid.layers.concat([x, output], axis=1) + output = L.concat([x, output], axis=1) return output # N * (D1 * M) - feat_key = fluid.layers.fc(feature, hidden_size_a * heads, bias_attr=False, + feat_key = L.fc(feature, hidden_size_a * heads, bias_attr=False, param_attr=fluid.ParamAttr(name=name + '_project_key')) # N * (D2 * M) - feat_value = fluid.layers.fc(feature, hidden_size_v * heads, bias_attr=False, + feat_value = L.fc(feature, hidden_size_v * heads, bias_attr=False, param_attr=fluid.ParamAttr(name=name + '_project_value')) # N * (D1 * M) - feat_query = fluid.layers.fc(feature, hidden_size_a * heads, bias_attr=False, + feat_query = L.fc(feature, hidden_size_a * heads, bias_attr=False, param_attr=fluid.ParamAttr(name=name + '_project_query')) # N * Dm - feat_gate = fluid.layers.fc(feature, hidden_size_m, bias_attr=False, + feat_gate = L.fc(feature, hidden_size_m, bias_attr=False, param_attr=fluid.ParamAttr(name=name + '_project_gate')) # send @@ -340,10 +343,10 @@ def gaan(gw, feature, hidden_size_a, hidden_size_v, hidden_size_m, hidden_size_o # recv output = gw.recv(message, recv_func) - output = fluid.layers.fc(output, hidden_size_o, bias_attr=False, + output = L.fc(output, hidden_size_o, bias_attr=False, param_attr=fluid.ParamAttr(name=name + '_project_output')) - output = fluid.layers.leaky_relu(output, alpha=0.1) - output = fluid.layers.dropout(output, dropout_prob=0.1) + output = L.leaky_relu(output, alpha=0.1) + output = L.dropout(output, dropout_prob=0.1) return output @@ -370,7 +373,7 @@ def gen_conv(gw, """ if beta == "dynamic": - beta = fluid.layers.create_parameter( + beta = L.create_parameter( shape=[1], dtype='float32', default_initializer= @@ -385,16 +388,132 @@ def gen_conv(gw, output = message_passing.msg_norm(feature, output, name) output = feature + output - output = fluid.layers.fc(output, + output = L.fc(output, feature.shape[-1], bias_attr=False, act="relu", param_attr=fluid.ParamAttr(name=name + '_weight1')) - output = fluid.layers.fc(output, + output = L.fc(output, feature.shape[-1], bias_attr=False, param_attr=fluid.ParamAttr(name=name + '_weight2')) return output +def get_norm(indegree): + """Get Laplacian Normalization""" + float_degree = L.cast(indegree, dtype="float32") + float_degree = L.clamp(float_degree, min=1.0) + norm = L.pow(float_degree, factor=-0.5) + return norm + + +def appnp(gw, feature, edge_dropout=0, alpha=0.2, k_hop=10): + """Implementation of APPNP of "Predict then Propagate: Graph Neural Networks + meet Personalized PageRank" (ICLR 2019). + + Args: + gw: Graph wrapper object (:code:`StaticGraphWrapper` or :code:`GraphWrapper`) + + feature: A tensor with shape (num_nodes, feature_size). + + edge_dropout: Edge dropout rate. + + k_hop: K Steps for Propagation + + Return: + A tensor with shape (num_nodes, hidden_size) + """ + + def send_src_copy(src_feat, dst_feat, edge_feat): + feature = src_feat["h"] + return feature + + h0 = feature + ngw = gw + norm = get_norm(ngw.indegree()) + + for i in range(k_hop): + if edge_dropout > 1e-5: + ngw = pgl.sample.edge_drop(gw, edge_dropout) + norm = get_norm(ngw.indegree()) + + feature = feature * norm + + msg = gw.send(send_src_copy, nfeat_list=[("h", feature)]) + + feature = gw.recv(msg, "sum") + + feature = feature * norm + + feature = feature * (1 - alpha) + h0 * alpha + return feature + + +def gcnii(gw, + feature, + name, + activation=None, + alpha=0.5, + lambda_l=0.5, + k_hop=1, + dropout=0.5, + is_test=False): + """Implementation of GCNII of "Simple and Deep Graph Convolutional Networks" + + paper: https://arxiv.org/pdf/2007.02133.pdf + + Args: + gw: Graph wrapper object (:code:`StaticGraphWrapper` or :code:`GraphWrapper`) + + feature: A tensor with shape (num_nodes, feature_size). + + activation: The activation for the output. + + k_hop: Number of layers for gcnii. + + lambda_l: The hyperparameter of lambda in the paper. + + alpha: The hyperparameter of alpha in the paper. + + dropout: Feature dropout rate. + + is_test: train / test phase. + + Return: + A tensor with shape (num_nodes, hidden_size) + """ + + def send_src_copy(src_feat, dst_feat, edge_feat): + feature = src_feat["h"] + return feature + + h0 = feature + ngw = gw + norm = get_norm(ngw.indegree()) + hidden_size = feature.shape[-1] + + for i in range(k_hop): + beta_i = np.log(1.0 * lambda_l / (i + 1) + 1) + feature = L.dropout( + feature, + dropout_prob=dropout, + is_test=is_test, + dropout_implementation='upscale_in_train') + + feature = feature * norm + msg = gw.send(send_src_copy, nfeat_list=[("h", feature)]) + feature = gw.recv(msg, "sum") + feature = feature * norm + + # appnp + feature = feature * (1 - alpha) + h0 * alpha + + feature_transed = L.fc(feature, hidden_size, + act=None, bias_attr=False, + name=name+"_%s_w1" % i) + feature = feature_transed * beta_i + feature * (1 - beta_i) + if activation is not None: + feature = getattr(L, activation)(feature) + return feature diff --git a/pgl/layers/graph_pool.py b/pgl/layers/graph_op.py similarity index 60% rename from pgl/layers/graph_pool.py rename to pgl/layers/graph_op.py index fbe6c500b7d3efc5a836b07982458293b4207b5d..042860bffd7bfd76288869c803b24eccf40daae0 100644 --- a/pgl/layers/graph_pool.py +++ b/pgl/layers/graph_op.py @@ -14,12 +14,13 @@ """This package implements common layers to help building graph neural networks. """ -import paddle.fluid as fluid +import paddle.fluid as F +import paddle.fluid.layers as L from pgl import graph_wrapper from pgl.utils import paddle_helper from pgl.utils import op -__all__ = ['graph_pooling', 'graph_norm'] +__all__ = ['graph_pooling', 'graph_norm', 'graph_gather'] def graph_pooling(gw, node_feat, pool_type): @@ -38,7 +39,7 @@ def graph_pooling(gw, node_feat, pool_type): A tensor with shape (num_graph, hidden_size) """ graph_feat = op.nested_lod_reset(node_feat, gw.graph_lod) - graph_feat = fluid.layers.sequence_pool(graph_feat, pool_type) + graph_feat = L.sequence_pool(graph_feat, pool_type) return graph_feat @@ -57,11 +58,42 @@ def graph_norm(gw, feature): Return: A tensor with shape (num_nodes, hidden_size) """ - nodes = fluid.layers.fill_constant( + nodes = L.fill_constant( [gw.num_nodes, 1], dtype="float32", value=1.0) norm = graph_pooling(gw, nodes, pool_type="sum") - norm = fluid.layers.sqrt(norm) + norm = L.sqrt(norm) feature_lod = op.nested_lod_reset(feature, gw.graph_lod) - norm = fluid.layers.sequence_expand_as(norm, feature_lod) + norm = L.sequence_expand_as(norm, feature_lod) norm.stop_gradient = True return feature_lod / norm + + +def graph_gather(gw, feature, index): + """Implementation of graph gather + + Gather the corresponding index for each graph. + + Args: + gw: Graph wrapper object (:code:`StaticGraphWrapper` or :code:`GraphWrapper`) + + feature: A tensor with shape (num_nodes, ). + + index (int32): A tensor with K-rank where the first dim denotes the graph. + Shape (num_graph, ) or (num_graph, k1, k2, k3, ..., kn). + WARNING: We dont support negative index. + + Return: + A tensor with shape (num_graph, k1, k2, k3, ..., kn, hidden_size) + """ + shape = L.shape(index) + output_dim = int(feature.shape[-1]) + index = index + gw.graph_lod[:-1] + index = L.reshape(index, [-1]) + feature = L.gather(feature, index, overwrite=False) + new_shape = [] + for i in range(shape.shape[0]): + new_shape.append(shape[i]) + new_shape.append(output_dim) + feature = L.reshape(feature, new_shape) + return feature + diff --git a/pgl/sample.py b/pgl/sample.py index 89c1d1ba532fa4123b6b088f8220a61cd0fbdb9e..e890c3783779d1863d5c848d0bb97a37febe2928 100644 --- a/pgl/sample.py +++ b/pgl/sample.py @@ -24,7 +24,7 @@ from pgl import graph_kernel __all__ = [ 'graphsage_sample', 'node2vec_sample', 'deepwalk_sample', - 'metapath_randomwalk', 'pinsage_sample' + 'metapath_randomwalk', 'pinsage_sample', 'graph_saint_random_walk_sample' ] @@ -55,7 +55,7 @@ def edge_hash(src, dst): def graphsage_sample(graph, nodes, samples, ignore_edges=[]): """Implement of graphsage sample. - + Reference paper: https://cs.stanford.edu/people/jure/pubs/graphsage-nips17.pdf. Args: @@ -63,7 +63,7 @@ def graphsage_sample(graph, nodes, samples, ignore_edges=[]): nodes: Sample starting from nodes samples: A list, number of neighbors in each layer ignore_edges: list of edge(src, dst) will be ignored. - + Return: A list of subgraphs """ @@ -129,7 +129,7 @@ def alias_sample(size, alias, events): size: Output shape. alias: The alias table build by `alias_sample_build_table`. events: The events table build by `alias_sample_build_table`. - + Return: samples: The generated random samples. """ @@ -283,13 +283,13 @@ def metapath_randomwalk(graph, Args: graph: instance of pgl heterogeneous graph start_nodes: start nodes to generate walk - metapath: meta path for sample nodes. + metapath: meta path for sample nodes. e.g: "c2p-p2a-a2p-p2c" walk_length: the walk length Return: - a list of metapath walks. - + a list of metapath walks. + """ edge_types = metapath.split('-') @@ -390,18 +390,18 @@ def pinsage_sample(graph, norm_bais=1.0, ignore_edges=set()): """Implement of graphsage sample. - + Reference paper: . Args: graph: A pgl graph instance nodes: Sample starting from nodes samples: A list, number of neighbors in each layer - top_k: select the top_k visit count nodes to construct the edges - proba: the probability to return the origin node + top_k: select the top_k visit count nodes to construct the edges + proba: the probability to return the origin node norm_bais: the normlization for the visit count ignore_edges: list of edge(src, dst) will be ignored. - + Return: A list of subgraphs """ @@ -476,3 +476,52 @@ def pinsage_sample(graph, layer_nodes[0], dtype="int64") return subgraphs + + +def extract_edges_from_nodes(graph, sample_nodes): + eids = graph_kernel.extract_edges_from_nodes( + graph.adj_src_index._indptr, graph.adj_src_index._sorted_v, + graph.adj_src_index._sorted_eid, sample_nodes) + return eids + + +def graph_saint_random_walk_sample(graph, + nodes, + max_depth, + alias_name=None, + events_name=None): + """Implement of graph saint random walk sample. + + First, this function will get random walks path for given nodes and depth. + Then, it will create subgraph from all sampled nodes. + + Reference Paper: https://arxiv.org/abs/1907.04931 + + Args: + graph: A pgl graph instance + nodes: Walk starting from nodes + max_depth: Max walking depth + + Return: + a subgraph of sampled nodes. + """ + graph.outdegree() + walks = deepwalk_sample(graph, nodes, max_depth, alias_name, events_name) + sample_nodes = [] + for walk in walks: + sample_nodes.extend(walk) + sample_nodes = np.unique(sample_nodes) + eids = extract_edges_from_nodes(graph, sample_nodes) + subgraph = graph.subgraph( + nodes=sample_nodes, eid=eids, with_node_feat=True, with_edge_feat=True) + subgraph.node_feat["index"] = np.array(sample_nodes, dtype="int64") + return subgraph + + +def edge_drop(graph_wrapper, dropout_rate, keep_self_loop=True): + if dropout_rate < 1e-5: + return graph_wrapper + else: + return pgl.graph_wrapper.DropEdgeWrapper(graph_wrapper, + dropout_rate, + keep_self_loop) diff --git a/pgl/tests/test_batch_graph_wrapper.py b/pgl/tests/test_batch_graph_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..f5014ded40b4a3171f6e78a6e7e96a3ed1fa2ca4 --- /dev/null +++ b/pgl/tests/test_batch_graph_wrapper.py @@ -0,0 +1,118 @@ +# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" + This file is for testing gin layer. +""" +from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from __future__ import unicode_literals +import unittest +import numpy as np + +import paddle.fluid as F +import paddle.fluid.layers as L + +from pgl.layers.conv import gcn +from pgl import graph +from pgl import graph_wrapper + + +class BatchedGraphWrapper(unittest.TestCase): + """BatchedGraphWrapper + """ + def test_batched_graph_wrapper(self): + """test_batch_graph_wrapper + """ + np.random.seed(1) + + graph_list = [] + + num_graph = 5 + feed_num_nodes = [] + feed_num_edges = [] + feed_edges = [] + feed_node_feats = [] + + for _ in range(num_graph): + num_nodes = np.random.randint(5, 20) + edges = np.random.randint(low=0, high=num_nodes, size=(10, 2)) + node_feat = {"feature": np.random.rand(num_nodes, 4).astype("float32")} + single_graph = graph.Graph(num_nodes=num_nodes, edges=edges, node_feat=node_feat) + feed_num_nodes.append(num_nodes) + feed_num_edges.append(len(edges)) + feed_edges.append(edges) + feed_node_feats.append(node_feat["feature"]) + graph_list.append(single_graph) + + multi_graph = graph.MultiGraph(graph_list) + + np.random.seed(1) + hidden_size = 8 + num_nodes = 10 + + place = F.CUDAPlace(0)# if use_cuda else F.CPUPlace() + prog = F.Program() + startup_prog = F.Program() + + with F.program_guard(prog, startup_prog): + with F.unique_name.guard(): + # Standard Graph Wrapper + gw = graph_wrapper.GraphWrapper( + name='graph', + place=place, + node_feat=[("feature", [-1, 4], "float32")]) + + output = gcn(gw, + gw.node_feat['feature'], + hidden_size=hidden_size, + activation='relu', + name='gcn') + + # BatchGraphWrapper + num_nodes = L.data(name="num_nodes", shape=[-1], dtype="int32") + num_edges= L.data(name="num_edges", shape=[-1], dtype="int32") + edges = L.data(name="edges", shape=[-1, 2], dtype="int32") + node_feat = L.data(name="node_feats", shape=[-1, 4], dtype="float32") + batch_gw = graph_wrapper.BatchGraphWrapper(num_nodes=num_nodes, + num_edges=num_edges, + edges=edges, + node_feats={"feature": node_feat}) + + output2 = gcn(batch_gw, + batch_gw.node_feat['feature'], + hidden_size=hidden_size, + activation='relu', + name='gcn') + + + exe = F.Executor(place) + exe.run(startup_prog) + feed_dict = gw.to_feed(multi_graph) + feed_dict["num_nodes"] = np.array(feed_num_nodes, dtype="int32") + feed_dict["num_edges"] = np.array(feed_num_edges, dtype="int32") + feed_dict["edges"] = np.array(np.concatenate(feed_edges, 0), dtype="int32").reshape([-1, 2]) + feed_dict["node_feats"] = np.array(np.concatenate(feed_node_feats, 0), dtype="float32").reshape([-1, 4]) + + # Run + O1, O2 = exe.run(prog, feed=feed_dict, fetch_list=[output, output2]) + + # The output from two kind of models should be same. + for o1, o2 in zip(O1, O2): + dist = np.sum((o1 - o2) ** 2) + self.assertLess(dist, 1e-15) + + +if __name__ == "__main__": + unittest.main() diff --git a/pgl/tests/test_graph_gather.py b/pgl/tests/test_graph_gather.py new file mode 100644 index 0000000000000000000000000000000000000000..22c311f368ffc8649247c122decde20132d3cc75 --- /dev/null +++ b/pgl/tests/test_graph_gather.py @@ -0,0 +1,83 @@ +# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" + This file is for testing gin layer. +""" +from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from __future__ import unicode_literals +import unittest +import numpy as np + +import paddle.fluid as F +import paddle.fluid.layers as L + +import pgl +from pgl import graph +from pgl import graph_wrapper + + +class GraphGatherTest(unittest.TestCase): + """GraphGatherTest + """ + + def test_graph_gather(self): + """test_graph_gather + """ + np.random.seed(1) + + graph_list = [] + + num_graph = 10 + for _ in range(num_graph): + num_nodes = np.random.randint(5, 20) + edges = np.random.randint(low=0, high=num_nodes, size=(10, 2)) + node_feat = {"feature": np.random.rand(num_nodes, 4).astype("float32")} + g = graph.Graph(num_nodes=num_nodes, edges=edges, node_feat=node_feat) + graph_list.append(g) + + gg = graph.MultiGraph(graph_list) + + + use_cuda = False + place = F.CUDAPlace(0) if use_cuda else F.CPUPlace() + + prog = F.Program() + startup_prog = F.Program() + with F.program_guard(prog, startup_prog): + gw = graph_wrapper.GraphWrapper( + name='graph', + place=place, + node_feat=g.node_feat_info(), + edge_feat=g.edge_feat_info()) + + index = L.data(name="index", dtype="int32", shape=[-1]) + feats = pgl.layers.graph_gather(gw, gw.node_feat["feature"], index) + + + exe = F.Executor(place) + exe.run(startup_prog) + feed_dict = gw.to_feed(gg) + feed_dict["index"] = np.zeros(num_graph, dtype="int32") + ret = exe.run(prog, feed=feed_dict, fetch_list=[feats]) + self.assertEqual(list(ret[0].shape), [num_graph, 4]) + for i in range(num_graph): + dist = (ret[0][i] - graph_list[i].node_feat["feature"][0]) + dist = np.sum(dist ** 2) + self.assertLess(dist, 1e-15) + + +if __name__ == "__main__": + unittest.main() diff --git a/pgl/tests/test_graph_saint_sample.py b/pgl/tests/test_graph_saint_sample.py new file mode 100644 index 0000000000000000000000000000000000000000..6eceeb226995e311aa74d49c7d90bc76fcd185a1 --- /dev/null +++ b/pgl/tests/test_graph_saint_sample.py @@ -0,0 +1,47 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""graph saint sample test +""" +from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from __future__ import unicode_literals +import unittest +import numpy as np + +import pgl +import paddle.fluid as fluid +from pgl.sample import graph_saint_random_walk_sample + + +class GraphSaintSampleTest(unittest.TestCase): + """GraphSaintSampleTest""" + + def test_randomwalk_sampler(self): + """test_randomwalk_sampler""" + g = pgl.graph.Graph( + num_nodes=8, + edges=[(1, 2), (2, 3), (0, 2), (0, 1), (6, 7), (4, 5), (6, 4), + (7, 4), (3, 4)]) + subgraph = graph_saint_random_walk_sample(g, [6, 7], 2) + print('reindex', subgraph._from_reindex) + print('subedges', subgraph.edges) + assert len(subgraph.nodes) == 4 + assert len(subgraph.edges) == 4 + true_edges = np.array([[0, 1], [2, 3], [2, 0], [3, 0]]) + assert "{}".format(subgraph.edges) == "{}".format(true_edges) + + +if __name__ == '__main__': + unittest.main() diff --git a/pgl/utils/op.py b/pgl/utils/op.py index fe3945381aad1bb9bf59bfde8e78de6db0491ccc..2052adaf8d0bc7a5639c20fbfb1d107d9e61b9e5 100644 --- a/pgl/utils/op.py +++ b/pgl/utils/op.py @@ -68,3 +68,18 @@ def read_rows(data, index): return new_data else: return paddle_helper.gather(data, index) + + +class RowReader(object): + """Memory Efficient RowReader + """ + def __init__(self, nfeat, index): + self.nfeat = nfeat + self.loaded_nfeat = {} + self.index = index + + def __getitem__(self, key): + if key not in self.loaded_nfeat: + self.loaded_nfeat[key] = read_rows(self.nfeat[key], self.index) + return self.loaded_nfeat[key] + diff --git a/pgl/utils/paddle_helper.py b/pgl/utils/paddle_helper.py index 3570fac2c9da6b668108d4216cac9d415ce68dcd..66b5ddc63e42f5c46500ba7101875ae2cfa6756e 100644 --- a/pgl/utils/paddle_helper.py +++ b/pgl/utils/paddle_helper.py @@ -22,13 +22,14 @@ import paddle from paddle.fluid import core import paddle.fluid as fluid import paddle.fluid.layer_helper as layer_helper +import paddle.fluid.layers as L from pgl.utils.logger import log def gather(input, index): """Gather input from given index. - Slicing input data with given index. This function rewrite paddle.fluid.layers.gather + Slicing input data with given index. This function rewrite paddle.L.gather to fix issue: https://github.com/PaddlePaddle/Paddle/issues/17509 when paddlepaddle's version is less than 1.5. @@ -42,16 +43,16 @@ def gather(input, index): """ try: # PaddlePaddle 1.5 - output = fluid.layers.gather(input, index, overwrite=False) + output = L.gather(input, index, overwrite=False) return output except TypeError as e: warnings.warn("Your paddle version is less than 1.5" " gather may be slower.") if index.dtype == core.VarDesc.VarType.INT32: - index = fluid.layers.cast(index, "int64") + index = L.cast(index, "int64") if index.shape[-1] != 1: - index = fluid.layers.reshape(index, shape=[-1, 1]) + index = L.reshape(index, shape=[-1, 1]) index.stop_gradient = True helper = layer_helper.LayerHelper("gather", **locals()) #**locals()) @@ -112,7 +113,7 @@ def constant(name, value, dtype, hide_batch_size=True): raise TypeError("value should be Numpy array.") value = value.astype(dtype) - data = fluid.layers.create_global_var( + data = L.create_global_var( shape=value.shape, value=0, dtype=value.dtype, @@ -181,7 +182,7 @@ def lod_constant(name, value, lod, dtype): _lod = [0] for l in lod: _lod.append(_lod[-1] + l) - output = fluid.layers.lod_reset(data, target_lod=_lod) + output = L.lod_reset(data, target_lod=_lod) return output, data_initializer @@ -189,7 +190,7 @@ def sequence_softmax(x, beta=None): """Compute sequence softmax over paddle LodTensor This function compute softmax normalization along with the length of sequence. - This function is an extention of :code:`fluid.layers.sequence_softmax` which can only + This function is an extention of :code:`L.sequence_softmax` which can only deal with LodTensor whose last dimension is 1. Args: @@ -203,12 +204,12 @@ def sequence_softmax(x, beta=None): if beta is not None: x = x * beta - x_max = fluid.layers.sequence_pool(x, "max") - x_max = fluid.layers.sequence_expand_as(x_max, x) + x_max = L.sequence_pool(x, "max") + x_max = L.sequence_expand_as(x_max, x) x = x - x_max - exp_x = fluid.layers.exp(x) - sum_exp_x = fluid.layers.sequence_pool(exp_x, "sum") - sum_exp_x = fluid.layers.sequence_expand_as(sum_exp_x, exp_x) + exp_x = L.exp(x) + sum_exp_x = L.sequence_pool(exp_x, "sum") + sum_exp_x = L.sequence_expand_as(sum_exp_x, exp_x) return exp_x / sum_exp_x @@ -228,7 +229,7 @@ def scatter_add(input, index, updates): Same type and shape as input. """ - output = fluid.layers.scatter(input, index, updates, overwrite=False) + output = L.scatter(input, index, updates, overwrite=False) return output @@ -248,5 +249,57 @@ def scatter_max(input, index, updates): Same type and shape as input. """ - output = fluid.layers.scatter(input, index, updates, mode='max') + output = L.scatter(input, index, updates, mode='max') return output + +def masked_select(input, mask): + """masked_select + + Slice the value from given Mask + + Args: + input: Input tensor to be selected + + mask: A bool tensor for sliced. + + Return: + Part of inputs where mask is True. + """ + index = L.where(mask) + return L.gather(input, index) + + +def ensure_dtype(input, dtype): + """ensure_dtype + + If input is dtype, return input + + else cast input into dtype + + Args: + input: Input tensor + + dtype: a string of type + + Return: + If input is dtype, return input, else cast input into dtype + """ + if str(input.dtype) == dtype: + return input + else: + return L.cast(input, dtype=dtype) + +def lod_remove(input): + """Lod Remove + + Remove the lod for LodTensor and Flatten the data into 1D-Tensor. + + Args: + input: A tensor to be flattend + + Return: + A 1D input + """ + return L.reshape(L.reshape(input, [1, -1]), [-1]) + +