dataesr/scientific-paragraphs-categorization huggingface dataset:
Controlling VMs can be done either manually or automatically. To date, there is limited experimental data available related to automated controlling of VMs. However, for any case, monitoring results were required to make decisions on VMs' status. The work's core contribution is the development of C-language based utility using Libvirt API that monitors and changes VMs based on CPU utilization. The key concept for this utility is based on experimental results of monitoring and controlling. Monitoring of virtual machines served as a testbed for implementation of SNMP version 3 on two physical machines with multiple virtual machines running. Memory, processor, network and storage performance was monitored to collect and analysis for controlling experiments. Controlling can be done either manually or with the use of scripts to automate the process.
Statistical analysis further proved the findings outlined in experimental results. Energy Efficiency, processes and applications efficiency can be determined by observing the various data from the device. One approach used to monitor energy utilization of server using SNMPv3. For this purpose, HP ProLiant server with 24 physical processors chips was used to obtain CPU utilization. Data for each processor was logged at specific intervals over 24 hours under both heavy and normal load. Various equations were used to calculate overall CPU usage, individual processor CPU utilization and total power consumption. These equations covered different time parameters such as system time, user time, nice time and total time and power utilization parameters such as Pmax and Pidle. Data from individual processor indicated varied CPU utilization and dependency of processing distribution among the processors.
Researching controlling and automation under multi-server environment can help to manage energy efficiently. Automation experiments can be expanded to act like an Agent connected with Zabbix to automatically record monitoring and control of virtual machines in MySQL database, making more efficient decisions based on the more prolonged duration of resources utilization. Other monitoring tools such as PRTG, Nagios and Pandora FMS can also be used to replace Zabbix for results comparison and analysis. Each tool provides a different set of features; hence, results comparison between various monitoring tools can lead to deciding the best tool for experiments with least overhead. Another prospect is the comparison of results obtained from XEN hypervisor with other Hypervisors. One such hypervisor is KVM.
KVM is a popular tool as XEN, and a lot of similar research has been done on KVM. Results obtained from KVM experiments will provide useful analysis on the selection of hypervisor that more suitable for automation experiments. Development and execution of an automation algorithm with different programming languages on other Hypervisors can prove an interesting future topic. Python is one such programming language that is becoming popular among many researchers. Implementing automation algorithm using Python as a base programming language can prove to be useful future research direction. The current implementation is in C language, which does not seem to put any considerable load on the system. Therefore, implementing the same functions in Python might not affect the performance of the system.
This time, all years have a perfect cluster membership. These three approaches applied to the extended 1900-2020 data set confirm the identification of a succession of three different dynamic regimes in the TTPC over the 1900-2020 period. The third regime  (1986) (1987) (1988) (1989) (1990) (1991) (1992) (1993) (1994) (1995) (1996) (1997) (1998) (1999) (2000) (2001) (2002) (2003) (2004) (2005)  is still characterized by the lowest level of terms of trade of the whole period, and the return to the second regime after 2005 is associated with a price significantly higher (56. 7% higher). Such an upward shift in primary commodities' prices is unprecedented at the scale of the 20th century and questions more specifically the hypothesis of a secular decline in the terms of trade of primary commodities.
, 2020). Deep learning, which includes the application of large neural networks, has shown promising results for hydrological modeling  (Moshe et al. , 2020). A typical workflow of data-driven modeling comprises data collection, pre-processing, model selection, training of the algorithm with optimized hyperparameters, and deployment. Recent advances in the field of data science have resulted in the growth of Python packages which assist in accomplishing machine learning and deep learning tasks. According to the latest survey on Kaggle, an online platform for machine learning competitions, the most popular libraries among data scientists are TensorFlow  (Abadi et al. , 2016) , PyTorch  (Paszke et al. , 2019) , scikit-learn  (Pedregosa et al. , 2011) , and XGBoost  (Chen and Guestrin, 2016).
A framework that combines pre-processing, feature extraction, building and training, post-processing of model results, and interpretation of data-driven models, particularly for solving hydrological problems, is missing. For the advancement of machine learning in the field of hydrology, experimentation with readily available and fully documented benchmark datasets is required  (Leufen et al. , 2021). The collection of hydrological data is usually expensive and time-consuming. Several hydrological datasets are publicly available on different online platforms  (Coxon et al. , 2020). Although these datasets are documented and organized, they are not usually in a form that can be directly used in machine learning algorithms. Therefore, there is a need for a uniform and simplified interface to access and feed hydrological data to machine learning algorithms.
In this study, we developed a new framework for fast and rapid experimentation to develop data-driven hydrolog-ical models. In this study, we present AI4Water, a Pythonbased framework that assists in machine-learning-and deeplearning-based modeling with a focus on hydrology. The specific objectives of AI4Water were to provide a uniform and simplified interface for (1) accessing and streaming of freely available datasets to data-driven algorithms, (2) preprocessing hydrological data, (3) automatic feature extraction from hydrological data, (4) automatic model selection and its hyperparameter optimization, and (5) post-processing results for visualization and interpretation of models.
Workflow The core of AI4Water is the "Model" class, which implements data preparation, building, and training of the model, and makes predictions from the model (Fig. 1 ). However, AI4Water includes several utilities for data pre-processing, feature generation, post-processing and visualization of results, hyperparameter optimization, and model comparison. All of these utilities can be used with AI4Water, as well as independently. The "Datasets" utility helps in fetching and pre-processing several open-source datasets to be used in machine learning models. The "SpatialProcessing" utility allows the distribution of weather data among hydrologic response units (HRUs) using different HRU discretization schemes. The "et" sub-module helps calculate potential evapotranspiration using various theoretical methods.
The "SeqMetrics" sub-module calculates several time series performance metrics for regression and classification problems. "HyperOpt" assists in the implementation of various hyperparameter optimization algorithms. The "Experiment" class can be used to compare different machine learning models. Finally, AI4Water has an "Interpret" utility that can be used to interpret the model's results. The Model class of AI4Water has two implementations and can have three back ends. The two implementations are "model-subclassing" and "functional. " The back ends are either TensorFlow, PyTorch, or neither of them. The back ends, together with the implementations, determine the attributes that the Model class will inherit upon its creation. In the model-subclassing implementation, the Model class inherits from either the TensorFlow's Model class or the nn.
module of PyTorch. This implementation allows all the attributes from the corresponding back end to be also available from AI4Water's Model class. For example, the "count_params" attribute of TensorFlow's Model class can also be obtained from the AI4Water's Model class. In functional implementation, the Model class of AI4Water does not inherit from the parent modules of TensorFlow/PyTorch. In this case, the built TensorFlow/PyTorch model object is displayed to the user as a "_model" attribute of the Model class. This is similar to TensorFlow and PyTorch libraries, both of which also have model-subclassing and functional implementations. For models other than TensorFlow or PyTorch, the Model class does not have any back end. In these cases, the machine learning models are built using libraries such as scikit-learn, XGBoost, CatBoost, or LightGBM.
3 Sub-modules and code structure The code architecture of AI4Water, that is, its subsubmodules, their available classes, and third-party libraries, are illustrated in Fig. 3. AI4Water comprises 11 submodules, among which 10 are task-based, and one is a general-purpose module named "utils". These sub-modules can be divided into two categories. The sub-modules on the left-hand side of Fig. 3  are designed for model building, hyperparameter optimization, and model comparison, whereas those on the right-hand side perform pre-processing and postprocessing. Each sub-module exposes one or more classes to the user. For example, the HyperOpt sub-module presents the "Real", "Categorical", "Integer", and HyperOpt classes. The third-party libraries required for each sub-module are annotated inside them.
The second part of Table  1  comprises an exhaustive list of dependencies. These dependencies are required to utilize all functionalities of AI4Water. However, these utilities are optional and do not hamper the basic package functionality. Moreover, the modular structure of AI4Water allows the user to install libraries corresponding to a particular sub-module while ignoring the others which are not required. For example, in order to use the HyperOpt class for hyperparameter optimization, libraries related to post-processing are not required. Table  1  also presents the exact version of the underlying libraries which were used to test the 1. 0 version of AI4Water. AI4Water handles the version conflicts of the underlying libraries, thereby making it version-independent. This implies that the user can use any version greater than the version number provided in Table  1.
Datasets The first step in building a data-driven hydrological model is to obtain the data. There have been several efforts by the hydrological science community to build hydrological datasets that are publicly available. For example, for rainfallrunoff modeling, there exists the CAMELS dataset for several countries  (Addor et al. , 2017). The CAMELS dataset consists of daily weather data and streamflow records for multiple catchments. Another large rainfall-runoff dataset is LamaH  (Klingler et al. , 2021) , which consists of observations from 859 catchments in Europe. While the number of such open-source datasets is large, the use of these data sources is slow as each database is available on different platforms and implements a different application programming interface (API). A core function of AI4Water is to provide a simple and homogeneous API to feed these datasets directly into machine learning models.
Imputation Missing values are often found in real-world datasets. However, missing data cannot be fed to machine learning algorithms. AI4Water provides various solutions for handling missing data that can be used using the "impute" method. These include using either the (1) pandas library  (Mckinney, 2011) , (2) scikit-learn library-based methods, or (3) dedicated algorithms to fill the missing input data. The pandas library allows the handling of missing values either by filling the missing values using the "fillna" method or interpolating the missing values using the "interpolate" method. Both these methods can be seamlessly used with the impute method in AI4Water. Several imputation methods for filling missing values are available in the scikit-learn library. These methods include "KNNImputer", "IterativeImputer", and "SimpleImputer".
The names of the 22 evapotranspiration methods available in "et" and their data requirements are summarized in Table  S2  in the Supplement. The CAMELS Australia dataset  (Fowler et al. , 2021)  comes with pre-calculated potential evapotranspiration using the Morton  (Morton, 1983)  method. We compared this method with three different potential evapotranspiration calculation methods using "et", as depicted in Fig. 8.
This renders the grid search practically unfeasible for deepneural-network-based models, which are computationally expensive. The two commonly used Bayesian approaches are Gaussian processes  (Snoek et al. , 2012)  and the treestructured Parzen estimators (TPEs)  (Bergstra et al. , 2011). The libraries used to implement these algorithms are Hy-perOpt  (Bergstra et al. , 2013) , "scikit-optimize"  (Head et al. , 2018) , "optuna"  (Akiba et al. , 2019) , and scikit-learn  (Pedregosa et al. , 2011). These libraries implement different algorithms with different strengths. The scikit-optimize library allows the application of the Bayesian optimization approach using Gaussian Processes. The scikit-learn library can be used for random and grid-search-based approaches. The Hy-perOpt module assists in Bayesian optimization using TPEs.
The HyperOpt sub-module in AI4Water provides a uniform interface to interact with all of the aforementioned libraries. The integration of HyperOpt with its underlying modules not only complements the underlying optimization algorithms but also adds additional functionality, such as visualization. For example, the importance of hyperparameters is plotted using the functional analysis of variance (FANOVA) method proposed by  Hutter et al. (2014). We demonstrate the use of the HyperOpt sub-module of AI4Water for optimizing the hyperparameters of an LSTMbased neural network for rainfall-runoff modeling. The input data consisted of climate data, whereas the target was streamflow. For this example, we used CAMELS data from a catchment in Australia  (Fowler et al. , 2021). We compared the performance of random search, grid search, and two Bayesian algorithms based on Gaussian processes and TPEs.
Model comparison with Experiment AI4Water consists of an Experiment sub-module, which makes it easier to compare different machine learning models. The basic purpose of the Experiment class is to compare different models by optimizing their hyperparameters. This is made possible as the Experiment class encompasses the HyperOpt class, which in turn encompasses the Model class (Fig. 10 ). Thus, the Experiment class can be used for combined algorithm selection and hyperparameter opti-  mization  (Thornton et al. , 2013). The results from the Experiment class are organized within an "exp path" directory (Fig. 2 ). The Experiment class can be sub-classed to We conducted an experiment to compare the performance of classic machine learning algorithms in predicting antibiotic-resistant genes (ARGs) at a recreational beach  (Jang et al.
Visualization The "visualize" sub-module, consisting of a "Visualize" class, is used to examine inside the machine learning model. When the model comprises several layers of neural networks, this class plots the outputs of the intermediate layers, gradients of these outputs, weights and biases of intermediate layers, and gradients of these weights. Thus, this class helps to visualize the working of neural networks. It can also be used to plot the decision tree learned by the tree-based machine learning model. We demonstrate the use of this class by building a four-layer neural network to predict streamflow using the CAMELS dataset  (Fowler et al. , 2021). The four-layered neural network comprises an input layer, two layers of LSTM, and a dense layer as output layer (Fig. S1  in the Supplement).
This also includes plotting attention weights if the model consists of an attention mechanism. AI4Water automatically plots the results of the model when a model is used for prediction. These include the scatter and line plots of each target variable. We demonstrate this by using a dual-stage attention model  (Qin et al. , 2017)  for daily rainfall-runoff modeling in catchment number 401 203 in the CAMELS Australia dataset  (Fowler et al. , 2021). The input data consisted of evapotranspiration, precipitation, minimum and maximum temperatures, vapor pressure, and relative humidity. The dualstage model showed significant performance during training (R 2 = 0. 93) and test (R 2 = 0. 87), as shown in Fig. S6  in   S4  in the Supplement. The hyperparameters of each of the algorithms were optimized during the experiment.
Test coverage and continuous integration AI4Water version 1. 0 was tested with continuous integration tools with GitHub Actions to ensure that it passes all the written tests and can be installed on computers. The tests were conducted on Windows-and Linux-based operating systems. In addition, we tested the package on Python versions 3. 6, 3. 7, and 3. 8. The package was also tested with TensorFlow versions 1. 15 and above. 7 Limitations and scope for expansion -The current version of AI4Water was designed only for supervised learning problems. However, there has been growing interest in unsupervised machine learning models, such as generative adversarial networks (GANs) and reinforcement learning. GANs have been shown to exhibit high performance for time-seriesrelated tasks such as filling missing data  (Luo et al.
Conclusions Modeling hydrological processes by machine learning requires the development of pipelines that encompass data retrieval, feature extraction, visualization, and building, training, and testing the machine learning model, along with visualization and interpretation of the results. The AI4Water software introduced in this work was designed to facilitate the development, reuse, and reproducibility of machine learning models for applications in hydrology. AI4Water was designed to integrate the domain-specific aspects of hydrological modeling with the professional level of machine learning and data processing software already developed and used by the Python community. We demonstrated the applicability of AI4Water with supervised learning examples related to hydrological modeling. Further development of the package is suggested with new features that may make AI4Water more versatile.
Acknowledgements. This study was supported by  Basic Science Research Program  through the  National Research Foundation of Korea (NRF)  funded by the  Korean Ministry of Education  (no. 2017R1D1A1B04033074 ), as well as the  Korea Environment Industry and Technology Institute (KEITI)  through the  Aquatic Ecosystem Conservation Research Program  funded by  Korean Ministry of Environment (MOE)  (no. 2020003030003 ). The authors also thank  Campus France  ( PHC STAR 41510WH ) for their financial support. Financial support. This study was supported by  Basic Science Research Program  through the  National Research Foundation of Korea (NRF)  funded by the  Korean Ministry of Education  (no. 2017R1D1A1B04033074 ). It was also supported by the  Korea Environment Industry and Technology Institute (KEITI)  through the  Aquatic Ecosystem Conservation Research Program  funded by  Korean Ministry of Environment (MOE)  (no.
Code and data availability. The AI4Water source code can be found in a publicly available GitHub repository (https://github. com/ AtrCheema/AI4Water, last access: 18 March 2022), and its version 1. 0 is archived at https://doi. org/10. 5281/zenodo. 5595680 (Abbas et al. , 2021). The user manual is built into the source code "Docstring" and compiled into a "read the docs" web page (https: //ai4water. readthedocs. io/en/latest/, last access: 18 March 2022) using Sphinx  (Brandl, 2010)  software. The Jupyter notebooks replicating the examples described in the paper are available in the "examples" directory. Supplement. The supplement related to this article is available online at: https://doi. org/10. 5194/gmd-15-3021-2022-supplement. Author contributions. AA was responsible for conceptualization, code development, and writing the draft.
A C T Behavioral studies have shown that the legibility of handwritten script hinders visual word recognition. Furthermore, when compared with printed words, lexical effects (e. g. , word-frequency effect) are magnified for less intelligible (difficult) handwriting  (Barnhart and Goldinger, 2010; Perea et al. , 2016). This boost has been interpreted in terms of greater influence of top-down mechanisms during visual word recognition. In the present experiment, we registered the participants' ERPs to uncover top-down processing effects on early perceptual encoding. Participants' behavioral and EEG responses were recorded to high-and low-frequency words that varied in script's legibility (printed, easy handwritten, difficult handwritten) in a lexical decision experiment. Behavioral results replicated previous findings: word-frequency effects were larger in difficult handwriting than in easy handwritten or printed conditions.
Method Participants. Twenty-eight students (graduate or undergraduate) of the University of Valencia participated in the experiment in exchange for a small gift or course credit. All of them were native Spanish speakers, with no history of neurological or psychiatric disorder, and with normal (or corrected-to-normal) vision. Data from 8 participants were discarded due to tiredness and/or excessive artifacts in the EEG recording. The ages of the remaining 20 participants (15 women) ranged from 17 to 31 years (M = 22. 9, SD = 3. 9). All participants were righthanded, as assessed with an abridged Spanish version of the Edinburgh Handedness Inventory  (Oldfield, 1971). All participants gave informed consent before the experiment. The research was approved by the Research Ethics Committee of the University of València and was in accordance with the declaration of Helsinki.
Note that the handwritten stimuli were scaled to match the dimensions of the printed stimuli as much as possible. Three counterbalanced lists were created in a Latin square manner so that each target stimulus was rotated across the different conditions. Different participants were randomly assigned to each list. Each list included words (156 words of high-frequency and 156 words of low-frequency; 52 in each script format) and 312 nonwords (104 in each script format). Procedure. Participants were seated comfortably in a dimly lit and sound-attenuated chamber. All stimuli were presented on a highresolution monitor (1280 x 1024; 60 Hz) that was positioned at eye level at 70 cm from the participant. The stimuli were displayed in white against a dark-gray background and each character subtended about 0.
Eye movements and blinks were monitored with electrodes placed on the right lower and upper orbital ridge and on the left and right external canthi. The EEG recording was amplified and bandpass filtered between 0. 01 and 100 Hz with a sample rate of 250 Hz by a BrainAmp (Brain Products, GmbH, Gilching, Germany) amplifier. Impedances were kept below 5 KΩ. An off-line bandpass filter between  Table 1  Mean values of Psycholinguistic Characteristics of words across conditions (SDs in brackets) as provided in the B-Pal Spanish database  (Davis and Perea, 2005). 0. 01 and 20 Hz was applied to the EEG signal. All single-trial waveforms (700 ms epochs with a 100 ms pre-stimulus baseline) were screened offline for amplifier blocking, drift, muscle artifact, eye movements, and blinks, through a semiautomatic data inspection procedure applied to the complete set of channels for each participant.